この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
初めに
前回の続きとして、今日は移行タスクを作成します。
前回:AWS DMSを使ってみた⓵移行前の準備作業
https://cloud5.jp/dms-task-20220513/
⓶移行タスクの作成
Step1 サブネットグループ作成
レプリケーションインスタンスに使えるサブネットグループを作成します。
注意点としては、マルチAZに関係なく、サブネットのグループなので、二つ以上のサブネットを用意必要です。

Step2 レプリケーションインスタンス作成
レプリケーションインスタンスとRDS接続できるように、SGインバウンドルールにRDSを追加する。

さて、DMSの画面にお入りしましょう!
これから、RDSと同じVPC内にレプリケーションインスタンスを作成します。
インバウンドルールを追加したSGを選択する以外、全部デフォルトでいきます。



作成完了したら、ステータスが利用可能となります。

Step4 エンドポイント作成
移行の作業場であるレプリケーションインスタンスを作成したら、次はインスタンスとRDS接続できるようにエンドポイントを作成します。ソースとターゲットを両方作成する必要があります。
・ソースエンドポイント作成
ソースエンドポイントを選択して作成する。
RDSインスタンスの選択にソースRDSを選択すると、パスワード以外の接続情報が自動に入れてもらえます。

ここでパスワードをいればokです。

接続情報は暗号化されていますね、とりあえずデフォルトのキーを使います。

作成する前にテストできます!

作成完了したら、ステータスがアクティブになります。

・ターゲットエンドポイント作成
ターゲットエンドポイントを選択して作成する。
流れはソースと同じとなります。

おそらく検証だけで気づけることですが。
postgre初期のDB名は指定しない場合、コンソールから空白でDB名がないように見えますが、実際はpostgresで作成されています。
ここでデータベース名を空白にすると、作成はエラーになりますので、注意してください。

それで、エンドポイントの作成が完了となります。

Step5 全ロードの移行タスク作成
ようやくですが、移行のタスクに来ました。
ここで移行方式、移行ログ記録などを定義して移行を実行する場所です。
先ほど作成したレプリケーションインスタンス、エンドポイントを情報を入れて、移行タイプに全ロードの「既存のデータを移行する」を選択します。

検証有効化とCloudWatchログを有効化にチェックを入れる。

デーブルマッピングにルールを追加します。

Oracleはデフォルトで大文字でスキーマ作成されますが、PostgreSQLはデフォルトで小文字でスキーマ作成されます。
そのままで移行すると、大文字小文字の変換ができなくてエラーが発生する可能性があるので、事前に大文字小文字の変換ルールを作成することで回避できます。
以下の公式ドキュメントを参照してルールを作成する。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/dms-mapping-oracle-postgresql/

移行前評価を有効化する。

ここで事前作業で作成したバケットとロールを選択する。

移行前評価が有効の場合、手動でタスクを起動することになるので、スタートアップ設定に「後で手動で行う」を選択して、タスクを作成する。

準備完了のタスクを作成できました!

終わりに
ここまで読んでいただき、ありがとうございました。
また次回で、実際の移行をやりましょう!
次回:AWS DMSを使ってみた⓷データ移行
https://cloud5.jp/aws-dms-20220520/


