パブリッククラウドのPaaSにおいて、システム構築の鍵となるのはデータベースだろう。各クラウドベンダーはオンプレミスの世界で既に実績のあるデータベースだけでなく、独自のリレーショナル、NoSQLのデータベースを提供している。マイクロソフトもSQL ServerをIaaSの上で動かすだけでなく、SQL Serverと同様なリレーショナルデータベース「Azure SQL Database」をPaaSで提供している。そしてもう1つNoSQLのデータベース・サービスとして提供しているのが「Azure DocumentDB」だ。DocumentDBは高度な拡張性を持ち、NoSQLの特徴でもあるスキーマフリーの柔軟性も提供する。このDocumentDBについて、製品を担当するディレクターのシアム・ネア(Syam Nair)氏に話を聞いた。

Q:Azureにはさまざまなデータベースがありますが、その中でもDocumentDBはどのようなサービスですか?
ネア氏:従来の(SoRの)アプリケーションで利用されるリレーショナルデータベースでは、低レイテンシーとデータの永続性が重要になります。一方グローバルで利用するような(SoEの)モダンな(モバイル向けの)アプリケーションでは、顧客の近くにデータがあることが重要です。
さらには実装のスピードと柔軟性も必要になります。そのためにはNoSQLデータベースのスキーマレスなアーキテクチャが向いており、それでDevOpsにも対応しやすくなります。Azure DocumentDBは、NoSQLデータベースの柔軟性とリレーショナルデータベースの永続性、低レイテンシーの両方を備えたデータベースになります。
その上でDocumentDBは、クラウドサービスであるAzure SQL Databaseのテクノロジーと同じように作られており、グローバル・ディストリビューションを前提に構築されています。そのため、リージョンをまたいだ形で利用することが可能です。つまり顧客がどこの国にいても、顧客の近くでデータの読み込み、書き込みができるのです。
DocumentDBは、書き込みに最適化されラッチフリーなデータベース・エンジンを持っています。これにより、ドキュメント型(JSON形式)のデータの検索が、極めて高速に行えます。DocumentDBでは、読み込み検索の処理の99%以上が10ミリ秒以下のレスポンスを確保しており、書き込みの処理も15ミリ秒以下をSLAで保証しています。
Q:改めてDocumentDBの特長を教えてください。
ネア氏:クラウドのNoSQLデータベースのサービスには、CAP(Consistency:一貫性、Availability:可用性、Partition-tolerance:分断耐性)定理があります。分散コンピュータの環境でデータがパーティショニングされている際には、これら3つの要素を同時に確保することは難しいのです。DocumentDBの場合は、アプリケーションの開発者がCAPのどれを優先するかを選べるようになっています。一貫性を保つようにするのか、可用性を重視するのか。さらにスループットをとるのか。それを開発者が自分で決めることができます。
もう1つ、さまざまなデータアクセス方法を持っていることも挙げられます。SQLやMongoDBと同じアクセス方法(Mongoクエリ言語)、JavaScriptも使えます。JSON形式のデータを扱うデータベースとしてMongoDBは、今や一般的で堅牢なものです。そのため既にMongoDBのフレームワークを使っているアプリケーションは数多くあり、DocumentDBではMongoDB用に構築したコードを変更することなく利用できます。
さらにストレージのスループットを最適化でき、ストレージやスループットを自由に選択できるのも特長です。これによりTCOの最適化も可能です。
Q:DocumentDBは、どのような用途に向いているのでしょうか?
ネア氏:DocumentDBには、既に多くの実績があります。用途の1つとしては、IoTなどのアプリケーションがあります。またグローバルレベルで利用するアプリケーションにも向いています。これはDocumentDBが、クリック1つでリージョンをまたいでレプリケーションができるからです。つまり、ユーザーがどこにいても、ローカルにいるのと同じレイテンシーでデータを読み込めます。フェイルオーバーの仕組みも組み込まれているので、どこかのサービスがダウンしても何ら問題はありません。
Q:DocumentDBは、マイクロソフトが1から構築した独自のデータベースなのですか?
ネア氏:クラウドの環境においてグローバル規模で利用するために、マイクロソフトがオリジナルで開発したデータベースになります。オープンソースを利用しているわけではなく、マイクロソフト独自のエンジンとなっています。とはいえ、MongoDBのオープンなプロトコルもサポートしています。エンジンとランタイムはマイクロソフト独自ですが、データへのアクセスはオープンです。
この記事は参考になりましたか?
- この記事の著者
-
谷川 耕一(タニカワ コウイチ)
EnterpriseZine/DB Online チーフキュレーターかつてAI、エキスパートシステムが流行っていたころに、開発エンジニアとしてIT業界に。その後UNIXの専門雑誌の編集者を経て、外資系ソフトウェアベンダーの製品マーケティング、広告、広報などの業務を経験。現在はフリーランスのITジャーナリスト...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア