チュートリアル:DMS を使用して MongoDB を Azure Cosmos DB の MongoDB 用 API にオフラインで移行するTutorial: Migrate MongoDB to Azure Cosmos DB's API for MongoDB offline using DMS

Azure Database Migration Service を使用して、MongoDB のオンプレミスまたはクラウドのインスタンスから Azure Cosmos DB の MongoDB 用 API に、データベースのオフライン (1 回限り) の移行を実行できます。You can use Azure Database Migration Service to perform an offline (one-time) migration of databases from an on-premises or cloud instance of MongoDB to Azure Cosmos DB's API for MongoDB.

このチュートリアルでは、以下の内容を学習します。In this tutorial, you learn how to:

  • Azure Database Migration Service のインスタンスを作成する。Create an instance of Azure Database Migration Service.
  • Azure Database Migration Service を使用して移行プロジェクトを作成する。Create a migration project by using Azure Database Migration Service.
  • 移行を実行する。Run the migration.
  • 移行を監視する。Monitor the migration.

このチュートリアルでは、Azure Database Migration Service を使用して、Azure 仮想マシンでホストされている MongoDB 内のデータセットを、Azure Cosmos DB の MongoDB 用 API に移行します。In this tutorial, you migrate a dataset in MongoDB hosted in an Azure Virtual Machine to Azure Cosmos DB's API for MongoDB by using Azure Database Migration Service. MongoDB ソースをまだセットアップしていない場合は、記事「Azure の Windows VM に MongoDB をインストールして構成する」をご覧ください。If you don't have a MongoDB source set up already, see the article Install and configure MongoDB on a Windows VM in Azure.

前提条件Prerequisites

このチュートリアルを完了するには、以下を実行する必要があります。To complete this tutorial, you need to:

  • スループットの見積もり、パーティション キーの選択、インデックス作成ポリシーなど、移行前の手順を完了します。Complete the pre-migration steps such as estimating throughput, choosing a partition key, and the indexing policy.

  • Azure Cosmos DB の MongoDB 用 API アカウントを作成しますCreate an Azure Cosmos DB's API for MongoDB account.

  • Azure Resource Manager デプロイ モデルを使用して、Azure Database Migration Service 用の Azure 仮想ネットワーク (VNet) を作成します。これで、ExpressRoute または VPN を使用したオンプレミスのソース サーバーへのサイト間接続が提供されます。Create an Azure Virtual Network (VNet) for Azure Database Migration Service by using Azure Resource Manager deployment model, which provides site-to-site connectivity to your on-premises source servers by using either ExpressRoute or VPN. VNet の作成方法の詳細については、Virtual Network のドキュメントを参照してください。特に、詳細な手順が記載されたクイックスタートの記事を参照してください。For more information about creating a VNet, see the Virtual Network Documentation, and especially the quickstart articles with step-by-step details.

    注意

    VNet のセットアップ中、Microsoft へのネットワーク ピアリングに ExpressRoute を使用する場合は、サービスのプロビジョニング先となるサブネットに、次のサービス エンドポイントを追加してください。During VNet setup, if you use ExpressRoute with network peering to Microsoft, add the following service endpoints to the subnet in which the service will be provisioned:

    • ターゲット データベース エンドポイント (SQL エンドポイント、Cosmos DB エンドポイントなど)Target database endpoint (for example, SQL endpoint, Cosmos DB endpoint, and so on)
    • ストレージ エンドポイントStorage endpoint
    • サービス バス エンドポイントService bus endpoint

    Azure Database Migration Service にはインターネット接続がないため、この構成が必要となります。This configuration is necessary because Azure Database Migration Service lacks internet connectivity.

  • VNet のネットワーク セキュリティ グループ (NSG) の規則によって、以下の各通信ポートがブロックされていないことを確認します: 53、443、445、9354、および 10000 から 20000。Ensure that your VNet Network Security Group (NSG) rules don't block the following communication ports: 53, 443, 445, 9354, and 10000-20000. Azure VNet NSG トラフィックのフィルター処理の詳細については、ネットワーク セキュリティ グループによるネットワーク トラフィックのフィルター処理に関する記事を参照してください。For more detail on Azure VNet NSG traffic filtering, see the article Filter network traffic with network security groups.

  • Azure Database Migration Service がソース MongoDB サーバーにアクセスできるように Windows ファイアウォールを開きます。既定では TCP ポート 27017 が使用されています。Open your Windows firewall to allow Azure Database Migration Service to access the source MongoDB server, which by default is TCP port 27017.

  • ソース データベースの前でファイアウォール アプライアンスを使用する場合は、Azure Database Migration Service が移行のためにソース データベースにアクセスできるように、ファイアウォール規則を追加することが必要な場合があります。When using a firewall appliance in front of your source database(s), you may need to add firewall rules to allow Azure Database Migration Service to access the source database(s) for migration.

Microsoft.DataMigration リソース プロバイダーを登録するRegister the Microsoft.DataMigration resource provider

  1. Azure portal にサインインし、 [すべてのサービス] を選択し、 [サブスクリプション] を選択します。Sign in to the Azure portal, select All services, and then select Subscriptions.

    ポータルのサブスクリプションの表示

  2. Azure Database Migration Service のインスタンスを作成するサブスクリプションを選択して、 [リソース プロバイダー] を選択します。Select the subscription in which you want to create the instance of the Azure Database Migration Service, and then select Resource providers.

    リソース プロバイダーの表示

  3. 移行を検索し、Microsoft.DataMigration の右側にある [登録] を選択します。Search for migration, and then to the right of Microsoft.DataMigration, select Register.

    リソース プロバイダーの登録

インスタンスを作成するCreate an instance

  1. Azure portal で [+ リソースの作成] を選択し、Azure Database Migration Service を検索して、ドロップダウン リストから [Azure Database Migration Service] を選択します。In the Azure portal, select + Create a resource, search for Azure Database Migration Service, and then select Azure Database Migration Service from the drop-down list.

    Azure Marketplace

  2. [Azure Database Migration Service] 画面で、 [作成] を選択します。On the Azure Database Migration Service screen, select Create.

    Azure Database Migration Service インスタンスを作成する

  3. [移行サービスの作成] 画面で、サービスの名前、サブスクリプション、新規または既存のリソース グループを指定します。On the Create Migration Service screen, specify a name for the service, the subscription, and a new or existing resource group.

  4. Azure Database Migration Service のインスタンスを作成する場所を選択します。Select the location in which you want to create the instance of Azure Database Migration Service.

  5. 既存の VNet を選択するか、新しいものを作成します。Select an existing VNet or create a new one.

    この VNet が Azure Database Migration Service に、ソース MongoDB インスタンスとターゲット Azure Cosmos DB アカウントへのアクセスを提供します。The VNet provides Azure Database Migration Service with access to the source MongoDB instance and the target Azure Cosmos DB account.

    Azure portal で VNet を作成する方法の詳細については、「Azure portal を使用した仮想ネットワークの作成」を参照してください。For more information about how to create a VNet in the Azure portal, see the article Create a virtual network using the Azure portal.

  6. 価格レベルを選択します。Select a pricing tier.

    コストと価格レベルの詳細については、価格に関するページを参照してください。For more information on costs and pricing tiers, see the pricing page.

    Azure Database Migration Service インスタンス設定を構成する

  7. [作成] を選択して、サービスを作成します。Select Create to create the service.

移行プロジェクトを作成するCreate a migration project

サービスが作成されたら、Azure portal 内でそのサービスを探して開き、新しい移行プロジェクトを作成します。After the service is created, locate it within the Azure portal, open it, and then create a new migration project.

  1. Azure ポータルで、 [All services](すべてのサービス) を選択し、Azure Database Migration Service を検索して、Azure Database Migration Service を選択します。In the Azure portal, select All services, search for Azure Database Migration Service, and then select Azure Database Migration Services.

    Azure Database Migration Service のすべてのインスタンスを検索する

  2. [Azure Database Migration Services] 画面で、作成した Azure Database Migration Service インスタンスの名前を検索して選択します。On the Azure Database Migration Services screen, search for the name of Azure Database Migration Service instance that you created, and then select the instance.

  3. [+ 新しい移行プロジェクト] を選択します。Select + New Migration Project.

  4. [新しい移行プロジェクト] 画面でプロジェクトの名前を指定し、 [ソース サーバーの種類] テキスト ボックスでは [MongoDB] を、 [ターゲット サーバーの種類] テキスト ボックスでは [CosmosDB (MongoDB API)] を選択して、 [アクティビティの種類を選択します][オフライン データの移行] を選択します。On the New migration project screen, specify a name for the project, in the Source server type text box, select MongoDB, in the Target server type text box, select CosmosDB (MongoDB API), and then for Choose type of activity, select Offline data migration.

    Database Migration Service プロジェクトを作成する

  5. [アクティビティの作成と実行] を選択してプロジェクトを作成し、移行アクティビティを実行します。Select Create and run activity to create the project and run the migration activity.

ソース詳細を指定するSpecify source details

  1. [ソースの詳細] 画面で、ソース MongoDB サーバーの接続の詳細を指定します。On the Source details screen, specify the connection details for the source MongoDB server.

    ソースへの接続には、3 つのモードがあります。There are three modes to connect to a source:

    • 標準モード: 完全修飾ドメイン名または IP アドレス、ポート番号、および接続の資格情報を受け取ります。Standard mode, which accepts a fully qualified domain name or an IP address, Port number, and connection credentials.

    • 接続文字列のモード: MongoDB 接続文字列 (記事「Connection String URI Format (接続文字列の URI 形式)」で説明しています) を受け取ります。Connection string mode, which accepts a MongoDB Connection string as described in the article Connection String URI Format.

    • Azure Storage からのデータ: BLOB コンテナーの SAS URL を受け取ります。Data from Azure storage, which accepts a blob container SAS URL. MongoDB bsondump ツールによって生成された BSON ダンプが BLOB コンテナーに含まれている場合は、 [Blob には BSON ダンプが含まれています] を選択します。JSON ファイルがコンテナーに含まれている場合は、その選択を解除します。Select Blob contains BSON dumps if the blob container has BSON dumps produced by the MongoDB bsondump tool, and de-select it if the container contains JSON files.

      このオプションを選択する場合は、ストレージ アカウントの接続文字列が次の形式で表示されていることを確認してください。If you select this option, be sure that the storage account connection string appears in the format:

      https://blobnameurl/container?SASKEY
      

      この BLOB コンテナーの SAS 接続文字列は Azure Storage Explorer 内で見つかります。This blob container SAS connection string can be found in Azure Storage explorer. 該当するコンテナーの SAS を作成すると、上記の要求された形式の URL が提供されます。Creating the SAS for the concerned container will provide you the URL in above requested format.

      また、Azure ストレージの種類のダンプ情報に基づいて、次の点に注意してください。Also, based on the type dump information in Azure storage, keep the following detail in mind.

      • BSON ダンプの場合、データ ファイルが collection.bson 形式の包含データベースの名前が付けられたフォルダーに配置されるように、BLOB コンテナー内のデータは bsondump 形式にする必要があります。For BSON dumps, the data within the blob container must be in bsondump format, such that data files are placed into folders named after the containing databases in the format collection.bson. メタデータ ファイルがある場合は、collection.metadata.json の形式で名前を付けます。Metadata files (if any) should be named using the format collection.metadata.json.

      • JSON ダンプの場合、BLOB コンテナー内のファイルは、包含データベースの名前が付けられたフォルダーに配置する必要があります。For JSON dumps, the files in the blob container must be placed into folders named after the containing databases. 各データベース フォルダー内で、データ ファイルは "data" というサブフォルダーに配置し、collection.json の形式で名前を付ける必要があります。Within each database folder, data files must be placed in a subfolder called "data" and named using the format collection.json. メタデータ ファイルがある場合は、"metadata" というサブフォルダーに配置し、同じ形式の collection.json を使用して名前を付ける必要があります。Metadata files (if any) must be placed in a subfolder called "metadata" and named using the same format, collection.json. メタデータ ファイルは、MongoDB bsondump ツールによって生成されたものと同じ形式にする必要があります。The metadata files must be in the same format as produced by the MongoDB bsondump tool.

    重要

    Mongo サーバー上で自己署名入りの証明書を使用することはお勧めできません。It is discouraged to use a self-signed certificate on the mongo server. ただし、使用する場合は、接続文字列のモードを使用してサーバーに接続し、確実に接続文字列に “” を付けるようにしてください。However, if one is used, please connect to the server using connection string mode and ensure that your connection string has “”

    &sslVerifyCertificate=false
    

    DNS の名前解決ができない場合は、IP アドレスを使用することもできます。You can also use the IP Address for situations in which DNS name resolution isn't possible.

    ソース詳細を指定する

  2. [保存] を選択します。Select Save.

ターゲット詳細を指定するSpecify target details

  1. [移行のターゲットの詳細] 画面で、ターゲットの Azure Cosmos DB アカウントの接続の詳細を指定します。これは、MongoDB データの移行先である、事前プロビジョニング済みの Azure Cosmos DB の MongoDB 用 API アカウントです。On the Migration target details screen, specify the connection details for the target Azure Cosmos DB account, which is the pre-provisioned Azure Cosmos DB's API for MongoDB account to which you're migrating your MongoDB data.

    ターゲット詳細を指定する

  2. [保存] を選択します。Select Save.

ターゲット データベースにマップするMap to target databases

  1. [Map to target databases](ターゲット データベースにマップ) 画面で、移行用のソース データベースとターゲット データベースをマップします。On the Map to target databases screen, map the source and the target database for migration.

    ターゲット データベースにソース データベースと同じデータベース名が含まれている場合、Azure Database Migration Service では、既定でターゲット データベースが選択されます。If the target database contains the same database name as the source database, Azure Database Migration Service selects the target database by default.

    データベース名の横に [作成] と表示される場合は、Azure Database Migration Service でターゲット データベースが見つからず、サービスによってデータベースが自動的に作成されることを示します。If the string Create appears next to the database name, it indicates that Azure Database Migration Service didn't find the target database, and the service will create the database for you.

    以降のこの時点で、スループットをプロビジョニングすることができます。At this point in the migration, you can provision throughput. Cosmos DB では、データベース レベルで、またはコレクションごとに個別に、スループットをプロビジョニングできます。In Cosmos DB, you can provision throughput either at the database-level or individually for each collection. スループットは、要求ユニット (RU) で測定されます。Throughput is measured in Request Units (RUs). Azure Cosmos DB の価格の詳細を確認してください。Learn more about Azure Cosmos DB pricing.

    ターゲット データベースにマップする

  2. [保存] を選択します。Select Save.

  3. [コレクション設定] 画面で、コレクションの一覧表示を展開し、移行されるコレクションの一覧を確認します。On the Collection setting screen, expand the collections listing, and then review the list of collections that will be migrated.

    Azure Database Migration Service では、ソースの MongoDB インスタンスには存在していて、ターゲットの Azure Cosmos DB アカウントには存在していない、すべてのコレクションが自動的に選択されます。Azure Database Migration Service auto selects all the collections that exist on the source MongoDB instance that don't exist on the target Azure Cosmos DB account. データが既に含まれているコレクションを再度移行する場合は、このブレードでコレクションを明示的に選択する必要があります。If you want to remigrate collections that already include data, you need to explicitly select the collections on this blade.

    コレクションで使用する RU の量を指定することができます。You can specify the amount of RUs that you want the collections to use. Azure Database Migration Service では、コレクションのサイズに基づいて適切な既定値が提案されます。Azure Database Migration Service suggests smart defaults based on the collection size.

    注意

    実行を高速化するために、必要に応じて Azure Database Migration Service の複数のインスタンスを使用して、データベースの移行とコレクションを並列して実行します。Perform the database migration and collection in parallel using multiple instances of Azure Database Migration Service, if necessary, to speed up the run.

    また、最適なスケーラビリティのために、シャード キーを指定して Azure Cosmos DB のパーティション分割を利用することもできます。You can also specify a shard key to take advantage of partitioning in Azure Cosmos DB for optimal scalability. シャード/パーティション キーの選択に関するベスト プラクティスを確認してください。Be sure to review the best practices for selecting a shard/partition key.

    コレクション テーブルを選択する

  4. [保存] を選択します。Select Save.

  5. [Migration summary](移行の概要) 画面の [アクティビティ名] ボックスに移行アクティビティの名前を指定します。On the Migration summary screen, in the Activity name text box, specify a name for the migration activity.

    移行の概要

移行を実行するRun the migration

  • [移行の実行] を選択します。Select Run migration.

    移行アクティビティ ウィンドウが表示され、アクティビティの [状態][未開始] になっています。The migration activity window appears, and the Status of the activity is Not started.

    アクティビティの状態

移行を監視するMonitor the migration

  • 移行アクティビティ画面で、移行の [状態][完了] になるまで [最新の情報に更新] を選択して表示を更新します。On the migration activity screen, select Refresh to update the display until the Status of the migration shows as Completed.

    注意

    アクティビティを選択して、データベース レベルおよびコレクション レベルの移行メトリックの詳細を取得できます。You can select the Activity to get details of database- and collection-level migration metrics.

    アクティビティの状態 - 完了

Cosmos DB でデータを確認するVerify data in Cosmos DB

  • 移行が完了した後、Azure Cosmos DB アカウントを調べて、すべてのコレクションが正常に移行されたことを確認できます。After the migration completes, you can check your Azure Cosmos DB account to verify that all the collections were migrated successfully.

    アクティビティの状態 - 完了

移行後の最適化Post-migration optimization

MongoDB データベースに格納されているデータを Azure Cosmos DB の MongoDB 用 API に移行した後、Azure Cosmos DB に接続してデータを管理できます。After you migrate the data stored in MongoDB database to Azure Cosmos DB’s API for MongoDB, you can connect to Azure Cosmos DB and manage the data. また、インデックス作成ポリシーの最適化、既定の整合性レベルの更新、Azure Cosmos DB アカウントのグローバル分散の構成など、移行後の他の最適化手順を実行することもできます。You can also perform other post-migration optimization steps such as optimizing the indexing policy, update the default consistency level, or configure global distribution for your Azure Cosmos DB account. 詳細については、「移行後の最適化」を参照してください。For more information, see the Post-migration optimization article.

その他のリソースAdditional resources

次の手順Next steps

  • Microsoft の「Database Migration Guide」(データベース移行ガイド) で、他のシナリオの移行ガイダンスを確認する。Review migration guidance for additional scenarios in the Microsoft Database Migration Guide.