このページの本文へ

“惑星規模”でスケール!? デプロイ王子が解説

謎の分散データベース「Azure Cosmos DB」一問一答

2017年05月23日 07時00分更新

文● 羽野三千世/TECH.ASCII.jp 写真●曽根田元

  • この記事をはてなブックマークに追加
  • 本文印刷

 米マイクロソフトが「Build 2017」で発表した新しいクラウドNoSQLデータベース「Azure Cosmos DB」。Microsoft Azureの世界40リージョン(計画中6カ所を含む)にデータを分散保存し、分散された各リージョンのデータが一貫性を保って利用できるように設計されている。

 もともとは、マイクロソフトが自社のアプリケーションをグローバルに提供するために、社内向けに2010年頃から開発してきたものだ。世界中のリージョンから同時に書き込まれたデータに、最寄りのリージョンからアクセスできるため、応答性の高いアプリケーションを構築することができる。

 Build 2017で紹介されたCosmos DBの次の特徴について、日本マイクロソフトクラウドプラットフォーム技術部 テクノロジースペシャリストの廣瀬一海氏(デプロイ王子)に一問一答形式で教えてもらった。

  • 惑星規模でスケール
  • マルチモデル、マルチAPI
  • Turn-key global distribution
  • 5つの一貫性モデル
  • 大規模アプリケーションの開発を支援

日本マイクロソフトクラウドプラットフォーム技術部 テクノロジースペシャリストの廣瀬一海氏(デプロイ王子)

“惑星規模”でスケールするデータベースとは?

 この惑星(地球)にあるAzureリージョンで、データを分散保存するデータベース基盤という意味です。

 ユーザーは、どのリージョンにデータを分散配置するか、Azure Cosmos DBでデータベースを作成する際に選択でき、いつでも追加・変更することができます。Cosmos DBは現在、25リージョンへのレプリケーションが可能です。まだAzureの全リージョンには対応していませんが、理論上、すべてのリージョンに分散することができます。日本の東西リージョンは対応済みで、今後、利用できるリージョンが順次拡大することを期待しています。

マルチモデル、マルチAPIとは?

 Cosmos DBは、「データの保存方式とAPIを選べる」分散データベース基盤です。この特徴をマルチモデル、マルチAPIと表現しています。

 保存方式は、Document、Graph、Key-Valueの3つのNoSQLデータモデルから選択できます。そして、それぞれのデータモデルで利用できるAPIを提供しています。DocumentではDocumentDB APIとオープンソースのMongoDB API、GraphではオープンソースのGremlin API、Key-ValueではTable APIというように対応します。

 これまで、分散NoSQLデータベースサービス「DocumentDB」として提供されていたものは、Cosmos DB分散データベース基盤上で構築され、今後DocumentDBはCosmos DBに統合され、選択肢の1つとして提供されます。

 データの保存方式とAPIは、Cosmos DBでデータベースを作成する際に指定します。現状は作成後の変更はできません。

Cosmos DBではデータベース作成時にデータモデルを選択

Turn-key global distributionとは?

 Cosmos DBは、Azureポータルの地図上でリージョンをポチポチとクリックするだけで、データを分散保存するリージョンの選択が完了します。新しいリージョンを追加している間も、Cosmos DBは停止しませんし、スループットも維持されます。これをTurn-key global distributionと呼んでいます。

データを分散保存するAzureリージョンをクリックで選択

5つの一貫性モデルとは?

 分散データベース全般の話ですが、「データの一貫性」と「パフォーマンス」はトレードオフの関係にあります。日本と米国に分散されたデータベースがあるとして、日本からデータが書き込まれたとき、データの一貫性を確実に保証するためには、日本と米国のデータベースの同期が完了するのを待つ必要があります。同期完了を待ってから次の処理が実行されるため、当然パフォーマンスが落ちます。スピードを重視したいシステムでは、一貫性の条件を少し緩めて、例えば何ミリ秒まではデータの不整合を認めるといった調整によって、性能を高めることができます。

 Cosmos DBでは、この一貫性の強弱のレベルを、5段階から選択できるようになっています。確実に一貫性を保証する「Strong」から、t秒以降はk世代以内のデータが読めることを保証する(tとkはユーザーが指定)「Bounded Staleness」、書き込み終了後に書き込んだリージョンではデータが読める「Session」、読めない場合もある「Consistent Prefix」、読めない「Eventual」まで提供しています(日本語画面では強固、有界整合性制約、セッション、CONSISTENTPREFIX、最終的)。

データの一貫性の強弱レベルを5段階から選択

 一貫性が強いほどパフォーマンスは悪くなり、逆に弱いほどパフォーマンスは向上します。このように、パフォーマンスと可用性をアルゴリズムで管理できるのが、Cosmos DBの大きな特徴です。

大規模アプリケーションの開発を支援とは?

 例えば、世界中に同じアプリケーションを展開して、それをブラジルから使うケースを考えてみてください。このアプリのデータベースAPIのアクセス先が日本だったら、アプリからデータベースへのアクセスは相当の時間がかかっていました。

 ひとつの解決方法として、従来は、各国に個別にデータベースを設置して、個別に運用したりしてきたわけです。

 モバイルファースト、クラウドファーストの時代になり、開発者が世界の市場を対象にしてアプリケーションを構築することが増えてきました。IoTのシステムを例にとると、自動車や航空機に搭載されたデバイスなどは、それこそ世界中を移動して、世界中からデータベースへアクセスします。Cosmos DBによって、これら世界中から届くデータを1つのデータベースとして統合的に管理できるようになります。

■関連サイト

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

アクセスランキング

  1. 1位

    トピックス

    “持たない家電”ランキング、もはや定番のアレがやっぱり1位なような

  2. 2位

    トピックス

    思い切った慶應義塾 全教職員にNotion導入で168年分の知的資産をAIに食わせるプロジェクトが始動

  3. 3位

    ビジネス・開発

    こんどは“市区町村の財政状況”が丸わかり デジタル庁「ジャパン・ダッシュボード」に地方財政データ追加

  4. 4位

    トピックス

    リモートワークは福利厚生なの? ITエンジニアが本当に欲しい福利厚生第1位となる

  5. 5位

    ITトピック

    管理職ほど機密情報をAIに入力している実態、なぜ?/27卒学生の就職人気、IT業界トップ企業は/最新インシデントの傾向10パターンまとめ、ほか

  6. 6位

    トピックス

    ほぼスーパーで良くない? コンビニで「思ったより高い」と感じる人76%、実は中高年ほど割高感に悩んでるって知ってた?

  7. 7位

    トピックス

    若い人ほど「しっかり睡眠」、中高年は眠れないのか眠らないのか

  8. 8位

    トピックス

    インバウンドの頑張りランキングベスト3は「大分県」「岐阜県」「佐賀県」 努力が光る結果に

  9. 9位

    トピックス

    【無双状態】2025年、最も雑誌の表紙を飾ったのは「えなこ」! 1万誌を調査して見えた圧倒的カバークイーン

  10. 10位

    ビジネス

    管理職こそ大事にしないとまずくないか? 約4割が「続けたい、と答えない」現実

集計期間:
2026年04月21日~2026年04月27日
  • 角川アスキー総合研究所