はじめに
Fusic Advent Calendar 2025 の 5 日目です!
今回は、DMS の移行テストを行っていた際に遭遇した事象についてまとめます。よろしくお願いします!
AWS DMS(Database Migration Service)は、異なるデータベース間のデータ移行をシンプルかつ最小限のダウンタイムで実行できるサービスです。
オンプレミスやクラウドなど、さまざまなソースとターゲット間でのデータ移行に対応し、継続的なデータ複製(CDC)もサポートしているため、安全に移行作業を進めたい場合によく利用されます。
今回は、この AWS DMS を使って Azure MySQL からの移行テストを実施していた際、テーブル数が 10,000 件を超える環境で "ExecuteTimeout" エラーに遭遇しました。
同じように困る方がいると思い、この記事としてまとめています!
困っていたこと
DMS の連携テスト(接続テストや移行前評価)を実行すると、テーブル情報の取得処理でタイムアウトが発生し、処理が先へ進まないという問題が起きていました。
実際には次のような画面になります。
原因が分からず、しばらく調査に時間を取られてしまいました。
エラー内容
実際に表示されたエラーはこちらです:
The number of tables to migrate exceeds 10000. Increase the ECA ExecuteTimeout value.
つまり、テーブル数が 1 万件を超えているため、DMS の初期メタデータ取得(INFORMATION_SCHEMA の読み込みなど)が 60 秒以内に完了せず、タイムアウトしているという内容です。
DMS のデフォルト設定では ExecuteTimeout = 60 秒 ですが、1万件以上のテーブルがあると間違いなく足りません。
解決方法
結論から言うと、
AWS DMS のソースエンドポイント設定で
executeTimeoutを延長する
だけで解決しました。
追加の接続属性(ECA)で設定する
以下の手順で設定します:
- AWS コンソール → DMS(Database Migration Service) を開く
- 左メニューから エンドポイント(Endpoints) を選択
- 対象の エンドポイント(Endpoints) をクリック
- 画面右上のアクションから [変更(Modify)] を選択
- ページ下部までスクロールし、「エンドポイント設定(Endpoint settings)」 セクションへ
- 「エンドポイント接続属性を使用(Use endpoint connection attributes)」 にチェックを入れる
- 表示される 「追加の接続属性(Extra Connection Attributes)」 に以下を入力:
executeTimeout=300;
設定画面はこのようなイメージです。
補足:
-
300は待機時間(秒)。環境によっては 300〜600 秒 を推奨。 - 入力後、右下の 保存(Save) をクリック。
- 保存後、エンドポイント接続テストを実施して問題が解消しているか確認します。
設定の反映が正常に確認できました!
まとめ
ここまで読んでいただき、ありがとうございました!
最近寒くなってきたので、体調を崩さないように暖かくしていきたいですね。土日はゆっくり休もうと思います。
今回の件をきっかけに、DMS についてももっと勉強していきたいと思います...!!


