AWS Database Migration Service(AWS DMS)を使ったデータ移行(後編)

IIJ クラウド本部 クラウドソリューション部 ソリューション1課

中井 英臣

金融システムの運用保守や情報システム部門のIT支援などを経て、現在は顧客へのAWS導入・移行の提案、構築などを担当。社内向けの勉強会、技術支援などを実施し、AWSエンジニアの育成にも挑戦中。好きな食べ物はカレーと餃子。

執筆・監修者ページ/掲載記事:6件

前編から読む

こんにちは。エンジニアの中井です。

前編に続き、本記事では、AWS Database Migration Service(AWS DMS)についてご紹介します。

前編では、AWS DMSの簡単な説明とレプリケーションインスタンスの作成までを実施しました。
後編では、エンドポイントの作成と実際のデータ移行をご紹介します。

目次
  1. AWS Database Migration Service(AWS DMS)のセットアップ(続き)
  2. まとめ

AWS Database Migration Service(AWS DMS)のセットアップ(続き)

3.エンドポイントの作成(ソースエンドポイント)

次に、エンドポイントを作成します。

まずは移行元のエンドポイントを作成します。

  • エンドポイントタイプ:ソースエンドポイント
  • ソースエンジン:MySQL
  • エンドポイントデータベースへのアクセス:アクセス情報を手動で提供する。
    サーバ名(今回は対象サーバのグローバルIP)、ポート、ユーザ名、パスワードは移行元のデータベースの値を入力します

エンドポイント接続のテストで、ステータスが「successful」になれば成功です。
エンドポイントの作成をクリックし、少し待つと完了します。

テストが成功しない場合は、以下を確認します。検証中、何度かハマりました……。

  • レプリケーションインスタンスはパブリックサブネットに作成されているか
  • レプリケーションインスタンスのセキュリティグループでアウトバウンドルールが許可されているか
  • 接続しようとしているサーバのFW(AWSの場合はセキュリティグループ)で、レプリケーションインスタンスからのアクセスが許可されているか
    • (これはなかなか気付けなかったんですが)
      マルチAZで構築した場合、許可するグローバルIPは、DMSコンソールに表示されているものだけでなく、スタンバイインスタンス用のグローバルIPも許可しましょう。
      ネットワークインターフェイスのコンソールから、説明欄に「DMSNetworkInterface」と書かれているものがDMS用のものです

4.エンドポイントの作成(ターゲットエンドポイント)

次に、ターゲットエンドポイントを作成します。

  • エンドポイントタイプ:ソースエンドポイント
  • RDS DBインスタンスの選択:チェックします
  • エンドポイント識別子、ターゲットエンジン:自動的にRDSの情報が選択されます
  • エンドポイントデータベースへのアクセス:アクセス情報を手動で提供する。
    サーバ名、ポート、ユーザ名、は自動的にRDSの情報が選択されます。
    パスワードはRDS作成時に指定したものを入力します

エンドポイント接続のテストで、ステータスが「successful」になれば成功です。
エンドポイントの作成をクリックし、少し待つと完了します。

ターゲットエンドポイントについては、今回はレプリケーションインスタンスと同じVPCにある想定ですので、RDSのセキュリティグループで、レプリケーションインスタンスのプライベートIPが許可されていればテストは成功すると思います。

5.データベース移行タスクの作成

次に、データベース移行タスクを作成します。

データベース移行タスクが、実際のデータ移行を行う設定となります。

タスク設定の続きです。

  • ターゲットテーブル作成モード:ターゲット上のテーブルを削除。
    このモードについては、さきほどの移行タイプによって、推奨されるモードが異なります
    タスクの作成 – AWS Database Migration Service
  • 検証の有効化:チェックします
  • CloudWatch ログを有効化:チェックします

その他、デフォルトのままとします。

テーブルマッピングの設定です。移行元のMySQLには、「mydb」というデータベースを作成してあります。

  • スキーマ名:mydb
  • テーブル名:%(ワイルドカードです)

残りの設定は、デフォルトのままとします。

タスクの作成をクリックすると、データ移行が始まります。

……と思ったら、開始されなかったので、手動で開始します。

6.確認

移行データ次第ですが、少し待つとタスクが完了します。

テーブルごとのロード行数なども確認できます。

CloudWatch Logsにも、詳細なログが記録されます。

まとめ

本記事ではAWS Database Migration Service(AWS DMS)を実際に利用し、オンプレミスに見立てたEC2からRDSへのデータ移行の手順をご紹介しました。

今回は移行元・先が同種類のデータベースエンジンにてデータ移行を行いました。
従来、MySQL同士であればmysqldumpを使ったデータ移行を行うパターンが多かったかと思います。

AWS DMSを利用すると本記事の通り、対象データベースに直接ログインすることなく、AWSのコンソールにてデータ移行作業を行えます。
データ移行の設定についても、DBAでなくとも設定できる内容でしたので、簡単にデータ移行を行えました。

ただ、やはり、事前にVPCやRDSなどはAWS側へ作成する必要がありますし、データベースを使うサーバも何らかの手段で作成/移行する必要があります。
あくまでもシステム全体を移行する中で、1つのパーツとして利用するサービスであると感じました。

<参考リンク>
AWS Database Migration Service とは – AWS Database Migration Service
20210216 AWS Black Belt Online Seminar AWS Database Migration Service