LoginSignup
2
0

More than 3 years have passed since last update.

AWS DMSでDocumentDBをデータ移行元とするときの注意点

Last updated at Posted at 2020-08-28

AWS DMS (Database Migration Service) で

  1. DocumentDB -> DocumentDB
  2. MongoDB -> DocumentDB

の2パターンでデータ移行を試してみた。

結論から書くと、1のパターンではCDC(継続的な変更のレプリケート)では動かなかったが、それ以外では動く。

AWSの公式ドキュメントを見ると、移行元としてMongoDBは記述されているがDocumentDBの記述は見つからない。しかし、DocumentDBはMongoDBの互換だから、ある程度は同じように動くようだ。

2020/08/31 追記

当初「AWS DMSはMongoDBからのデータ移行はできてもDocumentDBからはできない」というタイトルだったが、CDCを避ければDocumentDBを移行元としても実行できることがわかったので、記事の内容を訂正した。

手順

簡単に設定手順を書いておく。

前提

  • 移行元と移行先は構築済み
  • 移行元と移行先の両方と通信できるAWSのVPCがある
    • 通信できるというのは、セキュリティグループの適切な設定を含む
    • 以下手順のDMSレプリカインスタンスはこのVPC内に構築

手順

  1. DMSレプリカインスタンス構築 (データ移行元と移行先に接続可能なセキュリティグループの設定が必要)
  2. DMSレプリカインスタンスからデータ移行元に接続するためのソースエンドポイント設定
  3. DMSレプリカインスタンスからデータ移行先に接続するためのターゲットエンドポイント設定 (AWSのドキュメントに従い、DocumentDB接続用の証明書をダウンロードして、エンドポイントに設定が必要)
  4. DMSマイグレーションタスク作成 (タスク作成時にレプリカインスタンス、ソースエンドポイント、ターゲットエンドポイントを指定)

AWSのドキュメントに詳細が書いてある。

Walkthrough: Migrating from MongoDB to Amazon DocumentDB - AWS Database Migration Service

移行元にDocumentDBを指定した場合

ソースエンドポイントのエンジンとしてMongoDBを指定して、DocumentDBの接続情報を設定すればDocumentDBを移行元として使える。

ただし、マイグレーションタスク作成時に「既存のデータを移行して、継続的な変更をレプリケートする(CDC)」を選択すると、マイグレーション実行時にエラーが発生する。

image.png

エラーの内容は次のとおり。

Last failure message
Last Error Endpoint initialization failed. Task error notification received from subtask 0, thread 0 [reptask/replicationtask.c:2814] [1020401] Error executing command; Stream component failed at subtask 0, component st_0_3OQBMWWPDQOCVQ36IETQPRLPTPU2BUTTYOYJBJY ; Stream component 'st_0_3OQBMWWPDQOCVQ36IETQPRLPTPU2BUTTYOYJBJY' terminated [reptask/replicationtask.c:2821] [1020401] Stop Reason FATAL_ERROR Error Level FATAL
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0