【新機能】Schema Conversion ToolからDMSレプリケーションタスクを操作できるようになりました

西澤です。Database Migration Service(DMS)の補助ツールとして利用できるSchema Conversion Tool(SCT)が、よりDMSと連携しやすくなったので新機能をご紹介します。

今回リリースされた新機能は、下記ページで確認できます。

DMS、SCTの基本をおさらいしたい方は、Developers.IOの他の記事もぜひ合わせてご覧ください。

SCTからDMSタスクを作成してみた

今回の新機能を利用する方法を順を追って手順をご紹介します。

事前準備1:SCTインストール

当然ですが、ソースDB、ターゲットDBに接続可能なサーバまたは端末に、最新版のSchema Conversion Toolをインストールが必要です。手順は下記ページに詳しく記載されています。

今回は、VPC内に用意したWindowsサーバ内にSCTをインストールして試すことにしました。今回リリースされた機能の中でも便利な、SCTからのDMS Endpoint作成機能を利用する為には、DMSレプリケーションインスタンスと同じサブネット、Security Groupで設定をしておくと利用しやすいと思います。

winver

執筆時点で試した最新は以下のバージョンでした。

sct_version

事前準備2:DMSレプリケーションインスタンスの構築

SCTからDMSタスクを利用する為には、DMS環境に事前にレプリケーションインスタンスを用意しておく必要がありますのでご注意ください。

事前準備3:AWSプロファイルの保存

まずは、AWSプロファイルの保存機能を使って、DMSと連携するのに必要なアクセスキーを設定する必要があります。権限としては、基本的にはDMSを操作する権限があれば大丈夫かと思います。執筆時点のリリースでは、一時クレデンシャルは利用できないようです。

グローバル設定から利用するアクセスキー、シークレットアクセスキーを保存します。こちらでは一時クレデンシャルは利用できないようです。

aws_profile_01

aws_profile_02

プロジェクト設定から、保存したプロファイルを選択しておきましょう。

aws_profile_03

これで事前準備は完了です。

SCTからのDMSタスク作成

左のソースDBから移行対象のスキーマを右クリックから、Create DMS Taskを選択します。事前に設定したAWSプロファイルが適切に設定されていれば、設定ウィンドウが起動するはずです。

create_dms_task_01

DMSタスクを作成する構築済のレプリケーションインスタンスをプルダウンから選択します。

create_dms_task_02

ちなみにこの際、設定済のエンドポイントを利用することも可能ですが、Create New Endpointボタンから、SCTで定義済のエンドポイント設定をそのまま取り込むことも可能です。SCTを導入しているネットワーク環境が、レプリケーションインスタンスを構築したネットワーク環境(サブネットやSecurity Group)に合わせておかないと正しく動作しないことがあると思いますので、ご注意ください。

create_dms_task_03

ちなみに、SCTでマッピングルールを設定してあれば、それも合わせて反映してくれるようになっています。今回試したプロジェクトでは、スキーマ名やテーブル名を小文字に変換するルールを設定していたので、show JSONをクリックすると、ルールが反映されていることが確認できました。

create_dms_task_04

create_dms_task_05

Createボタンをクリックすると、作成済のレプリケーションタスク一覧画面に遷移します。こちらには、AWS Management Console等から作成したタスクも含めて表示されました。こちらの画面には、Viewアイコンから、"Data Migration View"を選択すればいつでも遷移することができます。

create_dms_task_07

作成したタスクを"Start"してみます。

create_dms_task_06

"Refresh"で最新情報を表示することができます。無事に完了を確認できました。

create_dms_task_08

"Show Log"から、CloudWatch Logsに記録されたレプリケーションタスクのログも参照することが可能です。

create_dms_task_09

まとめ

下記公式ドキュメントで紹介されているOracleからAuroraへデータ移行をする際など、スキーマ移行をSCTを使ってから、DMSでデータ移行を行いたいようなケースでは、同じインターフェースからそのままDMSによるデータ移行も操作することができるのでとても便利に使えそうです。ぜひ試してみてください。

どこかの誰かのお役に立てば嬉しいです。