3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2023で記事投稿!

AWS DMS で VMware Cloud on AWS 上の MySQL を Amazon Aurora に移行してみた

Last updated at Posted at 2023-07-01

1. はじめに

AWSへのデータベース移行といえば AWS Database Migration Service (DMS)、と多くの方が思い浮かべるのではないでしょうか。

オンプレミス環境、あるいはクラウド環境上のデータベースおよび分析ワークロードを安全かつお手軽に移行できるサービスとして非常に使いやすい移行ツールかと思います。

AWS 公式サイト曰く、100万以上のデータベースシステムが AWS DMS で移行されているとのこと。

AWS DMS の数あるユースケースのひとつとして、VMware Cloud on AWS 上で稼働する MySQL データベースから Amazon Aurora (MySQL互換)への移行を試してみたので備忘録としてまとめてみます。

同種データベース間の移行なので実際のMySQL to Amazon Aurora移行では別方式が採用される場合もあると思いますが、今回は基礎編ということでご参考いただければ幸いです。

image.png

より応用的なユースケースについては次のAWS公式ブログもご参考ください。
AWS DMSを活用してVMware Cloud on AWS上で稼働するPostgreSQLのデータを Amazon Redshift に移行し、Amazon QuickSight でデータ分析するというユースケースが紹介されています。

2. 今回の構成

image.png

VMware Cloud on AWS 上で稼働させている MySQL(DB VM)を、AWS DMSでAmazon Aurora (MySQL互換)に移行します。データ移行の成否はWordPress (App VM)で確認します。

VMware Cloud on AWSとConnected VPC間の通信はすべてElastic Network Interface (ENI)経由で内部接続させているため、プライベートアクセスとなっています。

ざっくりとしたイメージとしては、VMware Cloud on AWSを「オンプレミスVMware仮想環境」のように扱って、Amazon EC2に移行していると想像いただければと思います。

3. やってみた

ポイントとなるステップに絞って手順をご紹介します。
今回はSchema Conversion Tool (SCT)を利用しないので、AWS DMS の Replication Instance、Source/Target Endpointの作成さえすれば完了となり、手順自体は非常にシンプルです。

適宜AWS 公式ガイドおよびハンズオンガイドもご参照ください。

前提条件

  • VMware Cloud on AWS 上で WordPress と MySQL がそれぞれ App VM、DB VM として稼働している
    image.png

  • WordPress の データベースとして、MySQL がすでにセットアップされている

image.png

  • Connected VPC 内に Amazon Aurora (MySQL)互換が稼働している

image.png

image.png

  • VMware Cloud on AWS と Connected VPC 間で必要な通信はすべてアクセス許可されている

私の環境では両方向の通信はすべて許可するよう、VMware Cloud on AWSのFirewall Rule、Connected VPCのSecurity Groupを設定しています。
またシンプル化のため Security Groupはデフォルトの1つだけを利用しています。

  • MySQLバージョンおよびAmazon Auroraバージョンはそれぞれ互換性のあるバージョンであり、またAWS DMSのサポート対象バージョンである

私の環境ではMySQLバージョン8.0.32を利用していたため、最新Amazon Aurora MySQLバージョンでも検証時点では未だ正式に互換性対応がされていなかったのですが、今回は検証なのでOKということにします。動作確認はできました。

セットアップ手順

Replication Instance の作成

image.png

Connected VPC 内に Replicaiton Instance を作成します。検証なので Single-AZ としています。
image.png

Endpoint の作成

Source (MySQL側) と Target (Amazon Aurora側) の両方にEndpointを作成します。
image.png

Source Endpoint の作成

まずSource Endpointを作成します。 DB VM (MySQL)へのアクセス情報を登録します。
Replication Instanceは先ほどConnected VPC内に作成したものを選択します。

image.png

Connections が "successful" となっていれば作成成功です。
image.png

Target Endpoint の作成

続いてTarget EndPointを作成します。 Amazon Aurora へのアクセス情報を登録します。
同じくReplication Instanceは先ほどConnected VPC内に作成したものを選択します。

今回はEndpoint作成時にConnectionの確認(右下"successful")を確認しています。
image.png

これにてAWS DMSでの移行前セットアップは完了です。

Database migration task の作成、実行

次のようにDatabase migration taskを作成しました。
MySQL側のスキーマ"wordpress"を移行するよう設定しています。

image.png

image.png

image.png

image.png

実行状況は"Status"で確認できます。
image.png

これにてMySQLのデータはAmazon Auroraに移行できました。次はWordPressからデータの移行を確認します。

WordPress (App VM) のDBアクセスの切り替え

WordPress (App VM)がAmazon Auroraにアクセスするように"wp-config.php"の設定ファイルを更新します。

image.png

WordPressで事前に作成していた記事がすべて移行できました。(成功!)
image.png

4. さいごに

いかがでしたでしょうか。データベース移行はちょっとハードルが高いと思われがちなのですが、AWS DMSはそのプロセスのハードルを大きく下げることができます。二の足を踏みがちなデータベース移行ですが、やればできるかも・・!と少しでも勇気を持っていただければ幸いです。

AWS DMSには参考資料が非常に多くありましたので、以下にまとめておきます。ぜひあわせてご参考ください。

5. 参考資料

6. 関連記事

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?