Data Migration Serviceを触ってみた!

概要

           (レプリケーション用のインスタンスの料金はオンデマンドインスタンスよりもちょっと割高)
  • レプリケーション用のインスタンスは停止することができない(起動or削除のみ)
  • データベースの同じプラットフォーム間だけでなく、異なるプラットフォームに変えることも可能
           例)OracleOracle , Oracle → Aurora
  • 移行元、移行先のどちらかがAWS上にある必要があるが、他はオンプレミスでも、DB on EC2でも、RDSでもOK
  • 移行の種類は以下の3つから選択可能
       ①"migrate existing data" (既存データの一括ロード)
       ②"migrate and then replicate" (一括コピーした後に、継続的に差分レプリケーション)
       ③"replicate going forward" (差分レプリケーションのみ実行)
 
 
検証した環境

f:id:aym413:20160626190345p:plain

  • OracleOracleへ移行
  • ダミーデータは1000件(氏名、メールアドレス、生年月日等)
  • 移行の種類は上記①"migrate existing data"を選択
 
AWS DMS構築の流れ

AWS DMS用Subnet Groupの作成

f:id:aym413:20160626190346j:plain

f:id:aym413:20160626190347j:plain

 
  ↓RDS同様にAZをまたがる2つのSubnetが必要になります。

f:id:aym413:20160626190348j:plain

f:id:aym413:20160626183641j:image

 
AWS DMS用インスタンスの作成

f:id:aym413:20160626190350j:plain

f:id:aym413:20160626191923j:plain 

f:id:aym413:20160626190352j:plain

f:id:aym413:20160626190353j:plain

③移行元・移行先エンドポイント(接続情報)の作成
まずはSource Endpointから作成します。

f:id:aym413:20160626190354j:plain

 ↓接続テストを行って成功すればOKです。

f:id:aym413:20160626183656j:image

 
次はTarget Endpointを作成します。
↓こちらも接続テストを行って成功すればOKです。

f:id:aym413:20160626183653j:image

f:id:aym413:20160626190357j:plain

 
④タスクの作成
  ↓エンドポイントの選択や移行の種類、どのテーブルを移行するか等を設定

f:id:aym413:20160626183644j:image

 
⑤タスクの実行
 ↓しばらくするとStatusが「Load complete」になります

f:id:aym413:20160626192131j:plain

 
 ↓ CloudWatch Logsを見ると、1000件のデータロードが終わったことを確認できます。

f:id:aym413:20160626190400j:plain

 
検証結果

  • ダミーデータ1000件は問題なく移行できた
  • 文字コードも変わらずそのまま移行できた
  • 移行時間は1~2分程度
 
 
つまづいたところ

① 環境準備のところで…
  →環境変数文字コードを変更
AWS DMSのところで…
  • 指定したスキーマのテーブルが移行されない
  →AWS DMSで作成したエンドポイントで指定したスキーマが、タスクで使用されるデフォルトのスキーマになる
  →最初エンドポイントのスキーマで「system」等の管理者アカウントを指定したため、「ORACLE_OCM」がデフォルトスキーマとして登録された
  →エンドポイントのスキーマ設定で、移行用スキーマを指定すれば、問題なくテーブルが移行できた