Azure Cosmos DB の MongoDB 用 API を使用してグローバル分散型データベースを設定するSet up global distributed database using Azure Cosmos DB's API for MongoDB

この記事では、Azure portal を使用してグローバル分散型データベースを設定し、Azure Cosmos DB の MongoDB 用 API を使用してそれに接続する方法を説明します。In this article, we show how to use the Azure portal to setup a global distributed database and connect to it using Azure Cosmos DB's API for MongoDB.

この記事に含まれるタスクは次のとおりです。This article covers the following tasks:

Azure Portal を使用したグローバル データベース リージョンの追加Add global database regions using the Azure portal

Azure Cosmos DB は世界中のすべての Azure リージョンで利用できます。Azure Cosmos DB is available in all Azure regions worldwide. データベース アカウントの既定の一貫性レベルを選択すると、選択した既定の一貫性レベルとグローバル配信の必要性に応じて、1 つまたは複数のリージョンを関連付けることができます。After selecting the default consistency level for your database account, you can associate one or more regions (depending on your choice of default consistency level and global distribution needs).

  1. Azure Portal で、左側のバーの [Azure Cosmos DB] をクリックします。In the Azure portal, in the left bar, click Azure Cosmos DB.

  2. [Azure Cosmos DB] ページで、変更するデータベース アカウントを選びます。In the Azure Cosmos DB page, select the database account to modify.

  3. アカウントのページで、メニューから [データをグローバルにレプリケートする] をクリックします。In the account page, click Replicate data globally from the menu.

  4. [データをグローバルにレプリケートする] ページで、マップ内のリージョンをクリックして、追加または削除するリージョンを選択し、 [保存] をクリックします。In the Replicate data globally page, select the regions to add or remove by clicking regions in the map, and then click Save. リージョンを追加するには費用が必要になります。詳細については、価格に関するページまたは「Azure Cosmos DB を使用したデータのグローバル分散」の記事を参照してください。There is a cost to adding regions, see the pricing page or the Distribute data globally with Azure Cosmos DB article for more information.

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

2 番目のリージョンを追加すると、ポータルの [データをグローバルにレプリケートする] ページで [手動フェールオーバー] オプションが有効になります。Once you add a second region, the Manual Failover option is enabled on the Replicate data globally page in the portal. このオプションは、フェールオーバー プロセスをテストしたり、プライマリ書き込みリージョンを変更したりするために使用できます。You can use this option to test the failover process or change the primary write region. 3 番目のリージョンを追加すると、同じページの [フェールオーバーの優先度] オプションが有効になります。これで、読み取りのフェールオーバーの順序を変更できるようになります。Once you add a third region, the Failover Priorities option is enabled on the same page so that you can change the failover order for reads.

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

複数のリージョンを構成する場合、2 つの一般的なシナリオがあります。There are two common scenarios for configuring two or more regions:

  1. エンドユーザーが世界中のどこにいても関係なく、データへの待ち時間の短いアクセスを実現するDelivering low-latency access to data to end users no matter where they are located around the globe
  2. リージョンのビジネス継続性とディザスター リカバリー (BCDR) の回復性を追加するAdding regional resiliency for business continuity and disaster recovery (BCDR)

エンド ユーザーの短い待ち時間の実現のため、アプリケーションのユーザーが存在する場所に対応するリージョンに、アプリケーションと Azure Cosmos DB の両方をデプロイすることをお勧めします。For delivering low-latency to end users, it is recommended that you deploy both the application and Azure Cosmos DB in the regions that correspond to where the application's users are located.

BCDR のため、リージョン ペアに基づいてリージョンを追加することをお勧めします。リージョン ペアについては、「ビジネス継続性とディザスター リカバリー (BCDR):Azure のペアになっているリージョン」をご覧ください。For BCDR, it is recommended to add regions based on the region pairs described in the Business continuity and disaster recovery (BCDR): Azure Paired Regions article.

リージョン設定を確認するVerifying your regional setup

Cosmos DB の MongoDB 用 API を使用してグローバル構成を確認する簡単な方法として、Mongo シェルから isMaster() コマンドを実行する方法があります。A simple way to check your global configuration with Cosmos DB's API for MongoDB is to run the isMaster() command from the Mongo Shell.

Mongo シェルから次のコマンドを実行します。From your Mongo Shell:

   db.isMaster()

結果の例:Example results:

   {
      "_t": "IsMasterResponse",
      "ok": 1,
      "ismaster": true,
      "maxMessageSizeBytes": 4194304,
      "maxWriteBatchSize": 1000,
      "minWireVersion": 0,
      "maxWireVersion": 2,
      "tags": {
         "region": "South India"
      },
      "hosts": [
         "vishi-api-for-mongodb-southcentralus.documents.azure.com:10255",
         "vishi-api-for-mongodb-westeurope.documents.azure.com:10255",
         "vishi-api-for-mongodb-southindia.documents.azure.com:10255"
      ],
      "setName": "globaldb",
      "setVersion": 1,
      "primary": "vishi-api-for-mongodb-southindia.documents.azure.com:10255",
      "me": "vishi-api-for-mongodb-southindia.documents.azure.com:10255"
   }

優先リージョンに接続するConnecting to a preferred region

Azure Cosmos DB の MongoDB 用 API を使用すると、グローバル分散型データベースのコレクションの読み取り設定を指定することができます。The Azure Cosmos DB's API for MongoDB enables you to specify your collection's read preference for a globally distributed database. 待機時間の短い読み取りとグローバルな高可用性の両方を得るために、コレクションの読み取り設定には Nearest を設定することをお勧めします。For both low latency reads and global high availability, we recommend setting your collection's read preference to nearest. Nearest 読み取り設定は、最寄りのリージョンから読み取るように構成します。A read preference of nearest is configured to read from the closest region.

var collection = database.GetCollection<BsonDocument>(collectionName);
collection = collection.WithReadPreference(new ReadPreference(ReadPreferenceMode.Nearest));

プライマリ読み取り/書き込みリージョンとディザスター リカバリー (DR) 用のセカンダリ リージョンを使用するアプリケーションでは、コレクションの読み取り設定を SecondaryPreferred に設定することをお勧めします。For applications with a primary read/write region and a secondary region for disaster recovery (DR) scenarios, we recommend setting your collection's read preference to secondary preferred. SecondaryPreferred 読み取り設定は、プライマリ リージョンが利用できない場合、セカンダリ リージョンから読み取るように構成します。A read preference of secondary preferred is configured to read from the secondary region when the primary region is unavailable.

var collection = database.GetCollection<BsonDocument>(collectionName);
collection = collection.WithReadPreference(new ReadPreference(ReadPreferenceMode.SecondaryPreferred));

最後に、読み取りリージョンを手動で指定する場合について説明します。Lastly, if you would like to manually specify your read regions. リージョン タグは、読み取り設定で設定できます。You can set the region Tag within your read preference.

var collection = database.GetCollection<BsonDocument>(collectionName);
var tag = new Tag("region", "Southeast Asia");
collection = collection.WithReadPreference(new ReadPreference(ReadPreferenceMode.Secondary, new[] { new TagSet(new[] { tag }) }));

このチュートリアルはこれで終わりです。That's it, that completes this tutorial. Azure Cosmos DB の一貫性レベルに関する記事を読んで、グローバルにレプリケートされたアカウントの整合性を管理する方法について確認できます。You can learn how to manage the consistency of your globally replicated account by reading Consistency levels in Azure Cosmos DB. また、Azure Cosmos DB におけるグローバル データベース レプリケーションの動作の詳細については、Azure Cosmos DB を使用したデータのグローバル分散に関する記事を参照してください。And for more information about how global database replication works in Azure Cosmos DB, see Distribute data globally with Azure Cosmos DB.

次の手順Next steps

このチュートリアルでは、次の手順を行いました。In this tutorial, you've done the following:

  • Azure Portal を使用してグローバル分散を構成するConfigure global distribution using the Azure portal
  • Cosmos DB の MongoDB 用 API を使用してグローバル分散を構成するConfigure global distribution using the Cosmos DB's API for MongoDB

これで次のチュートリアルに進むことができます。Azure Cosmos DB ローカル エミュレーターを使用してローカルで開発する方法について学びます。You can now proceed to the next tutorial to learn how to develop locally using the Azure Cosmos DB local emulator.