DMS エラー Test connection for replication instance の解決法

DMS エラー Test connection for replication instance の解決法

2025.08.17

発生したエラー

DMS 移行タスクの実行時に以下エラーが発生しました。

スクリーンショット 2025-08-14 15.32.59

Test connection for replication instance <レプリケーションインスタンス名> and endpoint <ソースエンドポイント名> should be successful for starting the replication task

訳:
レプリケーションインスタンス <レプリケーションインスタンス名> とエンドポイント <ソースエンドポイント名> 間の接続テストが成功する必要があります。これにより、レプリケーションタスクを開始できます。

エラー解決方法

ソース DB とターゲット DB のセキュリティグループにレプリケーションインスタンスからのアクセスを許可するようにルールを追加するとエラー解消します。
DMS 接続障害のトラシューについては下記公式ブログもご参照ください。
https://repost.aws/ja/knowledge-center/dms-endpoint-connectivity-failures

やってみた

セキュリティグループの作成

以下 3 つのセキュリティグループを作成します。
移行元/移行先データベースには、パブリック EC2 インスタンスからのインバウンドルールのみ設定しており、その他はありません。
※パブリック EC2 は、DB に接続してソース-ターゲット間で移行がちゃんと完了できているか確認するためのものです。

  • 移行元データベース用:source-db-sg
    スクリーンショット 2025-08-14 13.58.06

  • 移行先データベース用:target-db-sg
    スクリーンショット 2025-08-14 15.00.26

  • DMS レプリケーションインスタンス用:dms-replication-instance-sg
    スクリーンショット 2025-08-14 15.04.43

DMS 環境の構築

以下ブログを参考に移行元と移行先であるデータベースの作成および DMS の設定をします。
なお、セキュリティグループはそれぞれ前項のものを使用します。
https://dev.classmethod.jp/articles/trying-data-migration-with-dms/

タスク実行 -> 失敗

作成したタスクを選択し、アクションから「開始」します。
スクリーンショット 2025-08-11 17.07.42

タスクの開始を試みましたが、以下のようにエラーとなります。
スクリーンショット 2025-08-14 15.32.59

エラー内容
Test connection for replication instance <レプリケーションインスタンス名> and endpoint <ソースエンドポイント名> should be successful for starting the replication task

エラーの詳細は、作成したエンドポイントの接続タブに記載があります。
スクリーンショット 2025-08-14 15.48.54

メッセージ内容
Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider ODBC general error.

タスク実行時のエラー文とエンドポイントのエラーメッセージより、原因は、レプリケーションインスタンスとエンドポイント間の接続に見受けられます。

そのため、DMS レプリケーションインスタンスからの接続を許可するよう、移行元 DB のセキュリティグループにインバウンドルールを追加します。

スクリーンショット 2025-08-13 20.39.15

ソースエンドポイント(移行元 DB)とレプリケーションインスタンスが繋がるかを確認するため、エンドポイントの画面より「接続のテスト」を選びます。
スクリーンショット 2025-08-17 17.03.42

「テストの実行」を選びます。
スクリーンショット 2025-08-17 17.06.05

ステータスが Successful となり、無事に移行元への接続ができていそうです。
スクリーンショット 2025-08-17 17.07.22

接続タブを見ても、先ほどのエラーメッセージが消えていることが確認できます。
スクリーンショット 2025-08-17 17.09.09

続いて、ターゲットエンドポイントも確認します。
こちらにも同様のエラーが出ています。
スクリーンショット 2025-08-17 17.12.47

DMS レプリケーションインスタンスがタスク実行時に移行先 DB にアクセスできるよう、ターゲットデータベースのインバウンドルールに設定を追加します。
スクリーンショット 2025-08-17 17.11.43

インバウンドルールを追加したら、ソースエンドポイントの時と同様に接続のテストを実行します。ステータスが Successful になりました!
スクリーンショット 2025-08-17 17.15.10

タスク実行 -> 成功

それでは、再度タスクを実行します。今度はエラーが発生せず、タスクが開始されました。ステータスも「開始中」となっています。
スクリーンショット 2025-08-17 17.21.27

タスクが完了しました。
スクリーンショット 2025-08-17 17.22.06

パブリック EC2 からターゲットに接続し、 test_db.user テーブルがちゃんと移行されているか確認します。
以下結果より、きちんと移行されていました。

$ mysql -u admin -p -h <ターゲット DB エンドポイント>

...

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| awsdms_control     |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test_db            |
+--------------------+
6 rows in set (0.00 sec)

mysql> select * from test_db.user;
+------+--------+---------+
| id   | name   | address |
+------+--------+---------+
|    1 | Yamada | Tokyo   |
|    2 | Satou  | Chiba   |
|    3 | Kinjo  | Okinawa |
+------+--------+---------+
3 rows in set (0.00 sec)

終わりに

今回は、DMS のレプリケーションインスタンス-エンドポイント間の接続エラーについて検証してみました。原因は単純なセキュリティグループの設定不足によるエラーでしたが、きっと同じように詰まる方もいらっしゃると思うのでブログ化しました。

本記事がどなたかのお役に立てば幸いです。

参考文献

https://repost.aws/ja/knowledge-center/dms-endpoint-connectivity-failures
https://dev.classmethod.jp/articles/trying-data-migration-with-dms/

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.