AWS Database Migration Service(DMS)入門 その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」スキーマ上の各種制約の数を確認します。
「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用に変換後、スキーマ変換の検証までをやってみたいと思います。