テーブル用 API を使用して Azure Cosmos DB グローバル分散を設定する

Important

99.999% 可用性サービス レベル アグリーメント (SLA)、インスタント 自動スケール、および複数のリージョン間の自動フェールオーバーを使用した 大規模 なシナリオ向けのデータベース ソリューションをお探しですか? [c0]NoSQL 用に Azure Cosmos DB を検討してください。[c0]

この記事に含まれるタスクは次のとおりです。

  • Azure Portal を使用してグローバル分散を構成する
  • Table用 API を使用してグローバル分散を構成する

Azure Portal を使用したグローバル データベース リージョンの追加

Azure Cosmos DB は世界中のすべての Azure リージョンで利用できます。 データベース アカウントの既定の一貫性レベルを選択すると、選択した既定の一貫性レベルとグローバル配信の必要性に応じて、1 つまたは複数のリージョンを関連付けることができます。

  1. Azure Portal で、左側のバーの [Azure Cosmos DB] をクリックします。

  2. [Azure Cosmos DB] ページで、変更するデータベース アカウントを選びます。

  3. アカウントのページで、メニューから [データをグローバルにレプリケートする] をクリックします。

  4. [データをグローバルにレプリケートする] ページで、マップ内のリージョンをクリックして、追加または削除するリージョンを選択し、[保存] をクリックします。 リージョンを追加するには費用が必要になります。詳細については、価格に関するページまたは「Azure Cosmos DB を使用したデータのグローバル分散」の記事を参照してください。

    地図でリージョンをクリックして、リージョンを追加又は削除する

2 番目のリージョンを追加すると、ポータルの [データをグローバルにレプリケートする] ページで [手動フェールオーバー] オプションが有効になります。 このオプションは、フェールオーバー プロセスをテストしたり、プライマリ書き込みリージョンを変更したりするために使用できます。 3 番目のリージョンを追加すると、同じページの [フェールオーバーの優先度] オプションが有効になります。これで、読み取りのフェールオーバーの順序を変更できるようになります。

グローバル データベース リージョンの選択

複数のリージョンを構成する場合、2 つの一般的なシナリオがあります。

  1. エンドユーザーが世界中のどこにいても関係なく、データへの待ち時間の短いアクセスを実現する
  2. ビジネス継続性とディザスター リカバリー (BCDR) のためにリージョンの回復性を追加する

エンド ユーザーの短い待ち時間の実現のため、アプリケーションのユーザーが存在する場所に対応するリージョンに、アプリケーションと Azure Cosmos DB の両方をデプロイすることをお勧めします。

BCDR のため、「Azure のリージョン間レプリケーション: ビジネス継続性とディザスター リカバリー」に記載されているリージョン ペアに基づいてリージョンを追加することをお勧めします。

Table用 API を使用して優先リージョンに接続する

グローバル分散を活用するためには、クライアント アプリケーションがその現在の実行場所を指定する必要があります。 これは CosmosExecutorConfiguration.CurrentRegion プロパティを設定することによって行います。 CurrentRegion プロパティには、場所が 1 つだけ格納されている必要があります。 クライアントのインスタンスごとに異なるリージョンを指定して、読み取りの遅延を抑えることができます。 リージョンの指定には、その表示名 ("米国西部" など) を使用する必要があります。

Azure Cosmos DB for Table SDK は、アカウント構成と現在のリージョンの可用性に基づいて、通信に最適なエンドポイントを自動的に選定します。 クライアントの待ち時間を短くするために、最も近いリージョンが優先されます。 現在の CurrentRegion プロパティを設定すると、読み取り要求と書き込み要求が次のように誘導されます。

  • 読み取り要求: 読み取り要求はすべて、構成済みの CurrentRegion に送信されます。 SDK は近接性に基づいてフォールバック用の geo-replicated リージョンを自動的に選択し、高可用性を実現します。

  • 書き込み要求: SDK は自動的に、すべての書き込み要求を現在の書き込みリージョンに送信します。 複数リージョンの書き込みがあるアカウントでは、現在のリージョンも書き込み要求を処理します。 SDK は近接性に基づいてフォールバック用の geo-replicated リージョンを自動的に選択し、高可用性を実現します。

CurrentRegion プロパティを指定しなかった場合、現在の書き込みリージョンがすべての操作に使用されます。

たとえば、Azure Cosmos DB アカウントが "米国西部" リージョンと "米国東部" リージョンにあるとします。 "米国西部" が書き込みリージョンであり、アプリケーションが "米国東部" に存在する場合。 CurrentRegion プロパティが構成されていない場合、すべての読み取りおよび書き込み要求は常に "米国西部" リージョンに送信されます。 CurrentRegion プロパティが構成されている場合は、読み取り要求はすべて "米国東部" リージョンで処理されます。

次のステップ

このチュートリアルでは、次の手順を行いました。

  • Azure Portal を使用してグローバル分散を構成する
  • Azure Cosmos DB Table API を使用してグローバル分散を構成する