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

適用対象: Table

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

  • 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 に送信されます。 高可用性を目的に geo レプリケーションされるフォールバック リージョンは、SDK が近接関係に基づいて自動的に選択します。

  • 書き込み要求: SDK は自動的に、すべての書き込み要求を現在の書き込みリージョンに送信します。 複数リージョンの書き込みが有効なアカウントでも、現在のリージョンが書き込み要求を処理します。 高可用性を目的に geo レプリケーションされるフォールバック リージョンは、SDK が近接関係に基づいて自動的に選択します。

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

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

次のステップ

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

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