AWS DMS で Amazon RDS for SQL Server のデータ移行を行う~ Serverless 編~

AWS DMS で Amazon RDS for SQL Server のデータ移行を行う~ Serverless 編~

DMS を使った RDS for SQL Server の移行をサーバーレスモードで試しました。
2025.09.30

コーヒーが好きな emi です。最近はカフェインを控えています。

以下のブログで、DMS のレプリケーションインスタンス(プロビジョンドインスタンス)を作成し、プロビジョンドモードで RDS for SQL Server のデータ移行検証を行いました。
https://dev.classmethod.jp/articles/dms-rds-for-sql-server-data-migration/

今回は上記ブログの環境でレプリケーションインスタンス(プロビジョンドインスタンス)を削除し、DMS のタスクモードをサーバーレスにして RDS for SQL Server のデータ移行を試してみます。

構成イメージ

以下の構成で検証します。Windows Server 2022 には SQL Server Management Studio(SSMS)をインストールしておき、ソースとなる DB とターゲットとなる DB に接続して中身のデータを確認するために使います。
dms-rds-for-sql-server-data-migration-serverless_32

AWS DMS で Amazon RDS for SQL Server のデータ移行を行う | DevelopersIO からの差分は以下赤枠部分です。
dms-rds-for-sql-server-data-migration-serverless_33-2

0. 準備

レプリケーションインスタンスとプロビジョンドタスクの削除

AWS DMS で Amazon RDS for SQL Server のデータ移行を行う | DevelopersIO で作成した構成から、レプリケーションインスタンス(プロビジョンドインスタンス)を削除しておきます。

dms-rds-for-sql-server-data-migration-serverless_1

普通に削除しようとすると、削除できませんでした。
dms-rds-for-sql-server-data-migration-serverless_2

詳細を表示すると、
dms-rds-for-sql-server-data-migration-serverless_3

			
			Replication Instance 'dms-replication-instance' has one or more replication tasks.
(機械翻訳)レプリケーションインスタンス 『dms-replication-instance』 には、1つ以上のレプリケーションタスクが存在します。

		

dms-rds-for-sql-server-data-migration-serverless_4

つまり、レプリケーションインスタンスが紐づいているレプリケーションタスクを先に削除しておかないといけないそうです。
dms-rds-for-sql-server-data-migration-serverless_5

タスクを削除しましょう。
dms-rds-for-sql-server-data-migration-serverless_6

すぐに削除できました。
dms-rds-for-sql-server-data-migration-serverless_7

再度レプリケーションインスタンスを削除します。
dms-rds-for-sql-server-data-migration-serverless_8

10 分程度待ち、今度は削除できました。
dms-rds-for-sql-server-data-migration-serverless_9

ターゲット DB の掃除

AWS DMS で Amazon RDS for SQL Server のデータ移行を行う | DevelopersIO でデータが移行された状態になっているので、user テーブルを丸ごと削除しておきます。

user テーブルの削除

			
			DROP TABLE dbo.[user];

		

データベース内のテーブル一覧の表示

			
			SELECT name FROM sys.tables;

		

これは「sys.tables という表から、name 列の値を取り出して見る」というコマンドです。SQL Server には MySQL のように show tables; のようなテーブル一覧を表示するコマンドがありませんので、select でテーブル一覧を表示します。

sys.tables は SQL Server が内部で持っているシステムビュー(メタ情報の表)で、「このデータベースにどんなテーブルがあるか」という情報が格納されています。普通のユーザーが作るテーブルではなく、データベースの管理用テーブルです。

sys.tables には「テーブルID」「作成日時」「スキーマID」など様々な列があり、その中の一つが name 列で、テーブルの名前が入っています。
SELECT name FROM sys.tables; と書くと、テーブル名だけ一覧で表示されるわけです。

dms-rds-for-sql-server-data-migration-serverless_10

name に何もない、つまり、テーブルは無い状態であることが確認できました。

エンドポイント接続の確認(できない)

レプリケーションインスタンスがあった時は、レプリケーションエンドポイントとの接続確認を行うことができ、接続がうまくいっていないとタスクが作成できませんでした。
サーバーレスの場合はどうなるのか確認してみます。
dms-rds-for-sql-server-data-migration-serverless_11

「接続のテスト」をクリックすると、
dms-rds-for-sql-server-data-migration-serverless_12

dms-rds-for-sql-server-data-migration-serverless_13

			
			Important: Connection testing for AWS DMS Serverless endpoints
When using endpoints with DMS Serverless replications, you cannot perform connection testing through this interface. DMS Serverless automatically validates your endpoint connection as part of the startup sequence when you start replication.
(機械翻訳)重要: AWS DMS サーバーレス エンドポイントの接続テストについてDMS サーバーレス レプリケーションでエンドポイントを使用する場合、このインターフェースを通じて接続テストを実行することはできません。DMS サーバーレスは、レプリケーションを開始する際の起動シーケンスの一環として、エンドポイント接続を自動的に検証します。

		

タスクモードがサーバーレスの場合、エンドポイント接続の確認はこの画面からはできないそうです。AWS 側で接続の確認を行ってくれるようです。

https://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Serverless.Components.html

1. レプリケーションタスク(サーバーレス)の作成

レプリケーションタスクのタスクモードをサーバーレスで作成します。サーバーレス方式の場合はレプリケーションインスタンスを作成する必要がないので、もうタスクの作成に進みます。
dms-rds-for-sql-server-data-migration-serverless_14

タスク名、ソース DB、ターゲット DB を指定し、タスクモードはサーバーレスを選択します。タスクタイプは移行のみとします。
dms-rds-for-sql-server-data-migration-serverless_15

ターゲットテーブル準備モードは「ターゲットのテーブルをドロップ(削除)」、「レプリケーションに LOB 列を含める」では、デフォルトの「制限付き LOB モード」のままにします。

設定値の説明は AWS DMS で Amazon RDS for SQL Server のデータ移行を行う | DevelopersIO - 5. 移行タスクの作成 を参照してください。

dms-rds-for-sql-server-data-migration-serverless_16

高度な設定はデフォルトのまま進めます。
dms-rds-for-sql-server-data-migration-serverless_17

テーブルマッピングではウィザードを選択して「新しい選択ルールを追加」をクリックします。
今回は以下のように設定します。

  • スキーマ名:dbo
  • スキーマテーブル名:user
  • アクション:含む

RDS for SQL Server に SQL Server Management Studio(SSMS)でデータを挿入する | DevelopersIO でデータを挿入したテーブルの情報を入れています。
dms-rds-for-sql-server-data-migration-serverless_18

作成済みの VPC、サブネットグループ、セキュリティグループを設定します。セキュリティグループは、レプリケーションインスタンスに設定したのと同じものを設定しています。

検証のため、可用性ではシングル AZ を選択しコストを抑えます。
dms-rds-for-sql-server-data-migration-serverless_19

アベイラビリティゾーンは指定なしで進めます。

「キャパシティ」では、レプリケーションに使用するコンピューティングリソースのキャパシティの最小値と最大値を設定します。このキャパシティは、DMS キャパシティユニット(DCU)と言います。

最小値は任意で、何も設定しないと 1 DCU(1 vCPU、2 GiB)になります。
最大値は必須項目です。
dms-rds-for-sql-server-data-migration-serverless_20

(参照)キャパシティ情報タブ転記
			
			AWS DMS computes the minimum capacity required to successfully complete each replication. AWS DMS bases this assessment on the replication's workload. You set the maximum capacity for the replication. AWS DMS uses this range to create scaling rules for the following thresholds:

CPU utilization

Connections

Available memory

AWS DMS can increase capacity to the value of Maximum.


		

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html?icmpid=docs_console_unmapped

前回レプリケーションインスタンスを作成したとき t3.medium(2 vCPU、CPU バーストクレジットあり、 4 GiB メモリ)を指定したので、似たようなキャパシティとして、最大 DCU は 2 DCU(2 vCPU、4 GiB メモリ)にしてみました。

メンテナンスウィンドウを設定し、タスクを作成します。
dms-rds-for-sql-server-data-migration-serverless_21

サーバーレスタスクが作成されました。
dms-rds-for-sql-server-data-migration-serverless_22

2. レプリケーションタスク(サーバーレス)の開始

アクションからタスクを開始します。
dms-rds-for-sql-server-data-migration-serverless_23

移行前評価はオフにしてタスクを開始します。移行前評価はあとで検証しましょう。
dms-rds-for-sql-server-data-migration-serverless_24

タスクのステータスが初期化中となり、
dms-rds-for-sql-server-data-migration-serverless_25

メタデータの準備中となり、
dms-rds-for-sql-server-data-migration-serverless_26

キャパシティのプロビジョニング中となります。
dms-rds-for-sql-server-data-migration-serverless_27

キャパシティのプロビジョニングが終わり、タスクが開始されます。
dms-rds-for-sql-server-data-migration-serverless_28

サーバーレスのタスクのステータスは以下ドキュメントに遷移図があります。

https://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Serverless.Components.html

タスクの作成からトータルで 20 分程待ち、ロードが完了しました。開始・停止時間と、プロビジョンド DMS キャパシティユニットのところに DCU が表記されました。
dms-rds-for-sql-server-data-migration-serverless_29

ターゲット DB に接続してデータが移行されているか確認します。

			
			SELECT * FROM [user];

		

▼実行結果

			
			id          name       address
----------- ---------- ----------
1           Yamada     Tokyo
2           Satou      Chiba
3           Kinjo      Okinawa

(3 行に影響しました)

完了時刻: 2025-09-30T21:14:08.7899582+09:00

		

dms-rds-for-sql-server-data-migration-serverless_30

無事 user テーブルが作成され、データが移行されていることが確認できました。

また、少したってタスクのステータスを見ると、「停止およびプロビジョニング解除済み」となっていました。
プロビジョンドモードと違ってタスクが動いていない時間はコンピューティングリソースが解放されるので、コストがかかりっぱなしにならないというわけです。
dms-rds-for-sql-server-data-migration-serverless_31

ちなみに、時間当たりの料金だとサーバーレスの方が少し高いです。
https://aws.amazon.com/jp/dms/pricing/

オンデマンドインスタンス(プロビジョンドインスタンス)の料金(東京リージョン)

インスタンスタイプ 時間あたりの料金 (シングル AZ) 時間あたりの料金 (マルチ AZ)
t3.medium(2 vCPU、CPU バーストクレジットあり、 4 GiB メモリ) USD 0.112 USD 0.224

サーバーレスの料金(東京リージョン)

AWS DMS キャパシティユニット (DCU) 時間あたりの料金 (シングル AZ) 時間あたりの料金 (マルチ AZ)
2(2 vCPU、4 GiB メモリ) USD 0.229 USD 0.458

CloudWatch Logs のログ

タスクのログが CloudWatch Logs のロググループ dms-serverless-replication-P2NOQMBK3BDJVNSQ3SCECW22HI に出力されているので、参考に記載します。
ログ全体を眺めたいので「ログのインサイト(CloudWatch Logs Insights)」か
ローカルタイムゾーンと時刻を指定し、ロググループ dms-serverless-replication-P2NOQMBK3BDJVNSQ3SCECW22HI を選択して以下クエリを実行します。

			
			fields @timestamp, @message, @logStream
| sort @timestamp asc
| limit 10000

		

タイムスタンプ、ログメッセージ、ログストリームを昇順(古い→新しい)で 10000 行取得するクエリです。

結果はコピーすることもダウンロードすることもできます。CSV でダウンロードすると、logs-insights-results.csv という名前の CSV がダウンロードできました。

logs-insights-results.csv
logs-insights-results.csv
			
			@timestamp,@message,@logStream
2025-09-30 11:38:45.170,"{'replication_state':'initializing', 'message': 'Initializing the replication workflow.'}",dms-serverless-replication-orchestrator-P2NOQMBK3BDJVNSQ3SCECW22HI
2025-09-30 11:38:53.500,"{'replication_state':'calculating_capacity', 'message': 'Calculating workload capacity for your replication based on table mappings and source metadata.'}",dms-serverless-replication-orchestrator-P2NOQMBK3BDJVNSQ3SCECW22HI
2025-09-30 11:39:20.619,"{'replication_state':'provisioning_capacity', 'message': 'Fetching workload capacity to provision your replication.'}",dms-serverless-replication-orchestrator-P2NOQMBK3BDJVNSQ3SCECW22HI
2025-09-30 11:39:22.802,"{'replication_state':'provisioning_capacity', 'message': 'Provisioning 2 capacity units to perform the replication. This can take some time.'}",dms-serverless-replication-orchestrator-P2NOQMBK3BDJVNSQ3SCECW22HI
2025-09-30 11:58:22.571,"{'replication_state':'replication_starting', 'message': 'Starting replication from source arn:aws:dms:ap-northeast-1:123456789012:endpoint:5SBTLOTFTVFQHL7MDMN5HV3SUU to target arn:aws:dms:ap-northeast-1:123456789012:endpoint:NX3KDSKKNFBG5JPVZEQVSLN3II in FULL_LOAD mode.'}",dms-serverless-replication-orchestrator-P2NOQMBK3BDJVNSQ3SCECW22HI
2025-09-30 11:59:03.000,"2025-09-30T11:59:03 [AT_GLOBAL       ]I:  Task Server Log - serv-res-id-1759233328225-uiwj  (V3.5.3.R2373 ip-172-23-1-194 Linux 4.14.355-280.695.amzn2.x86_64 #1 SMP Tue Sep 23 00:22:57 UTC 2025 x86_64 64-bit, PID: 17005) started at Tue Sep 30 11:59:03 2025  (at_logger.c:3250)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,2025-09-30T11:59:03 [DATA_STRUCTURE  ]I:  SQLite version is 3.31.1  (at_sqlite.c:178),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,2025-09-30T11:59:03 [TARGET_APPLY    ]I:  Lob lookup mutex created successfully  (bulk_apply.c:888),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,2025-09-30T11:59:03 [VALIDATOR       ]I:  validation_util_class_initialize  (validation_util.c:85),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,2025-09-30T11:59:03 [VALIDATOR       ]I:  Creating Table Def Mutex  (validation_util.c:89),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,2025-09-30T11:59:03 [VALIDATOR       ]I:  ==> Success Creating Table Def Mutex  (validation_util.c:97),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,2025-09-30T11:59:03 [TASK_MANAGER    ]I:  Execute Request Task 'serv-res-id-1759233328225-uiwj' running full load only with flags fresh start with cdcPosition null and stop_at null  (replicationtask.c:993),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,"2025-09-30T11:59:03 [TASK_MANAGER    ]I:  ""BatchApplyPreserveTransaction"" is turned off because Batch optimized apply mode is disabled in the task settings.  (replicationtask.c:1400)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,"2025-09-30T11:59:03 [TASK_MANAGER    ]I:  Note: the 'SQL Server' target endpoint does not support ""BatchApplyPreserveTransaction"" option in ""Batch optimized apply"" mode. Therefore, this option is disabled even if you enable in the task settings.  (replicationtask.c:1407)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,2025-09-30T11:59:03 [TASK_MANAGER    ]I:  Task 'serv-res-id-1759233328225-uiwj' starting full load only in fresh start mode  (replicationtask.c:1621),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,2025-09-30T11:59:03 [TASK_MANAGER    ]I:  Serverless enhanced throughput is Disabled.  (replicationtask.c:1821),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,2025-09-30T11:59:03 [VALIDATOR       ]I:  bValidationFreshStart = '1'  (validation_manager.c:170),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,2025-09-30T11:59:03 [TASK_MANAGER    ]I:  Task Id: daf18771-50d6-4559-ba16-641d5ddad106  (replicationtask.c:3911),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,2025-09-30T11:59:03 [TASK_MANAGER    ]I:  LOB support on the task has been enabled  (endpointshell.c:1915),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,2025-09-30T11:59:03 [TASK_MANAGER    ]I:  Task is running in Limited LOB Mode. MaxLobSize is set to '32768' Bytes  (endpointshell.c:1918),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:03.000,"2025-09-30T11:59:03 [METADATA_MANAGE ]I:  Going to connect to ODBC connection string: DRIVER={ODBC Driver 17 for SQL Server};SERVER=source-db.colw41khta5t.ap-northeast-1.rds.amazonaws.com,1433;DATABASE=test_db;Trusted_Connection=no;;  (sqlserver_endpoint_util.c:242)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Source endpoint 'SQL Server' is using provider syntax 'SQLServer'  (provider_syntax_manager.c:894),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  SQL server version: Microsoft SQL Server 2016 (SP3-GDR) (KB5063762) - 13.0.6465.1 (X64)  	Jul 14 2025 21:50:50  	Copyright (c) Microsoft Corporation 	Standard Edition (64-bit) on Windows Server 2016 Datacenter 10.0 <X64> (Build 14393: ) (Hypervisor)  (sqlserver_log_queries.c:8466),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Database is RDS SQL Server  (sqlserver_log_queries.c:8518),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Sampled server version: 2016  (sqlserver_endpoint_imp.c:2372),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Internal property forceloblookup: false  (sqlserver_endpoint_imp.c:2386),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Internal property lobLookupNoDataRetry: 0  (sqlserver_endpoint_imp.c:2387),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Internal property lobLookupNodataPollingSec: 1  (sqlserver_endpoint_imp.c:2388),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Internal property forceDataRowLookup: false  (sqlserver_endpoint_imp.c:2390),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Internal property rowLookupNoDataRetry: 0  (sqlserver_endpoint_imp.c:2391),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Internal property rowLookupNoDataPollingSec: 1  (sqlserver_endpoint_imp.c:2392),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  NLS configuration sampled: Associated code page=932  (sqlserver_endpoint_imp.c:2426),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Bulk is set to ignore max row size warnings  (sqlserver_endpoint_imp.c:1656),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Working with collated columns  (sqlserver_endpoint_imp.c:1713),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Working with BCPKeepNull set to TRUE  (sqlserver_endpoint_imp.c:1717),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Target endpoint 'SQL Server' is using provider syntax 'SQLServer'  (provider_syntax_manager.c:900),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Loaded SQLServer Driver: 'ODBC Driver 17 for SQL Server'  (sqlserver_endpoint_imp.c:472),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,"2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Going to connect to SQL Server Target : DRIVER={ODBC Driver 17 for SQL Server};SERVER=target-db.colw41khta5t.ap-northeast-1.rds.amazonaws.com,1433;DATABASE=test_db;UID=target_db_admin;  (ar_odbc_conn.c:354)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,"2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Going to connect to SQL Server Target : DRIVER={ODBC Driver 17 for SQL Server};SERVER=target-db.colw41khta5t.ap-northeast-1.rds.amazonaws.com,1433;DATABASE=test_db;UID=target_db_admin;  (ar_odbc_conn.c:354)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [METADATA_MANAGE ]I:  Target endpoint 'SQL Server' is using provider syntax 'SQLServer'  (provider_syntax_manager.c:900),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TASK_MANAGER    ]I:  Preparing all components  (replicationtask.c:2279),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,"2025-09-30T11:59:04 [TASK_MANAGER    ]I:  Task - serv-res-id-1759233328225-uiwj is in STARTING state, updating starting status to AR_PREPARING_COMPONENTS  (repository.c:5491)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TASK_MANAGER    ]I:  Creating threads for all components  (replicationtask.c:2312),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,"2025-09-30T11:59:04 [TASK_MANAGER    ]I:  Task - serv-res-id-1759233328225-uiwj is in STARTING state, updating starting status to AR_CREATING_TREADS  (repository.c:5491)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,"2025-09-30T11:59:04 [TASK_MANAGER    ]I:  Task - serv-res-id-1759233328225-uiwj is in STARTING state, updating starting status to AR_CREATING_TABLES_LIST  (repository.c:5491)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TABLES_MANAGER  ]I:  Calling for get capture table list from the Metadata Manager started.  (tasktablesmanager.c:963),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TABLES_MANAGER  ]I:  Calling for get capture table list from the Metadata Manager ended.  (tasktablesmanager.c:970),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,"2025-09-30T11:59:04 [TASK_MANAGER    ]I:  Task - serv-res-id-1759233328225-uiwj is in RUNNING state, updating starting status to AR_RUNNING  (repository.c:5491)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TASK_MANAGER    ]I:  All stream components were initialized  (replicationtask.c:3648),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TASK_MANAGER    ]I:  Starting the validation process...  (replicationtask.c:3725),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TASK_MANAGER    ]I:  Starting subtask #1  (replicationtask_util.c:521),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TASK_MANAGER    ]I:  Threads for all components were created  (replicationtask.c:2499),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TASK_MANAGER    ]I:  Task initialization completed successfully  (replicationtask.c:3968),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TARGET_LOAD     ]I:  Bulk is set to ignore max row size warnings  (sqlserver_endpoint_imp.c:1656),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TARGET_LOAD     ]I:  Working with collated columns  (sqlserver_endpoint_imp.c:1713),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TARGET_LOAD     ]I:  Working with BCPKeepNull set to TRUE  (sqlserver_endpoint_imp.c:1717),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TARGET_LOAD     ]I:  Target endpoint 'SQL Server' is using provider syntax 'SQLServer'  (provider_syntax_manager.c:900),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TARGET_LOAD     ]I:  Loaded SQLServer Driver: 'ODBC Driver 17 for SQL Server'  (sqlserver_endpoint_imp.c:472),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,"2025-09-30T11:59:04 [TARGET_LOAD     ]I:  Going to connect to SQL Server Target : DRIVER={ODBC Driver 17 for SQL Server};SERVER=target-db.colw41khta5t.ap-northeast-1.rds.amazonaws.com,1433;DATABASE=test_db;UID=target_db_admin;  (ar_odbc_conn.c:354)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,"2025-09-30T11:59:04 [TARGET_LOAD     ]I:  Going to connect to SQL Server Target : DRIVER={ODBC Driver 17 for SQL Server};SERVER=target-db.colw41khta5t.ap-northeast-1.rds.amazonaws.com,1433;DATABASE=test_db;UID=target_db_admin;  (ar_odbc_conn.c:354)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:04.000,2025-09-30T11:59:04 [TARGET_LOAD     ]I:  Target endpoint 'SQL Server' is using provider syntax 'SQLServer'  (provider_syntax_manager.c:900),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,"2025-09-30T11:59:05 [SOURCE_CAPTURE  ]I:  Going to connect to ODBC connection string: DRIVER={ODBC Driver 17 for SQL Server};SERVER=source-db.colw41khta5t.ap-northeast-1.rds.amazonaws.com,1433;DATABASE=test_db;Trusted_Connection=no;;  (sqlserver_endpoint_util.c:242)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [SOURCE_CAPTURE  ]I:  Source endpoint 'SQL Server' is using provider syntax 'SQLServer'  (provider_syntax_manager.c:894),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [SOURCE_CAPTURE  ]I:  NLS configuration sampled: Associated code page=932  (sqlserver_endpoint_imp.c:2426),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,"2025-09-30T11:59:05 [SOURCE_UNLOAD   ]I:  Going to connect to ODBC connection string: DRIVER={ODBC Driver 17 for SQL Server};SERVER=source-db.colw41khta5t.ap-northeast-1.rds.amazonaws.com,1433;DATABASE=test_db;Trusted_Connection=no;;  (sqlserver_endpoint_util.c:242)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [SOURCE_UNLOAD   ]I:  Source endpoint 'SQL Server' is using provider syntax 'SQLServer'  (provider_syntax_manager.c:894),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [SOURCE_UNLOAD   ]I:  NLS configuration sampled: Associated code page=932  (sqlserver_endpoint_imp.c:2426),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [TASK_MANAGER    ]I:  Starting component st_1_5SBTLOTFTVFQHL7MDMN5HV3SUU  (subtask.c:1449),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [TASK_MANAGER    ]I:  Starting component st_1_NX3KDSKKNFBG5JPVZEQVSLN3II  (subtask.c:1449),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,"2025-09-30T11:59:05 [TARGET_LOAD     ]I:  No records received to load or apply on target , waiting for data from upstream  (streamcomponent.c:2013)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,"2025-09-30T11:59:05 [TABLES_MANAGER  ]I:  Next table to load 'dbo'.'user' ID = 1, order = 0  (tasktablesmanager.c:1918)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [TASK_MANAGER    ]I:  Start loading table 'dbo'.'user' (Id = 1) by subtask 1. Start load timestamp 000640037A8CBB2D  (replicationtask_util.c:755),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [SOURCE_UNLOAD   ]I:  Sent unloaded record 1 to internal queue  (streamcomponent.c:3015),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [SOURCE_UNLOAD   ]I:  Calculated batch used for UNLOAD size is 1000 rows per fetch.  (sqlserver_endpoint_unload.c:222),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [SOURCE_UNLOAD   ]I:  Unload finished for table 'dbo'.'user' (Id = 1). 3 rows sent.  (streamcomponent.c:3875),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [TARGET_LOAD     ]I:  Target starts loading table 'dbo'.'user'.  (sqlserver_endpoint_imp.c:4229),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [TARGET_LOAD     ]I:  Load finished for table 'dbo'.'user' (Id = 1). 3 rows received. 0 rows skipped. Volume transferred 1344.  (streamcomponent.c:4168),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [PERFORMANCE     ]I:  End load handler time for dbo.user = 3575 microseconds  (endpointshell.c:3062),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [PERFORMANCE     ]I:  Total load time for dbo.user = 5209 microseconds  (endpointshell.c:3064),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [TASK_MANAGER    ]I:  Loading finished for table 'dbo'.'user' (Id = 1) by subtask 1. 3 rows affected. Time taken: 20009 micro seconds  (replicationtask.c:2958),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [TASK_MANAGER    ]I:  All tables are loaded. Full load only task is stopped  (replicationtask.c:4383),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,2025-09-30T11:59:05 [TASK_MANAGER    ]I:  Subtask #1 ended  (replicationtask_util.c:595),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,"2025-09-30T11:59:05 [TASK_MANAGER    ]I:  Task - serv-res-id-1759233328225-uiwj is in STOPPED state, updating starting status to AR_NOT_APPLICABLE  (repository.c:5483)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:05.000,"2025-09-30T11:59:05 [TASK_MANAGER    ]I:  Updated Task, serv-res-id-1759233328225-uiwj, info with TaskState - 0  (replicationtask.c:4543)",dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:13.000,2025-09-30T11:59:13 [TASK_MANAGER    ]I:  Task management thread terminated  (replicationtask.c:4623),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:33.000,2025-09-30T11:59:33 [AT_GLOBAL       ]I:  Closing log file at Tue Sep 30 11:59:33 2025  (at_logger.c:2975),dms-serverless-serv-res-id-1759233328225-uiwj
2025-09-30 11:59:59.389,"{'replication_state':'running', 'message': 'Replication is now running in FULL_LOAD mode.'}",dms-serverless-replication-orchestrator-P2NOQMBK3BDJVNSQ3SCECW22HI

		

おわりに

DMS のタスクモードをサーバーレスにして RDS for SQL Server のデータ移行を試してみました。

プロビジョンドモードと比べるとレプリケーションインスタンスを作成する手間が省けるので設定は簡単になりつつ、コンピューティングリソースを作成する兼ね合いでタスク作成から完了まで若干待ち時間が長いという特徴もありました。

実は一部エラーでうまく進まないタイミングがあったりもしたので、CloudWatch Logs も確認して後で詳細を確認しようと思います。

本記事への質問やご要望については画面下部のお問い合わせ 「DevelopersIO について」 からご連絡ください。記事に関してお問い合わせいただけます。

参考

https://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Tasks.Creating.html?icmpid=docs_console_unmapped

https://repost.aws/questions/QUu1lpkXONTs6C15kdSibT2w/dms-serverless-replication-instance-can-t-be-started-reloaded-or-resumed

この記事をシェアする

FacebookHatena blogX

関連記事