Azure Cosmos DB を使用してデータをグローバルに分散させる

適用対象: NoSQL MongoDB Cassandra Gremlin Table

現在のアプリケーションには、優れた応答性と、常時接続が求められます。 待機時間の短縮と高可用性を実現するには、これらのアプリケーションのインスタンスをそのユーザーの近くにあるデータ センターにデプロイする必要があります。 これらのアプリケーションは、通常は複数のデータ センターにデプロイされ、グローバル分散型と呼ばれています。 グローバル分散型アプリケーションには、アプリケーションでそのユーザーの近くにあるデータのコピーを操作できるようにするために、世界中のデータを透過的にレプリケートできる、グローバルに分散されたデータベースが必要です。

Azure Cosmos DB は、ユーザーのデータベースのローカル レプリカからデータの読み取りと書き込みを行うことができる、グローバルに分散されたデータベース システムです。 Azure Cosmos DB では、Azure Cosmos DB アカウントに関連付けられている全リージョンに対して透過的にデータがレプリケートされます。 Azure Cosmos DB は、待機時間の短縮、スループットのエラスティックなスケーラビリティ、データの一貫性を保つための明確に定義されたセマンティクス、および高可用性を確保するように設計された、グローバル分散データベース サービスです。 つまり、世界のどの場所でも迅速な応答時間が要求されること、常にオンラインであること、およびスループットとストレージのスケーラビリティが無制限でエラスティックであることがアプリケーションに求められるのであれば、Azure Cosmos DB を使用してアプリケーションをビルドする必要があります。

グローバルに分散し、どの Azure リージョンでも利用できるようにデータベースを構成することができます。 待機時間を短縮するには、データをユーザーの所在地の近くに配置してください。 どのリージョンを選択するかは、アプリケーションのグローバル リーチと、ユーザーの所在地によって決まります。 Azure Cosmos DB では、Azure Cosmos DB アカウントに関連付けられている全リージョンに対して透過的にデータがレプリケートされます。 グローバルに分散された Azure Cosmos DB データベースとコンテナーの単一のシステム イメージが利用できるようになっており、アプリケーションからは、読み取りと書き込みをローカルに実行することができます。

注意

Azure Cosmos DB のサーバーレス アカウントは 1 つの Azure リージョンでのみ実行できます。 詳細については、「サーバーレス リソースの使用」を参照してください。

Azure Cosmos DB に関してご利用のアカウントに関連付けられるリージョンは、いつでも追加したり削除したりすることができます。 リージョンの追加や削除のために、アプリケーションを一時停止したり再デプロイしたりする必要はありません。 Azure Cosmos DB は、お客様が利用できる 5 つの異なる Azure クラウド環境のすべてで利用できます。

  • Azure パブリック クラウドは、グローバルに利用できます。

  • 21Vianet によって運営される Microsoft Azure は、Microsoft と中国最大のインターネット プロバイダーの 1 つである 21Vianet との間の独自のパートナーシップを通して利用できます。

  • Azure Germany では、データ保護受託者モデルに沿ってサービスが提供され、お客様のデータは、ドイツ国内でデータ保護受託者の役目を務める T-Systems International GmbH (Deutsche Telekom の子会社) の管理下で、ドイツ国外に移転されないことが保証されます。

  • Azure Government は、米国内の 4 つのリージョンで米国政府機関とそのパートナーが利用できます。

  • 米国国防総省 (DoD) 向け Azure Government は、米国内の 2 つのリージョンで米国国防総省が利用できます。

高可用性デプロイ トポロジ

グローバル分散の主な利点

グローバルなアクティブ/アクティブ アプリの構築。 そのまったく新しいマルチリージョン書き込みレプリケーション プロトコルにより、すべてのリージョンで書き込みと読み取りの両方がサポートされます。 マルチリージョン書き込み機能には次の利点もあります。

  • 無制限でエラスティックな書き込みと読み取りのスケーラビリティ。
  • 全世界での 99.999% の読み取りおよび書き込みの可用性。
  • 99 パーセンタイルで 10 ミリ秒未満の処理性能が保証された読み取りと書き込み。

Azure Cosmos DB アカウントのリージョンを追加したり削除したりする際に、アプリケーションの再デプロイや一時停止を行う必要はなく、常に高可用性が維持されます。

応答性に優れたアプリを構築できる。 データベース用に選択したすべてのリージョンに対し、アプリケーションでほぼリアルタイムの読み取りと書き込みを実行できます。 Azure Cosmos DB は、選択された一貫性レベルを保証しながら、リージョン間のデータ レプリケーションを内部的に処理します。

可用性の高いアプリを構築する。 世界の複数のリージョンでデータベースを実行することで、データベースの可用性が向上します。 あるリージョンが利用できない状態になった場合は、自動的に他のリージョンによってアプリケーションの要求が処理されます。 複数リージョンのデータベースを対象にした読み取りと書き込みに関して、Azure Cosmos DB は 99.999% の可用性を備えています。

リージョン障害時にビジネス継続性を維持する。 Azure Cosmos DB では、リージョン障害時のサービス マネージド フェールオーバーがサポートされています。 リージョン障害時にも、Azure Cosmos DB では、その待機時間、可用性、一貫性、スループットの SLA が引き続き維持されます。 ご利用のアプリケーション全体で高い可用性を確保するのに役立つように、Azure Cosmos DB には、リージョン障害をシミュレートするための手動フェールオーバー API が用意されています。 この API を使用することで、日常的なビジネス継続性の訓練を実施することができます。

読み取りおよび書き込みのスループットのグローバルなスケーリング。 すべてのリージョンを書き込み可能にして、読み取りと書き込みを世界規模でエラスティックにスケーリングできます。 Azure Cosmos DB のデータベースまたはコンテナーに対してアプリケーションで構成したスループットが、Azure Cosmos DB アカウントに関連付けられているすべてのリージョンにプロビジョニングされます。 プロビジョニング スループットは、金銭的な補償を伴う SLA によって保証されます。

明確に定義された複数の一貫性モデルの中から選択する。 Azure Cosmos DB のレプリケーション プロトコルでは、明確に定義された、実際的かつ直感的な 5 つの一貫性モデルが提供されています。 各モデルには、一貫性とパフォーマンスのトレードオフがあります。 これらの一貫性モデルを使用することで、グローバル分散アプリケーションを容易に構築することができます。

次のステップ

以下の記事でグローバル分散の詳細についてご覧ください。