【AWS移行】AWS Application Migration Serviceを使ってみた【MGN躓きポイント】

DX(デジタルトランスフォーメーション)を行う企業がオンプレからAWSへ乗り換える際に、サーバの移行が大きなハードルになります。

サーバの台数が多ければ多いほど労力がかかりますからね。

このような課題解決のためにAWSからサーバ移行のためのマイグレーションサービスが提供されています。

今回はこのマイグレーションサービスであるApplication Migration Serviceを使って、サーバの移行手順を理解してみます。

躓きポイントも多かったのでそれらも踏まえて解説。

Application Migration Serviceとは

AWS Application Migration Service は、ソースサーバーを物理、仮想、またはクラウドのインフラストラクチャから AWS でネイティブに実行するように自動的に変換することにより、AWS への移行を簡素化および迅速化します。

オンプレなどの環境からネットワークを経由してサーバのイメージをAWSに転送し、AWSへの移行を実現するサービスです。

MGNの仕組み

移行元のサーバにMGN用のエージェントをインストールすることから始まります。

エージェントはS3に保存されており、Application Migration Serviceの設定画面を進んでいけば表示されます。

このエージェントがサーバの情報や更新情報をチェックし、移行先のサーバへレプリケーションしてくれます。

MGNを使ってみよう

事前準備

まずは今回の構成をご紹介。

移行元となるサーバはバージニア北部リージョンに立てます。実際にはオンプレからの移行などのケースが多いかと思いますが、今回は動作の理解のためにAWSのリージョン間でサーバを移行します。もちろんAWSでのリージョン間でのマイグレーションも可能です。

移行先は普段使っているという仮定の東京リージョンのVPC内にします。

MGNの構成イメージ

まずは移行元となるECインスタンスをバージニア北部で起動します。ここで早速躓きポイントがありました。

EC2のAMI選択時にAmazon Linux 2023を選ぶと上手くいきませんでした。とりあえずAmazon Linux2を選択しておいてください。

原因は不明です。エラー内容などはのちほど。

サーバを立ち上げただけでは移行できているかわからないので、ファイルも準備しておきましょう。

移行元EC2の準備ができたらMGNの設定に進みます。東京リージョンに戻ってきましょう。

MGNの利用を開始するにはレプリケーションサーバの起動設定が必要になります。

本番環境とは異なるサブネットに立てる方がいいでしょう。

準備ができたらソースサーバを追加していきます。

この画面でソースサーバにインストールするエージェントなどの設定を行います。

1.OS選択 今回はLINUXを選択

2.レプリケーション対象とするディスクを選択 今回はすべて

3.MGNのエージェントが利用するIAMを設定します。横の「IAMユーザを作成」ボタンを押下すれば、適切なポリシーが付与されたIAMユーザが作成できます。

必要なポリシーは AWSApplicationMigrationAgentPolicy になります。

4.移行元サーバにエージェントをダウンロードするためのコマンド

S3にあるpythonファイルをダウンロードするものです。

wget -O ./aws-replication-installer-init.py https://aws-application-migration-service-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/latest/linux/aws-replication-installer-init.py

5.ダウンロードしてきたファイルを実行しレプリケーションを開始します。

sudo python3 aws-replication-installer-init.py --region ap-northeast-1 --aws-access-key-id IAMKEY --aws-secret-access-key IAMSECRET --no-prompt

IAMKEYとIAMSCRETの部分は3.で設定したものが自動で反映されているはずです。

移行先サブネットへのネットワーク設定

MGNと移行先サーバが通信するために、セキュリティグループへの追加設定が必要です。

レプリケーションサーバが起動するサブネットにTCPポート:1500を空ける必要があるので忘れずに。

移行元サーバへエージェントをインストール

移行元サーバで実行するべきコマンドが入手できたので、バージニア北部リージョンに戻りましてEC2に接続します。

まずは4.のコマンドでエージェントのダウンロード

次に5.のコマンドでエージェントのインストールとレプリケーションを開始します。

インストールが完了するとこのようなメッセージが表示されます。すべてFinishedになれば完了です。

Downloading AWS Replication Agent onto the source server... Finished
Installing AWS Replication Agent onto the source server... Finished
Syncing the source server with the Application Migration Service Console... Finished


ここまでで私が遭遇したエラーをご紹介

エラー:Failed to validate AWS credentials

IAMのアクセスキーIDなどが間違っていたためMGNエージェントが認証できなかった際のエラー

正しい認証情報を入力しましょう。

エラー:Error loading Python lib '/tmp/_MEIw6lza3/libpython3.8.so.1.0': dlopen: libcrypt.so.1: cannot open shared object file: No such file or directory

移行元EC2インスタンスのAMIにAWS Linux 2023 を利用した際のエラー。pythonのエラーらしいのですが原因不明だったので、利用するAMIを変えて回避しました。

原因が分かる方教えてください。

レプリケーション実行

移行元インスタンスにエージェントのインストールが完了したら、いよいろレプリケーションの準備が完了です。

MGNの設定画面を確認してみましょう。

このようにレプリケーション準備が完了していれば成功です。

EC2インスタンスを確認すると、レプリケーションサーバが自動で立ち上がっています。

レプリケーションサーバが立ち上がるまで5分~15分程度かかるようです。
気長に待ちましょう。

レプリケーションサーバが立ち上がると、レプリケーションが始まります。

ではこちらでも私が遭遇したエラーのご紹介

エラー:データレプリケーションが停止しました。

MGNからレプリケーションサーバへの接続ができていません。原因はTCPポート:1500を空けていなかったこと。

事前準備の部分に記載していますが、ネットワーク設定も必要です。

テストインスタンスの準備

レプリケーション完了を見届けたら、いよいよ移行先インスタンスの準備を行います。

MGNの設定からEC2起動テンプレートを指定します。

MGNの設定を行った際にテンプレートIDが自動で発番されているので、変更ボタンから適切な内容に変更します。

変更したEC2テンプレートはデフォルト設定しないと利用されないので、忘れずにデフォルトに設定しましょう。

テストインスタンスの起動

レプリケーションが完了すると、MGNのステータスバーが進み、次のアクションが「テストインスタンスの起動」と表示されます。

表示内容に従って、テストインスタンスを起動しましょう。

インスタンスのテストが進行します。

テストが完了してインスタンスの準備が完了すると、ステータスが変更されます。

次のアクションの内容が変更され、EC2の起動が成功しています。

テストインスタンスを確認してみましょう。

テスト用のEC2インスタンスが起動していることが確認できました。EC2起動テンプレートで指定したインスタンスで起動されていますね。

ちなみえにテストサーバにきちんとファイルがレプリケーションされているか確認しましょう。

作成した「mgntest.txt」ファイルもきちんとレプリケーションされていました。

本番環境への移行

テストが完了したら、いよいよ本番環境への移行です。

「カットオーバー」が本番環境への移行にあたります。

ちなみにテストインスタンスを起動しないと、本番サーバのカットオーバーはできません。

カットオーバーの準備を完了し、カットオーバーインスタンスを起動していきます。

カットオーバーの準備を進めると、コンバージョンサーバというEC2インスタンスが起動します。

カットオーバーも5分~15分程度の時間がかかります。こちらも気長に待ちましょう。

カットオーバーが完了すると、下記のとおり「カットオーバー完了」ステータスに変更されます。

後片付け

本番環境へのカットオーバーが完了したら、レプリケーションサーバなど不要なサーバの後片付けが必要です。

次のアクションとして記載されている「カットオーバーを最終処理」に進みましょう。

MGNの設定もアーカイブします。

後片付けを行うと、レプリケーションサーバなどは削除され本番移行が完了したEC2インスタンスだけが残りました。

まとめ

オンプレなどからAWSへ移行する際のツールとしてApplication Migration Service (MGN)を使う事により、シンプルなプロセスでAWSへのリフトアンドシフトを実現することができます。

物理環境と仮想環境どちらにも対応していたり、継続的レプリケーションにより移行時のダウンタイムを最小限に抑えることができるなど多くのメリットがあります。

AWSへの移行を企画する際には、まず利用を検討したいサービスです。

コメントを残す