Azure Cosmos DB の複数リージョンのコストを最適化する

適用対象: NoSQL MongoDB Cassandra Gremlin Table

お客様の Azure Cosmos DB アカウントのリージョンは、いつでも追加したり削除したりすることができます。 Azure Cosmos DB の各種のデータベースとコンテナーに対してお客様が構成したスループットは、お客様のアカウントに関連付けられている各リージョンで予約されます。 プロビジョニングされる 1 時間あたりのスループット (つまり、お客様の Azure Cosmos DB アカウントのすべてのデータベースとコンテナーに対して構成される 1 秒あたりのリクエスト単位 (RU/秒) の合計) が T で、お客様のデータベース アカウントに関連付けられている Azure リージョンの数が N である場合、お客様の Azure Cosmos DB アカウントにプロビジョニングされる 1 時間あたりの合計スループットは、T x N に相当します。

単一の書き込みリージョンでプロビジョニングされたスループットと、複数の書き込み可能なリージョンでプロビジョニングされたスループットは、コストによって異なる場合があります。 詳細については、「Azure Cosmos DB の価格」を参照してください。

複数の書き込みリージョンにおけるコスト

マルチリージョン書き込みシステムでは、書き込み操作に利用できる正味の RU/秒が N 倍になります (N は書き込みリージョンの数)。 単一リージョンの書き込みとは異なり、すべてのリージョンが書き込み可能であり、競合の解決をサポートします。 コスト計画の観点から、全世界で M RU/秒に相当する書き込みを実行するためには、コンテナー レベルまたはデータベース レベルで M RU/秒をプロビジョニングする必要があります。 その後、望ましい数のリージョンを追加し、書き込みに使用することで、M RU/秒に相当する書き込みを全世界で実行できます。

単一リージョンの書き込みシナリオにコンテナーがあるとします。 このコンテナーは 10K RU/秒のスループットでプロビジョニングされ、今月は 0.5 TB のデータが格納されます。 ここで、同じストレージとスループットを持つリージョンをもう 1 つ追加し、アプリから両方のリージョンのコンテナーに書き込めるようにしたいとしましょう。

この例では、新しい月間総消費量の合計の詳細を示します。

月間使用量
単一の書き込みリージョンのコンテナーのスループット料金 10K RU/s * 730 hours
複数の書き込みリージョン (2 つ) のコンテナーのスループット料金 2 * 10K RU/s * 730 hours
単一の書き込みリージョンのコンテナーのストレージ料金 0.5 TB (or 512 GB)
2 つの書き込みリージョンのコンテナーのストレージ料金 2 * 0.5 TB (or 1,024 GB)

Note

この例では、1 か月で 730 時間を想定しています。

リージョン単位でスループット利用率を向上させる

利用効率が悪い場合は、読み取りリージョンからの変更フィードを使用して、読み取りリージョンの RU/秒を最大限に使用する手順を実行できます。 あるいは、過剰に利用されている場合は、別のセカンダリに移動することもできます。 たとえば、利用効率が低い 1 つ以上の読み取りリージョンは非効率的と見なされます。 先に書き込みリージョンのプロビジョニング スループット (RU) を最適化する必要があります。

大規模なクエリを除くほとんどの場合、書き込みコストは読み取りコストよりも高くなります。 均一な使用率を維持することは困難な場合があります。 全体として、リージョンで消費されるスループットを監視し、必要に応じてリージョンを追加または削除して、読み取りと書き込みのスループットをスケーリングします。 同じリージョンにデプロイされているアプリの待機時間の影響について理解していることを確認してください。