はじめに
AWS Database Migration Service(以下、DMS)の設定方法や挙動を確認する目的で、Db2にあるデータをS3に連携できるかどうかを試した記録です。
前提
実施環境として、データソースとなるDb2はCloud Pak for Data上にデプロイされたものを使用しました。
Cloud Pak for Data:Version 4.7
Openshift:Version 4.12
Cloud:IBM Cloud
(外部公開用のPublic Load Balancer IPを使用して接続)
こちらを見ると2024年3月1日現在DMSがデータソースとして対応しているDb2のバージョンが確認できます。
- IBM DB 2 for Linux、UNIX、および Windows (Db2 LUW)
- バージョン 9.7、すべてのフィックスパック
- バージョン 10.1、すべてのフィックスパック
- バージョン 10.5、フィックスパック 5 を除くすべてのフィックスパック
- バージョン 11.1、すべてのフィックスパック
- バージョン 11.5 Mods (1~8)、フィックスパック 0 のみ
- IBM Db2 for z/OS
- バージョン 12
- Amazon RDS for IBM Db2 LUW
用意したDb2環境は上記の対応製品・バージョンに該当していないような気もしましたが、そこはあまりこだわらず試しています。
参考:DMSのAWS公式
ゴール
実施手順
- DMS Subnet Groupを作成する
- サブネットグループの作成を選択
- VPC、サブネットを選択
- レプリケーションインスタンスを作成する
- インスタンス、ストレージ、接続とセキュリティの設定を行う
- ソース側のDMSエンドポイントを作成する
- エンドポイントの作成を選択
- エンドポイントを設定
- 接続テストの実施
- ターゲット側のDMSエンドポイントを作成する
- エンドポイントの作成を選択
- エンドポイントを設定
- 接続テストの実施
- データベース移行タスクを作成する
- データ移行タスクを設定
- データ連携対象となるスキーマ名、テーブル名を指定
- 補足:対象となるテーブルおよびレコード格納状況
- タスクの実行(ここでは前述の移行タスクの設定によりタスク作成直後に自動実行される)
- 断面データ(全量)の連携内容を確認する
- ターゲットとなるS3の確認
- S3にオブジェクトが配置されたことの確認
- オブジェクトの中身の確認
- ターゲットとなるS3の確認
- 更新差分データの連携内容を確認する
- INSERT
- SQL実行
- S3にオブジェクトが配置されたことの確認
- オブジェクトの中身の確認
- UPDATE
- SQL実行
- S3にオブジェクトが配置されたことの確認
- オブジェクトの中身の確認
- DELETE
- SQL実行
- S3にオブジェクトが配置されたことの確認
- オブジェクトの中身の確認
- INSERT
やってみた
-
DMS Subnet Groupを作成する
-
レプリケーションインスタンスを作成する
-
ソース側のDMSエンドポイントを作成する
-
ターゲット側のDMSエンドポイントを作成する
-
データベース移行タスクを作成する
-
断面データ(全量)の連携内容を確認する
-
更新差分データの連携内容を確認する
ゴールとして設定していたことが確認できました。
注意点
データソースの種類によって様々な制約があるようなので利用前にこちらの公式情報を確認しておく必要があります。
以下はその一例です。
まとめ
DMSによってDb2にあるデータをS3に一括移行する方法と継続的レプリケーションをする方法を確認しました。
色々と制約はありそうですが、取っ掛かりとして参考になればと思います。