【新機能】Schema Conversion ToolからDMSレプリケーションタスクを操作できるようになりました
西澤です。Database Migration Service(DMS)の補助ツールとして利用できるSchema Conversion Tool(SCT)が、よりDMSと連携しやすくなったので新機能をご紹介します。
今回リリースされた新機能は、下記ページで確認できます。
- AWS Developer Forums: AWS Schema Conversion Tool now Converts Schema and Runs a Migration
- Release: AWS Database Migration Service on 2016-12-20 : Release Notes : Amazon Web Services
DMS、SCTの基本をおさらいしたい方は、Developers.IOの他の記事もぜひ合わせてご覧ください。
SCTからDMSタスクを作成してみた
今回の新機能を利用する方法を順を追って手順をご紹介します。
事前準備1:SCTインストール
当然ですが、ソースDB、ターゲットDBに接続可能なサーバまたは端末に、最新版のSchema Conversion Toolをインストールが必要です。手順は下記ページに詳しく記載されています。
今回は、VPC内に用意したWindowsサーバ内にSCTをインストールして試すことにしました。今回リリースされた機能の中でも便利な、SCTからのDMS Endpoint作成機能を利用する為には、DMSレプリケーションインスタンスと同じサブネット、Security Groupで設定をしておくと利用しやすいと思います。
執筆時点で試した最新は以下のバージョンでした。
事前準備2:DMSレプリケーションインスタンスの構築
SCTからDMSタスクを利用する為には、DMS環境に事前にレプリケーションインスタンスを用意しておく必要がありますのでご注意ください。
事前準備3:AWSプロファイルの保存
まずは、AWSプロファイルの保存機能を使って、DMSと連携するのに必要なアクセスキーを設定する必要があります。権限としては、基本的にはDMSを操作する権限があれば大丈夫かと思います。執筆時点のリリースでは、一時クレデンシャルは利用できないようです。
グローバル設定から利用するアクセスキー、シークレットアクセスキーを保存します。こちらでは一時クレデンシャルは利用できないようです。
プロジェクト設定から、保存したプロファイルを選択しておきましょう。
これで事前準備は完了です。
SCTからのDMSタスク作成
左のソースDBから移行対象のスキーマを右クリックから、Create DMS Task
を選択します。事前に設定したAWSプロファイルが適切に設定されていれば、設定ウィンドウが起動するはずです。
DMSタスクを作成する構築済のレプリケーションインスタンスをプルダウンから選択します。
ちなみにこの際、設定済のエンドポイントを利用することも可能ですが、Create New Endpoint
ボタンから、SCTで定義済のエンドポイント設定をそのまま取り込むことも可能です。SCTを導入しているネットワーク環境が、レプリケーションインスタンスを構築したネットワーク環境(サブネットやSecurity Group)に合わせておかないと正しく動作しないことがあると思いますので、ご注意ください。
ちなみに、SCTでマッピングルールを設定してあれば、それも合わせて反映してくれるようになっています。今回試したプロジェクトでは、スキーマ名やテーブル名を小文字に変換するルールを設定していたので、show JSON
をクリックすると、ルールが反映されていることが確認できました。
Createボタンをクリックすると、作成済のレプリケーションタスク一覧画面に遷移します。こちらには、AWS Management Console等から作成したタスクも含めて表示されました。こちらの画面には、Viewアイコンから、"Data Migration View"を選択すればいつでも遷移することができます。
作成したタスクを"Start"してみます。
"Refresh"で最新情報を表示することができます。無事に完了を確認できました。
"Show Log"から、CloudWatch Logsに記録されたレプリケーションタスクのログも参照することが可能です。
まとめ
下記公式ドキュメントで紹介されているOracleからAuroraへデータ移行をする際など、スキーマ移行をSCTを使ってから、DMSでデータ移行を行いたいようなケースでは、同じインターフェースからそのままDMSによるデータ移行も操作することができるのでとても便利に使えそうです。ぜひ試してみてください。
どこかの誰かのお役に立てば嬉しいです。