

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# での同種データ移行のソースとしての MongoDB 互換データベースの使用 AWS DMS
<a name="dm-data-providers-source-mongodb"></a>

 AWS DMSでの同種データ移行のソースとして MongoDB 互換データベースを使用できます。この場合、ソースデータプロバイダーはオンプレミス、Amazon EC2 for MongoDB データベース、または Amazon DocumentDB (MongoDB 互換) データベースになります。

サポートされているデータベースのバージョンについては、「[DMS 同種データ移行のソースデータプロバイダー](CHAP_Introduction.Sources.md#CHAP_Introduction.Sources.HomogeneousDataMigrations)」を参照してください。

以下のセクションでは、セルフマネージド MongoDB データベースとマネージド AWS Amazon DocumentDB データベースの特定の設定前提条件について説明します。

**Topics**
+ [での同種データ移行のソースとしてのセルフマネージド MongoDB データベースの使用 AWS DMS](#dm-data-providers-source-mongodb-sm)
+ [での同種データ移行のソースとしての Amazon DocumentDB データベースの使用 AWS DMS](#dm-data-providers-source-mongodb-aws)
+ [同種データ移行のソースとして MongoDB 互換データベースを使用する機能](#dm-data-providers-source-mongodb-features)
+ [MongoDB 互換データベースを同種データ移行のソースとして使用する場合の制限](#dm-data-providers-source-mongodb-limitations)
+ [同種データ移行のソースとして MongoDB 互換データベースを使用するベストプラクティス](#dm-data-providers-source-mongodb-bestpractices)

## での同種データ移行のソースとしてのセルフマネージド MongoDB データベースの使用 AWS DMS
<a name="dm-data-providers-source-mongodb-sm"></a>

このセクションでは、オンプレミスまたは Amazon EC2 インスタンスでホストされる MongoDB データベースの設定方法について説明します。

ソースの MongoDB データベースのバージョンを確認します。で説明されているように、 がソース MongoDB データベースバージョン AWS DMS をサポートしていることを確認します[DMS 同種データ移行のソースデータプロバイダー](CHAP_Introduction.Sources.md#CHAP_Introduction.Sources.HomogeneousDataMigrations)。

MongoDB ソースを使用した同種データ移行を実行するために、ルート権限を持つユーザーアカウントを作成するか、移行するデータベースに対してのみアクセス許可を持つユーザーを作成することができます。ユーザー作成の詳細については、「[のソースとして MongoDB を使用する場合に必要なアクセス許可 AWS DMS](CHAP_Source.MongoDB.md#CHAP_Source.MongoDB.PrerequisitesCDC)」を参照してください。

MongoDB で継続的なレプリケーションまたは CDC を使用するには、MongoDB オペレーションログ (oplog) へのアクセス AWS DMS が必要です。詳細については、「[CDC 用 MongoDB レプリカセットの設定](CHAP_Source.MongoDB.md#CHAP_Source.MongoDB.PrerequisitesCDC.ReplicaSet)」を参照してください。

MongoDB の認証方法の詳細については、「[のソースとして MongoDB を使用する場合のセキュリティ要件 AWS DMS](CHAP_Source.MongoDB.md#CHAP_Source.MongoDB.Security)」を参照してください。

MongoDB をソースとして使用する場合、同種データ移行は Amazon DocumentDB がサポートするすべてのデータ型をサポートします。

MongoDB をソースとして使用し、Secrets Manager にユーザー認証情報を保存するには、**[その他のシークレット]** タイプを使用し、プレーンテキストで指定する必要があります。詳細については、「[シークレットを使用した AWS Database Migration Service エンドポイントへのアクセス](security_iam_secretsmanager.md)」を参照してください。

次のコードサンプルは、プレーンテキストを使用してデータベースシークレットを保存する方法を示しています。

```
{
  "username": "dbuser",
  "password": "dbpassword"
}
```

## での同種データ移行のソースとしての Amazon DocumentDB データベースの使用 AWS DMS
<a name="dm-data-providers-source-mongodb-aws"></a>

このセクションでは、Amazon DocumentDB データベースインスタンスを同種データ移行のソースとして使用するように設定する方法について説明します。

Amazon DocumentDB インスタンスのマスターユーザー名を、 AWS DMSでの同種データ移行用の MongoDB 互換ソースデータプロバイダーのユーザーアカウントとして使用します。マスターユーザーアカウントには、CDC を設定するために必要なロールがあります。管理ユーザーアカウント以外のアカウントを使用する場合、アカウントにルートロールが必要です。ルートアカウントとしてユーザーを作成する方法の詳細については、「[ソースとして Amazon DocumentDB を使用するためのアクセス許可の設定](CHAP_Source.DocumentDB.md#CHAP_Source.DocumentDB.Permissions)」を参照してください。

論理レプリケーションをオンにするには、データベースのパラメータグループの `change_stream_log_retention_duration` パラメータをトランザクションワークロードに適切な設定にします。この静的パラメータを変更にするには、DB インスタンスを再起動する必要があります。フルロードのみを含むすべてのタスクタイプのデータ移行を開始する前に、指定されたデータベース内のすべてのコレクション、または選択したコレクションに対してのみ Amazon DocumentDB 変更ストリームを有効にします。Amazon DocumentDB で変更ストリームを有効にする方法の詳細については、「*Amazon DocumentDB デベロッパーガイド*」の「[変更ストリームの有効化](https://docs.aws.amazon.com/documentdb/latest/developerguide/change_streams.html#change_streams-enabling)」を参照してください。

**注記**  
AWS DMS は Amazon DocumentDB 変更ストリームを使用して、継続的なレプリケーション中の変更をキャプチャします。DMS が読み取る前に Amazon DocumentDB が変更ストリームからレコードをフラッシュすると、タスクは失敗します。少なくとも 24 時間は変更が保持されるように `change_stream_log_retention_duration` パラメータを設定することをお勧めします。

Amazon DocumentDB を同種データ移行に使用するには、**[Amazon DocumentDB データベースの認証情報]** の下の Secrets Manager で認証情報を保存します。

## 同種データ移行のソースとして MongoDB 互換データベースを使用する機能
<a name="dm-data-providers-source-mongodb-features"></a>
+ Amazon DocumentDB がフルロードフェーズ中にサポートするすべてのセカンダリインデックスを移行できます。
+ AWS DMS はコレクションを並行して移行します。同種データ移行は、パフォーマンスを最大化するために、コレクション内の各ドキュメントの平均サイズに基づいて実行時にセグメントを計算します。
+ DMS は、CDC フェーズで作成するセカンダリインデックスをレプリケートできます。DMS は、MongoDB バージョン 6.0 でこの機能をサポートしています。
+ DMS は、ネストレベルが 97 を超えるドキュメントをサポートしています。

## MongoDB 互換データベースを同種データ移行のソースとして使用する場合の制限
<a name="dm-data-providers-source-mongodb-limitations"></a>
+ ドキュメントに `$` プレフィックスを持つフィールド名を含めることはできません。
+ AWS DMS は時系列収集の移行をサポートしていません。
+ AWS DMS は、CDC フェーズ中の `create`、`drop`、または `rename collection` DDL イベントをサポートしていません。
+ AWS DMS は、 `_id`フィールドのコレクションで一貫性のないデータ型をサポートしていません。例えば、以下のサポートされていないコレクションには、`_id` フィールドに複数のデータ型があります。

  ```
  rs0 [direct: primary] test> db.collection1.aggregate([
  ...   {
  ...     $group: {
  ...       _id: { $type: "$_id" },
  ...       count: { $sum: 1 }
  ...     }
  ...   }
  ... ])
  [ { _id: 'string', count: 6136 }, { _id: 'objectId', count: 848033 } ]
  ```
+ CDC のみのタスクの場合、 は`immediate`開始モード AWS DMS のみをサポートします。
+ AWS DMS は、無効な UTF8 文字のドキュメントをサポートしていません。
+ AWS DMS はシャードコレクションをサポートしていません。

## 同種データ移行のソースとして MongoDB 互換データベースを使用するベストプラクティス
<a name="dm-data-providers-source-mongodb-bestpractices"></a>
+ 同じ MongoDB インスタンスでホストされている複数の大規模なデータベースとコレクションの場合、データベースとコレクションごとに選択ルールを使用し、複数のデータ移行タスクとプロジェクト間でタスクを分割することをお勧めします。データベースとコレクションの区分を調整して、パフォーマンスを最大化できます。