VMware Cloud on AWS 上の仮想マシンをMGNでAWSにプライベート移行してみた

こんにちは、AWS事業本部の荒平(@0Air)です。

VMware Cloud on AWS上の仮想マシンをAWS Application Migration Service (MGN) にて AWS にプライベート移行してみました。
ここでのプライベートとは、データの経路がインターネットを介さないことを指します。

オンプレミスの仮想マシンをAWSに持っていきたい、しかし保守期限が近付いていて一足飛びに移行できない、そういったユースケースでVMware Cloud on AWSは特に強みを発揮します。
ステップ1としてVMware Cloud on AWSに持ってきたが、次にAWSへリフトする方法を検討している際にはMGNは有力な選択の一つになると思います。

インターネットを経由する移行に関しては以下で取り上げられていますので、ご参考ください。

構成図

AWS Prescriptive Guidance の図をお借りしました。
左枠の"Corporate data center or any cloud"がVMware Cloud on AWSに当てはまります。

一般的な移行のためのアプリケーション移行サービスのネットワークアーキテクチャ

やってみる

1. VPC Endpointの作成

AWS MGNでは、プライベート移行の際に4つのVPC Endpointが必要になります。
参考記事にパラメータが記載されていますので、今回はこれを拝借します。

サービス名 タイプ Private DNS Name セキュリティグループ ルートテーブル
com.amazonaws.{AWS-Region}.mgn Interface 有効化 ソースサーバー(AWS Replication Agent)およびレプリケーションサーバーからのHTTPS 443を許可 対象外
com.amazonaws.{AWS-Region}.ec2 Interface 有効化 レプリケーションサーバーからのHTTPS 443を許可 対象外
com.amazonaws.{AWS-Region}.s3 Interface 対象外(S3のInterface型VPCエンドポイントはPrivate DNS Nameをサポートしていないため) ソースサーバー(AWS Replication Agent)からのHTTPS 443を許可 対象外
com.amazonaws.{AWS-Region}.s3 Gateway 対象外 対象外 レプリケーションサーバーを起動させるサブネットを指定

CloudShellでこれらを作成します。
事前に用意が必要なコンポーネントとして、以下を準備しておき、コマンドを置き換えます。

  • エンドポイントを配置するサブネット
  • インターフェイス型エンドポイントに紐づけるセキュリティグループ(仮想マシンのIPアドレス許可が必要)
  • ゲートウェイ型エンドポイントに紐づけるルートテーブル(レプリケーションサーバが配置されるサブネットのルートテーブル)
# MGNのVPC Endpoint
aws ec2 create-vpc-endpoint --vpc-endpoint-type Interface --service-name com.amazonaws.${AWS_REGION}.mgn --subnet-ids <サブネットID> --security-group-ids <セキュリティグループID> --vpc-id <VPC ID> --private-dns-enabled

# EC2のVPC Endpoint
aws ec2 create-vpc-endpoint --vpc-endpoint-type Interface --service-name com.amazonaws.${AWS_REGION}.ec2 --subnet-ids <サブネットID> --security-group-ids <セキュリティグループID> --vpc-id <VPC ID> --private-dns-enabled

# S3のVPC Endpoint(Gateway)
aws ec2 create-vpc-endpoint --vpc-endpoint-type Gateway --service-name com.amazonaws.${AWS_REGION}.s3 --route-table-ids <ルートテーブルID> --vpc-id <VPC ID>

# S3のVPC Endpoint(Interface)
aws ec2 create-vpc-endpoint --vpc-endpoint-type Interface --service-name com.amazonaws.${AWS_REGION}.s3 --subnet-ids <サブネットID> --security-group-ids <セキュリティグループID> --vpc-id <VPC ID> --private-dns-enabled

なお、S3のInterface型VPC Endpointを作成する前に、Gateway型VPC Endpointを作成してください。

ec2, mgn, s3のVPC Endpointを合計4つ作成できていれば、準備完了です。

2. コンピュートゲートウェイの設定変更

VMware Cloud on AWS上の仮想マシンからConnected VPCに設置したVPC Endpointまでの経路を確保します。

ポート443(S3), 1500(Data Transfer)を開放する必要があります。
まず、NSXコンソールにてサービスエントリを作成します(ポートを任意として絞らない場合はスキップ可)

サービスエントリに443, 1500番ポートの設定を追加して「適用」および「保存」をクリックします。

CGWの設定を追加します。
送信元として移行する仮想マシンが含まれるグループ、宛先としてVPC EndpointのIPアドレスが含まれるグループ(Connected VPC Prefixなど)、サービスとして先ほど追加したエントリを指定します。
また、インターフェイスは、Connected VPCの場合、VPC Interfaceを利用し、外部VPCの場合はIntranet Interfaceを利用します。

追加したら、「公開」にて保存します。

外部VPCの場合は以下のようになります。

3. AWS MGNの設定変更

データ経路がプライベートになるよう設定します。

AWS MGNの「レプリケーションテンプレート」画面に移動し、「編集」をクリックします。

「データのルーティングとスロットリング」設定にて、「データレプリケーションにプライベートIPを使用 (VPN、DirectConnect、VPCピア接続など)」を選択します。

4. 仮想マシンにReplication Agentをインストール

仮想マシンにReplication Agentを配置します。手元のPCに落としてファイル転送するか、wgetで取得します。
コマンドのAWS_REGION部はご利用のリージョンに置き換えて使ってください。

# Linux OSの場合
sudo wget -O ./aws-replication-installer-init https://aws-application-migration-service-us-east-1.s3.{AWS_REGION}.amazonaws.com/latest/linux/aws-replication-installer-init

# Windows OSの場合
wget -O ./AwsReplicationWindowsInstaller.exe https://aws-application-migration-service-us-east-1.s3.{AWS_REGION}.amazonaws.com/latest/windows/AwsReplicationWindowsInstaller.exe

コマンドがセキュリティ製品によりブロックされる場合があるため、ブラウザから取得することも可能です。(特にWindows)

Replication Agentを用意したら、インストールコマンドを入力します。

# Linux OSの場合
sudo ./aws-replication-installer-init --region {AWS_REGION} --aws-access-key-id AKIAXXXXXXXXXXXXXXXX --aws-secret-access-key xxxxxxxxxxxxxxxxxxxxxx --s3-endpoint vpce-xxxxxxxxxxxxxxxxx-xxxxx.s3.us-east-1.vpce.amazonaws.com --endpoint vpce-xxxxxxxxxxxxxxxxx-xxxxx.mgn.us-east-1.vpce.amazonaws.com" --no-prompt

# Windows OSの場合
./AwsReplicationWindowsInstaller.exe --region {AWS_REGION} --aws-access-key-id AKIAXXXXXXXXXXXXXXXX --aws-secret-access-key xxxxxxxxxxxxxxxxxxxxxx --s3-endpoint vpce-xxxxxxxxxxxxxxxxx-xxxxx.s3.us-east-1.vpce.amazonaws.com --endpoint vpce-xxxxxxxxxxxxxxxxx-xxxxx.mgn.us-east-1.vpce.amazonaws.com

パラメータなどはインストレーションガイドを御覧ください。

実際のインストール画面(Windows Server 2022)です。
The AWS Replication Agent was successfully installed.と表示されれば、レプリケーションエージェントのインストールは成功です。

初回同期が開始されれば、移行の準備は完了です。

おわりに

VMware Cloud on AWSからAWS MGNを使って、仮想マシンをプライベート移行してみました。
準備にやや時間が掛かりますが、一度諸設定を整えてしまうと複数台でも一気に移行できるのが特徴です。

移行の際に実データはインターネットを介さないこと、と要件に記載されていることはしばしばあるため、この方法を利用するシーンがあるのではないでしょうか。

このエントリが誰かの助けになれば幸いです。

それでは、AWS事業本部 コンサルティング部の荒平(@0Air)がお送りしました!

参考

Qiitaにて、先駆けて検証されている方がいらっしゃいました。