ナビゲーションをスキップする

Azure Cosmos DB:業界初のグローバル分散型マルチモデル データベース サービス

5月 10, 2017 に投稿済み

Founder of Azure Cosmos DB, Technical Fellow, Microsoft

本日、Azure Cosmos DB が一般提供となりましたことを発表いたします。Azure Cosmos DB は、世界規模で分散される初のデータ サービスです。地理的な垣根を越え、任意の数のリージョンにスループットとストレージをオンデマンドでスケーリングできます。その低待機時間、高可用性、整合性は、業界随一の充実した SLA によって保証されています。 Azure Cosmos DB は、今日の IoT とモバイル アプリの強化と、AI が活躍する未来のサポートを目指して設計されています。

これは、数多くのデータ モデルと主要なクエリ API をネイティブにサポートする初めてのクラウド データベースです。継続的に多くのデータ ボリュームを取り込むことができる斬新なデータベース エンジン上に構築され、きわめて高速にクエリを実行します。これらすべてを、スキーマやインデックスの管理の必要なしに実現します。これは 5 つの明確に定義された整合性モデルを提供する初のクラウド データベースであり、ご自分のアプリに最適なモデルを選択できます。

これらの 5 つの整合性レベルや Azure Cosmos DB の機能の多くは、何十年にもわたる分散システムとデータベースの研究と、世界トップレベルの厳格なエンジニアリング作業の積み重ねによって実現したものです。Azure Cosmos DB に実装された研究結果についての詳細は、チューリング賞を受賞した Microsoft Research の研究者で、分散システムの権威であり、われわれの創造力を感化する、Leslie Lamport 博士の動画をご覧ください。

Azure Cosmos DB - クラウド ベースのアプリ開発を変革

Azure Cosmos DB により、クラウドベース アプリの開発手法が根本的に変わると考えられます。

1.グローバル分散型アプリの開発が容易になる

Azure Cosmos DB では、ターンキー型のグローバルな分散が可能になります。1 回クリックするだけで、ご使用の Azure Cosmos DB データベースでいつでも任意の数の Azure リージョンを追加したり削除したりできます。Azure Cosmos DB は、ユーザーのいるどの場所でもシームレスにデータをレプリケートできます。

2.スループットとストレージを、オンデマンドで、世界規模で弾力的にスケーリングできる

Azure Cosmos DB を使用すると、アプリケーションはオンデマンドで、世界中でスループットとストレージを弾力的にスケーリングできます。世界中のどこでも 1 回の API 呼び出しで 1 秒あたりの要求数を数千から数十億に弾力的にスケールアップでき、必要な分のスループット (およびストレージ) に対してのみ料金が発生します。  Azure Cosmos DB は、秒と分の両単位で詳細に、スループットをスケーリングできる唯一のクラウド データベースです。したがって、ピークに対して過剰なプロビジョニングを行うことなく、ワークロードの予期しないスパイクを見通して対処するのに役立ちます。

「当社ではトランザクション処理システムに Azure Cosmos DB を使用しています。予測可能な整合性を確保しながら、1 秒あたりにきわめて大量の書き込みを処理できるためです。それにより、お客様が求めている高いパフォーマンスと信頼性を提供できます。コレクションごとにスループットをスケーリングできるので、パフォーマンスとコストのバランスを細かく調整し、お客様に最高の価値を提供することができます。」

- Blackboard、アプリケーション アーキテクチャ シニア ディレクター Andrew Hochstetler 氏。

3.応答性の高いアプリを構築できる

Azure Cosmos DB では、世界中のどこでも、99 パーセントタイルで 10 ミリ秒未満の待機時間がアプリに対して保証されます。Azure Cosmos DB の中核を成す、書き込みに最適化された、ログ構造の、ラッチを使用しないデータベース エンジンにより、持続的なデータ取り込みときわめて高速なクエリが可能です。アプリの応答性の良さにユーザーは満足するはずです。

4.常時「利用可能」なアプリを構築できる

Azure Cosmos DB によってアプリは自動的に常時「利用可能」になります。各リージョン内で、および全リージョンにまたがるデータの高可用性が保証されます。マルチホーム機能により、地域的な災害が発生した場合でも、複雑なアプリの再デプロイを行うことなくアプリケーションとデータの両方の高可用性を維持できます。

「Microsoft の Xpander チームは、Windows と Xbox の多数のミッションクリティカルなフローを実行する重要なサービスを開発しています。そのため、非常に高い可用性と厳しい待機時間の要件が求められ、世界各地の主要データ センターに分散される必要があります。  以前のストレージ ソリューションから Azure Cosmos DB に移行して以来、総合的な信頼性とパフォーマンス特性が大幅に向上したほか、トランザクション全体の 0.001% で 1 日 1 分未満の影響を及ぼす ”マイクロ障害によるタイムアウト” が大幅に削減されました。」

- Xpander、プリンシパル ソフトウェア エンジニアリング責任者 Cary Mitchell 氏

5.アプリに最適な整合性モデルを選択できる

Azure Cosmos DB を使用する場合、開発者は (厳密な整合性または最終的な整合性などの) 極端な整合性の選択が迫られることはありません。厳密、有界整合性制約、セッション、一貫性のあるプレフィックス、最終的な整合性という 5 つの明確に定義された整合性の選択肢があるため、アプリに最適な整合性モデルを選択できます。

「Johnson Controls は 7 大陸で事業を展開するグローバル企業です。Azure Cosmos DB のようなグローバル データベースにより、どこにいるかに関係なくお客様と機器をサポートするアプリケーションを非常に簡単に開発できます。Azure Cosmos DB は必要とする低待機時間を実現し、整合性をきめ細かく制御できるので、当社のアプリケーションに最適なパフォーマンスを選択できます。Microsoft のチームには、世界中から優秀な人材が集まっており、非常に厳格な SLA も信頼できます。」

- JCI Connected Offerings、データ エンジニア、Erik Paulson 氏

6.スキーマやインデックスを考慮せずにアプリをすばやく改良できる

グローバル分散型アプリでは、データベースのスキーマやインデックスとアプリケーションのスキーマの同期に特に手間がかかります。Azure Cosmos DB では、スキーマやインデックスに対応する必要がありません。データベース エンジンがスキーマにまったく依存しないためです。  スキーマとインデックスの管理が必要ないため、スキーマ移行中のアプリケーションのダウンタイムを心配する必要もありません。すべてのデータのインデックスが自動的に作成され (スキーマもインデックスも不要です)、高速クエリを実行します。

「Citrix では Citrix ID プラットフォームのサポートに Azure Cosmos DB を採用し、世界 40 万社を超える企業と 1 億人を超えるユーザーのシングル サインオンを実現しました。以前の NoSQL データベースでは、開発チームはインデックス作成とコードの定期的な変更が必要でしたが、Azure Cosmos DB に切り替えたことで、この大きな課題が解決しました。Azure Cosmos DB により、既定で、取り込んだレコードのすべてのプロパティに自動的にインデックスが作成されるようになりました。」

- Citrix、主任アーキテクト、Tom Kludy 氏

7.アプリに適切なデータ モデルを使用できる

Azure Cosmos DB のデータベース エンジンは、ほぼすべてのデータ モデルをネイティブにサポートするように設計されています。今回のリリースでは、キー値、ドキュメント、グラフが有効になります。また、このエンジンは拡張可能で、新しい種類のデータ モデルを効率的にサポートできるように設計されています。しばらくお待ちください。

8.任意の API を使用できる

Azure Cosmos DB が目指すのは、使い慣れたツールや API を使用して、より簡単にグローバル分散型アプリを開発できるようにすることです。  Azure Cosmos DB のデータベース エンジンは、DocumentDB の SQL 言語、MongoDB 用 Azure Cosmos DB API、Gremlin (グラフ) API、Azure Table Storage API をネイティブにサポートしています。今後は、選択肢を増やして柔軟性を向上させるため、その他の主要データ アクセス API のネイティブ サポートも予定しています。

9.業界をリードする包括的な SLA

Azure Cosmos DB は、返金制度を備えた包括的な SLA を提供する唯一のグローバル分散型データベース サービスです。SLA により、高可用性、99 パーセンタイルでの低待機時間、整合性、スループットが保証されます。

「ASOS では、NoSQL プラットフォームについて複数の市場製品を比較検討しましたが、最終的に多面的に優れた Azure Cosmos DB を選択しました。第 1 に、サービスとしてのマネージド データベースであることが非常に魅力的でした。小売業者である当社は、データベースの実行自体ではなく、データベースを実際に使用して価値提案を生み出すことを重視しています。そのため、サービスの可用性と SLA がエンタープライズ レベルであることが必要でした。第 2 に、当社は世界各地にお客様を持っており、パフォーマンスと耐障害性の確保のために、簡単にデータをグローバルにレプリケーションする機能を重視しました。最後に、当社はマイクロサービス アーキテクチャを実行しており、サービスごとにワークロードやパフォーマンス特性が異なります。そのため、テクノロジを切り替えることなく整合性レベルを変更できるのは大きなメリットでした。Azure Cosmos DB は既に当社のアーキテクチャの重要な部分を占めており、今後はさらに価値提案の核となることを期待しています。」

- ASOS、エンタープライズ アプリケーション アーキテクト、Dave Green 氏

Cosmos のこれまでの経緯

Azure Cosmos DB はもともと、Microsoft 社内の大規模なアプリケーションについて開発者が直面する問題に対処するため、2010 年に「Project Florence」として運用が開始されました。その後、グローバル分散型アプリの開発に伴う課題は Microsoft 固有の問題ではないことが明らかになり、2015 年には Azure 開発者に向けて、このテクノロジの第 1 世代を Azure DocumentDB という形で提供しました。以降、Microsoft は新しい機能を追加してきており、重要な新機能も導入しています。  その結果誕生したのが Azure Cosmos DB です。  これは、大規模なグローバル分散型クラウド データベースにおけるさらなる飛躍をもたらすものです。今回のリリースに伴い、DocumentDB のお客様とデータは自動的に Azure Cosmos DB に移行されます。移行はシームレスに行われ、お客様は Azure Cosmos DB で提供される新しい画期的なシステムと機能をご利用いただけるようになります。

技術的な概要については、私のチームがお届けする最初のブログ記事 (こちら) をご確認ください。この記事では、「Foundations of Azure Cosmos DB」というタイトルで Leslie Lamport 博士との詳しい対談内容も紹介しています。

Azure Cosmos DB のミッションは、驚くほど優れた宇宙規模のアプリを世界中で簡単に開発できるようにすることでした。今回のリリースでは、世界中の開発者やユーザーの皆様に Azure Cosmos DB チームにとってのビッグバンともいえる一大イベントを共有いたします。
ぜひ #AzureCosmosDB をお試しのうえ、ご意見をお聞かせください。  皆様の開発にお役立ていただければ幸いです。

— Azure Cosmos DB チーム (@AzureCosmosDB)