Amazon Web Services ブログ
AWS Database Migration Service (DMS) を活用して VMware Cloud on AWS 上の MySQL を Amazon Aurora に移行する
お客様がオンプレミス VMware 仮想環境のアプリケーションをリファクタリングせずに移行するために VMware Cloud on AWS を選択されることがますます増えてきました。将来的なクラウドネイティブ化を目指す場合にも、最初のステップとして VMware Cloud on AWS が選ばれるケースも増えてきています。今回は次のステップとして、VMware Cloud on AWS を起点としたデータベースの移行手法についてご紹介します。
AWS Database Migration Service (DMS) を使用して、VMware Cloud on AWS で実行されているデータベースを Amazon Relational Database Service (Amazon RDS) や Amazon Aurora に移行することもできます。ビジネスへの影響やリスクを最小限に抑えると同時に VMware Cloud on AWS 上のアプリケーションを維持しながら、モダナイゼーションに向けたクラウドジャーニーの次のステップへ進むことができます。
それでは、VMware Cloud on AWS 上で実行されているデータベースを AWS DMS を活用して Amazon Aurora に移行する方法について説明していきます。
AWS Database Migraiton Service (DMS) について
AWS DMS はこれまでに最小限のダウンタイムで 100 万以上のデータベースを安全に移行してきており、世界中のお客様からご利用いただいています。
図 1. AWS Database Migraiton Service (DMS) の概要
VMware Cloud on AWS と AWS DMS
この投稿では、AWS DMS を使用して、VMware Cloud on AWS で実行されている MySQL を Amazon Aurora に移行する方法を紹介します。Amazon Aurora は、大規模環境でのパフォーマンスと高可用性を提供する最新のリレーショナルデータベースサービスであり、オープンソースの MySQL および PostgreSQL 互換エディションを提供し、サーバーレスならびに機械学習 (Machine Learning) 駆動型アプリケーションを構築するためのさまざまな開発者ツールをサポートしています。
アーキテクチャ概要
次のアーキテクチャの概要図は、AWS DMS が VMware Cloud on AWS 上で実行されている MySQL データベース仮想マシン (DB VM) を Elastic Network Interface (ENI) を介して Connected VPC にデプロイされた Amazon Aurora に移行する方法を示しています。
図 2. AWS DMS を活用した VMware Cloud on AWS 上のデータベース移行の概要図
VMware Cloud on AWS と Connected VPC 間の通信は ENI を介して内部的に接続されているため、上図の通信はすべて AWS クラウド内にプライベートに保たれていることにもご留意ください。
前提条件
一般的な前提条件
- WordPress アプリケーション仮想マシン (App VM) と MySQL データベース仮想マシン (DB VM) は、VMware Cloud on AWS 上で稼働しています。この例では、以下の環境を使用しました。
* VMware Cloud on AWS: SDDC バージョン 1.22
* App VM: Cent OS Linux 7、WordPress 6.2
* DB VM: Cent OS Linux 7、MySQL 8.0
* AWS DMS: Engine version 3.4.7
* Amazon Aurora: version 3 compatible with MySQL 8.0 - VMware Cloud on AWS と Connected VPC との間で必要なすべての通信は確立しており、Connected VPC のセキュリティグループおよび VMware Cloud on AWS のファイアウォールルール で許可している。
- AWS DMS の AWS Identity and Access Management (IAM) ポリシーで必要なアクションはすべて許可されている。AWS DMS のアクセス要件の詳細については、AWS Database Migration Service のセキュリティを参照ください。
- Amazon Aurora は MySQL へのバージョン互換性があるエディションである。
- Amazon Aurora と MySQL の両方が AWS DMS でサポートされているバージョンである。
データベースの詳細
ターゲットのデータベース
図 3. Connected VPC 内で稼働している Amazon Aurora (MySQL 互換)
ソースのデータベース
- MySQL を WordPress のデータベースとして設定済みです。
図 4. WordPress のデータベースとして設定されている データベース仮想マシン (MySQL)
セットアップ手順
この例では、次のセクションにわたって AWS DMS の設定について説明します。
1. Connected VPC にレプリケーションインスタンスを作成
2. ソースとターゲットのエンドポイントの作成
3. データベース移行タスクを作成して実行
4. WordPress の DB アクセスを MySQL から Amazon Aurora に切り替え、アプリケーション側の接続テストを実施
ステップ 1. AWS DMS レプリケーションインスタンスを作成
AWS DMS は、 VPC 内の Amazon EC2 インスタンスとして AWS DMS レプリケーションインスタンスを作成します。このレプリケーションインスタンスを使用し、データベースを移行します。もし高可用性とフェイルオーバーサポートが必要な場合は、マルチ AZ オプションを選択することもできます。
この例では、シングル AZ オプションを選択し、Connected VPC にレプリケーションインスタンスをデプロイしました。
Connected VPC に AWS DMS レプリケーションインスタンスを作成
Connected VPC にレプリケーションインスタンスを作成します。
図 5. AWS DMS レプリケーションインスタンスを作成
パラメータチェック
要件と環境に応じてパラメータを選択できます。
図 6. AWS DMS レプリケーションインスタンスの設定
ステップ 2. ソースとターゲットのエンドポイントの作成
エンドポイントの作成
ソース (移行元: MySQL 側) とターゲット (移行先: Amazon Aurora 側) の両方にエンドポイントを作成します。
エンドポイントは、データストアに関する接続、データストアのタイプ、およびロケーションの情報を提供します。AWS DMS はこの情報を使用してデータストアに接続し、ソースエンドポイントからターゲットエンドポイントにデータを移行します。またエンドポイントに対して追加で接続オプションも設定できます。
図 7. AWS DMS のエンドポイント
ソースエンドポイントの作成
まず、ソースエンドポイントを作成します。VMware Cloud on AWS 上で稼働している DB VM (MySQL) のアクセス情報を登録します。
図 8. AWS DMS のソースエンドポイント
ターゲットエンドポイントの作成
次に、ターゲットエンドポイントを作成します。Connected VPC 上で稼働する Amazon Aurora へのアクセス情報を登録します。
図 9. AWS DMS のターゲットエンドポイント
(オプション) ターゲットエンドポイント接続テスト
ターゲットエンドポイントを作成する前に、レプリケーションインスタンスへの接続をテストすることが可能です。
図 10. AWS DMS のターゲットエンドポイントへの接続テスト
これで、AWS DMS での移行前のセットアップは完了です。
ステップ 3. データベース移行タスクを作成して実行する
AWS DMS タスクはすべての作業が行われる場所です。移行や、ロギング要件、制御テーブルデータ、エラー処理などの特別な処理に使用するテーブル (またはビュー) とデータベースを指定します。
タスクは次の 3 つの主要なフェーズで構成されます。
* 既存データの移行 (フルロード)
* キャッシュされた変更の適用
* 継続的なレプリケーション (変更データキャプチャ)
AWS DMS 移行タスクがデータを移行する方法の詳細と概要については、AWS DMS の概要 を参照してください。
既存データの移行
この例では、VMware Cloud on AWS 上の MySQL から Connected VPC 内の Amazon Aurora にデータを移行するために「Migration of existing data」を選択しています。
図 11. タスクの作成
Amazon Aurora に移行するために MySQL データベース「wordpress」を選択しています。
図 12. WordPress のデータベース指定
実行状況は「Status」で確認できます。
図 13. タスクのステータス確認
ステータスが 「Load complete 」となっています。これで、MySQL 内のデータが Amazon Aurora へ移行されたことが確認できました。
次に、WordPress アプリケーション側からもデータ移行が成功していることを確認します。
ステップ 4. WordPress のデータベースアクセスを MySQL から Amazon Aurora に切り替えてテスト
データベースを移行したら、WordPress アプリケーションでテストしてみます。
「wp-config.php」設定ファイルを更新して WordPress (App VM) の DB アクセスを切り替えると、WordPress は Amazon Aurora にアクセスします。
図 14. WordPress の参照先データベースの変更
マイグレーション完了の確認
下図の通り、すべての WordPress のコンテンツが正常に移行されたことがわかりました。
図 15. WordPress のコンテンツ確認
その他の考慮事項
- 本番環境で AWS DMS を使用して同様のデータベース移行を行う場合は、以下のセキュリティガイドラインに従ってください。
* Amazon Aurora のセキュリティ
* AWS Database Migration Service のセキュリティ
* VMware Cloud on AWS のネットワークとセキュリティについて - 各サービス利用コストも考慮する必要があります。この例では、AWS DMS をオンデマンドの Amazon EC2 インスタンスで使用してレプリケーションインスタンスとして実行したため、オンデマンド使用分が課金されます。一方、VMware Cloud on AWS SDDC と Connected VPC 間のデータ転送では、SDDC と送信先の Amazon EC2 インスタンスは同じ AWS アベイラビリティーゾーン (AZ) にあるために通信コストは発生しません。利用コストの詳細については、AWS Database Migration Service の料金をご参照ください。
- Connected VPC ではなく他の VPC をデータベースの移行先として使用する場合は、ネットワーク接続に AWS Transit Gateway (TGW) や VMware Transit Connect (VTGW) を活用できます。
- AWS DMS は、一般的なデータストアの多くをソース (移行元) として使用できます。Amazon EC2 インスタンスで実行されるセルフマネージドのデータベースでも、オンプレミスのデータベースでもかまいません。また、Amazon RDS や Amazon S3 などの AWS サービス上のデータストアをソースにすることもできます。対象となるデータストアの包括的なリストについては、AWS DMS のソースをご参考ください。AWS DMS の詳細な前提条件については、AWS Database Migration Service の前提条件をご参照ください。
まとめ
一般的にデータベース移行は容易ではありませんが、AWS DMS を活用することでそのハードルを大幅に下げることができます。この記事をきっかけに、VMware Cloud on AWS を起点としたさらなるモダナイゼーションを検討していただけますと幸いです。
AWS DMS および VMware Cloud on AWS には多くの参考資料があります。以下に概要を示しますので、ぜひチェックしてみてください。
その他のリソース
- VMware Cloud on AWS のデータウェアハウスとビジネスインテリジェンス
- VMware Cloud on AWS のアカウントと VPC に関する考慮事項
- VMware Cloud on AWS ハイブリッドネットワークデザインパターン
- AWS SCT と AWS DMS を使用して MySQL から Amazon Aurora に移行する方法