このページの本文へ

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

謎の分散データベース「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位

    ITトピック

    情シス人材不足でも「採用予定なし」中小企業の意見/“従業員発のSNS炎上”6割の企業が懸念/「SNS疲れ」利用を減らす効果的方法、ほか

  2. 2位

    ビジネス・開発

    「Gemini Enterprise」に大規模導入の波 ― SOMPO・NTTデータ・Skyが描く“エージェント企業”への進化

  3. 3位

    ITトピック

    北米での成長率がすごすぎる NinjaOneとはいったい何者だ?

  4. 4位

    Team Leaders

    Power AutomateでSharePointリストにある申請データ一覧をメール送信する方法

  5. 5位

    sponsored

    無線APにデザインは不要ですか? ブラックスケルトンモデルは今どきのオフィスにめちゃなじむんです

  6. 6位

    YouTube

    ぶっちゃけ、あのSaaSってどう!? 情シスがガチ格付け! 本当に使えるツールを決める最強SaaSティア決定戦!!

  7. 7位

    ビジネス・開発

    脱・巨大プルリクエスト GitHub公式の「スタック型プルリクエスト」が登場

  8. 8位

    TECH

    プロテクティブDNSでDNSをセキュリティ基盤へ 福岡大学でも「運用課題なし」の実績

  9. 9位

    デジタル

    異常検知からロボット走行、車両制御まで —— 現場を遠隔化・自動化するSORACOM活用のIoTソリューション

  10. 10位

    ビジネス・開発

    情シスは「フィジカルAI」にどう向き合うべきか 実用化に不可欠な“現場×AI×経営”の橋渡し役に

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