AWS Database Migration Service(DMS)入門 その1(準備編)

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

技術課の柏尾です。

AWS Database Migration Service(DMS)が発表されてから随分経ちますが、自分はまだ使ったことが無かったので、下記のAWSのドキュメントで提供されているチュートリアルを利用して学習してみました。

Amazon RDS Oracle データベースの Amazon Aurora MySQL への移行


https://docs.aws.amazon.com/ja_jp/dms/latest/sbs/CHAP_RDSOracle2Aurora.html

※チュートリアルの所要時間は約 2 時間です。AWS リソースを使用してこれを完了するための推定コストは、約 5.00 USDです。

チュートリアルの内容

チュートリアルの内容は、

RDS(Oracle)→ DMS(レプリケーションインスタンス) → RDS(Aurora)

の移行になります。実際の案件では、ソース側(Oracle)がオンプレ側にあるパターンが多いと思いますが、本チュートリアルでも大体の流れはつかめるかと思います。



また、チュートリアル時の構成図については下記ページに記載があります。

https://docs.aws.amazon.com/ja_jp/dms/latest/sbs/CHAP_RDSOracle2Aurora.Architecture.html

事前準備

ステップ 2: 各種ツールをローカルPCにインストールする

https://docs.aws.amazon.com/ja_jp/dms/latest/sbs/CHAP_RDSOracle2Aurora.Steps.InstallSCT.html

を参照して、「SQL Workbench/J」「AWS スキーマ移行ツール(AWS Schema Conversion Tool)」「JDBC ドライバー」等をインストールしておきます。

AWS環境構築

構成図の環境は、チュートリアルで提供されているCloudFormationのテンプレートを利用してすぐに構築することが可能です。



CloudFormationの[テンプレートの選択] ページで、[Amazon S3 テンプレート URL の指定] を選択し、「https://dms-sbs.s3.amazonaws.com/Oracle_Aurora_RDS_For_DMSDemo.template」を入力します。


ステップ 1: CloudFormation テンプレートを使用して VPC で RDS インスタンスを起動する

https://docs.aws.amazon.com/ja_jp/dms/latest/sbs/CHAP_RDSOracle2Aurora.Steps.LaunchRDSwCloudFormation.html

パラメータ情報を入力します。
「スタックの名前」は何でも良いのですが、チュートリアルの通り「DMSdemo」と入力します。

「Client IP」の部分のデフォルト値は、すべての場所 (0.0.0.0/0) からのアクセスを許可するようになっているため、自分のローカルPCからRDSに接続する際のグローバルIP アドレスを CIDR (x.x.x.x/32)形式で指定します。

他はそのままでOKです。

確認し、問題なければ「作成」ボタンを押します。

スタックが作成中になります。

約20分ぐらいで完了しました。

スタックが作成されたら、DMSdemo スタックを選択し、「出力」タブを選択します。

JDBC 接続文字列「OracleJDBCConnectionString」「AuroraJDBCConnectionString」をメモしておきます。

移行元Oracleにサンプルスキーマを作成する

ステップ 3: Oracle DB インスタンスへの接続をテストしてサンプルスキーマを作成する

https://docs.aws.amazon.com/ja_jp/dms/latest/sbs/CHAP_RDSOracle2Aurora.Steps.ConnectOracle.html



「SQL Workbench/J」からRDS(Oracle)に接続します。

CloudFormationのスタックの出力の「OracleJDBCConnectionString」の値を接続先のURLに入力します。

接続時のパスワードが分からない場合はCloudFormationのtemplateファイルに記載があるのでそちらを確認してください。

AWSが提供しているSQLスクリプトをコピーして実行します。

https://dms-sbs.s3.amazonaws.com/Oracle-HR-Schema-Build.sql

SQLを実行し、「HR」スキーマ上の各種オブジェクトの数を確認します。

SQLを実行し、「HR」スキーマ上の各種制約の数を確認します。

SQLを実行し、テーブルの合計数と各テーブルの行数を確認します。

「Employees」テーブル「departments」テーブルにSQLを実行して、従業員が10人より多い部門を確認します。

ターゲットAuroraに接続する

同じく、「SQL Workbench/J」からRDS(Aurora)に接続します。

CloudFormationのスタックの出力の「AuroraJDBCConnectionString」の値を接続先のURLに入力します。

その他の手順は下記を参照してください。

ステップ 4: Aurora MySQL DB インスタンスへの接続をテストする

https://docs.aws.amazon.com/ja_jp/dms/latest/sbs/CHAP_RDSOracle2Aurora.Steps.ConnectAurora.html

まとめ

ここまでで、環境の準備が完了しました。



次回は「AWS スキーマ移行ツール(AWS Schema Conversion Tool)」を利用して、Oracleのスキーマを Aurora MySQL用に変換後、スキーマ変換の検証までをやってみたいと思います。

AWS運用自動化サービス「Cloud Automator」