マルチテナントのための大きなアーキテクチャ・チェンジを行い完璧なデータ分離性を実現
複数の顧客が利用するクラウドサービスでは、完璧なデータ分離性が確保されている必要がある。「これが保証されていないとだめです。その完璧な分離性を提供できるのが、Oracle Database 12cです」と言うのは、日本オラクル 代表執行役社長 最高経営責任者の遠藤隆雄氏だ。
Oracle Database 12cには、500を越える新機能がある。その目玉中の目玉が、マルチテナント機能だ。この実現は「大きなアーキテクチャ・チェンジだ」と言うのは、テクノロジー製品事業統括本部長 専務執行役員の三澤智光氏。データベースでマルチテナント性を確保するには、ハイパーバイザーを利用する、あるいはデータベースのスキーマーレベルで分離する方法が一般的だ。前者は分離性は高いが、集約密度はそれほど高くできない。後者は集約密度を高めることはできるが、分離性はそれほど高くなくセキュリティ性を向上させようとするとアプリケーション開発などの手間がかかることに。
これら一長一短がある現状のマルチテナント性確保の方法、12cではまったく新しいContainer DatabaseとPluggable Databaseを用いる手法を採用した。この方法ではデータベース層そのものを仮想化することで、シンプルにかつ高密度にマルチテナント機能を実装できる。「セキュリティ性が向上しても、利便性や管理性は損なわれません」と三澤氏。
複数のデータベースでメモリやプロセスを共有し、Multitenant Container Databaseという各データベースの「親、あるいは背骨に当たる部分」を置き、そこにPluggable Databaseを刺すような仕組みでデータベースを集約できる。「データファイルだけを独立させた、素晴らしいアーキテクチャです」と三澤氏。これにより、複数のデータベースを動かす際に、たとえば物理メモリなら従来の約1/5で済む。そのため、同じリソースでより多くのデータベースを稼動させられる。
さらに運用管理性も向上する。パッチを当てる際にもMultitenant Container Databaseにだけ適用すればよく、その上で動いているPluggable Database1つ1つ適用す必要はない。バックアップやアップグレードもMultitenant Container Database単位で一括して行えるので、運用管理の負荷は大きく削減される。12cの次バージョンが提供されるようになれば、現バージョンのMultitenant Container Databaseと次期バージョンのMultitenant Container Databaseを混在させるような使い方も可能だ。
「競合他社はこのようなアーキテクチャは実現できません」と三澤氏、Oracle Database 12cがまさに次世代型データベースとして、一歩先行く存在だと主張する。