Azure Cosmos DB を使用してデータをグローバルに分散させる
適用対象: NoSQL MongoDB Cassandra Gremlin Table
現在のアプリケーションには、優れた応答性と、常時接続が求められます。 待機時間の短縮と高可用性を実現するには、これらのアプリケーションのインスタンスをそのユーザーの近くにあるデータ センターにデプロイする必要があります。 これらのアプリケーションは、通常は複数のデータ センターにデプロイされ、グローバル分散型と呼ばれています。 グローバル分散型アプリケーションには、アプリケーションでそのユーザーの近くにあるデータのコピーを操作できるようにするために、世界中のデータを透過的にレプリケートできる、グローバルに分散されたデータベースが必要です。
Azure Cosmos DB は、ユーザーのデータベースのローカル レプリカからデータの読み取りと書き込みを行うことができる、グローバルに分散されたデータベース システムです。 Azure Cosmos DB では、Azure Cosmos DB アカウントに関連付けられている全リージョンに対して透過的にデータがレプリケートされます。 低待機時間、スループットのエラスティックなスケーラビリティ、データの一貫性を保つための明確に定義されたセマンティクス、および高可用性を確保するように設計されています。 つまり、世界のどの場所でも迅速な応答時間が要求されること、常にオンラインであること、およびスループットとストレージのスケーラビリティが無制限でエラスティックであることがアプリケーションに求められるのであれば、Azure Cosmos DB を使用してアプリケーションをビルドする必要があります。
グローバルに分散し、どの Azure リージョンでも利用できるようにデータベースを構成することができます。 待機時間を短縮するには、データをユーザーの所在地の近くに配置してください。 どのリージョンを選択するかは、アプリケーションのグローバル リーチと、ユーザーの所在地によって決まります。 Azure Cosmos DB では、グローバルに分散された Azure Cosmos DB データベースとコンテナーの単一のシステム イメージが利用できるようになっており、アプリケーションからは、読み取りと書き込みをローカルに実行することができます。
Note
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 つの一貫性モデルが提供されています。 各モデルには、一貫性とパフォーマンスのトレードオフがあります。 これらの一貫性モデルを使用することで、グローバル分散アプリケーションを容易に構築することができます。
次のステップ
以下の記事でグローバル分散の詳細についてご覧ください。