CloudEndure Migrationを使って移行するハンズオンをAWS Application Migration Service(MGN)でやってみた

2022.05.11

はじめに

AWS Hands-on for BeginnersにてCloudEndure Migrationを使用してクラウド移行を実施するハンズオンが提供されています。

AWS Hands-on for Beginners CloudEndure Migrationを使ってオンプレミスサーバーをAmazon EC2に移行する

ただ、CloudEndure Migrationは2022年12月30日でAWS GovCloudおよび中国リージョン以外のリージョンでのサービスが終息すると宣言されています。  

CloudEndure Migration EOL

そのため今後は後継のサービスであるAWS Application Migration Serviceを使用することが基本的に推奨となります。であればAWS Application Migration Serviceで試したほうが今後のためになるかなと思い、このハンズオンの内容をAWS Application Migration Serviceに置き換えてやってみました。

なお、AWS Application Migration Serviceは長いので公式の略称である「MGN」と記載をしていきます。

AWS Hands-on for Beginnersについて

AWS Hands-on for Beginnersは無料で受講することができるAWS公式のハンズオンです。操作手順を解説する動画が用意されているので、初めてAWSを利用される方でも進めやすい内容になっています。今回紹介するもの以外にも色々とコースがあり、ボリュームも数時間で完了できるくらいの量なので「とりあえず手を動かしながら確認してみたい」という方にもおすすめです。

受講前に何点か必要事項を記入するとコースのページにアクセスすることができます。コース一覧のページから辿ると再度必要事項の入力が求められてしまうので、ブックマークしておきましょう。また、コース終了後のアンケートに回答すると解説動画で使用したスライドをダウンロードすることができます。

CloudEndure MigrationとAWS Application Migration Service(MGN)について

どちらもオンプレなどの移行元環境からネットワークを経由してイメージを転送し、AWS環境へのサーバーの移行を実現するサービスとなります。物理環境と仮想環境のどちらにも対応しており、AWSへのリフトをする場合には非常に使いやすいサービスとなっています。

以前からCloudEndure Migrationが提供されていましたが、CloudEndureはもともと有償サービスとして提供されていたものをAWSが買収して取り込んだという経緯があり、アカウントやコンソールなどがAWSと別れていたりしました。
MGNはCloudEndureとほぼ同様な機能を持つAWSネイティブなサービスとしてリリースされ、前述の通り今後はMGNを使用することが推奨されています。  

2022年4月時点では一部のサポートOSや提供リージョンに違いがあり、完全な互換性がある状況ではありませんので詳細なサービスの違いについては以下をご確認ください。

ハンズオンの概要

全体構成

AWS環境上に擬似的に移行元のオンプレミス環境(左側のソースVPC)と移行対象のサーバーを用意して、移行先のAWS環境(右側のターゲットVPC)にCloudEndure Migrationを使ってEC2インスタンスを移行する、という内容のハンズオンになります。


引用: ハンズオンの資料より

コースの流れ

以下の6ステップで進めるコースとなります。

  1. 前提知識の確認と本ハンズオンの全体像
  2. 事前準備
  3. CloudEndureアカウント登録と初期設定
  4. レプリケーション実行
  5. カットオーバー
  6. 後片付けと振り返り

このうち、今回の記事では「 3. CloudEndureアカウント登録と初期設定 」以降のステップをMGNに置き換えて進めていきます。

やってみた

1. 前提知識の確認と本ハンズオンの全体像

最初にコースのゴールやアジェンダ、ハンズオンの流れなどについて説明があります。
コースで本来使用するCloudEndure Migrationの概要についての説明もありますが、仕組みについてはMGNと共通している点も多いので参考になると思います。

2. 事前準備

移行元のオンプレミス環境(AWS環境上に擬似的に構築)と、移行先のAWS環境を準備します。


引用: ハンズオンの資料より  

解説動画に沿って、移行元環境であるSourceVPC、レプリケーション先のStagingVPC、移行先環境のTargetVPCをそれぞれ作成し、移行対象となるEC2インスタンスをSourceVPC上に作成していきます。これで環境の下準備は完了です。

3. CloudEndureアカウント登録と初期設定

コースの本来の進め方としては、CloudEndure用のアカウントを作成して、CloudEndureにログインして初期設定を進めていくステップとなります。
本記事ではこのステップ以降をMGNに置き換えて進めていきます。

3-1. MGNのセットアップ

最初にMGNのセットアップとして、レプリケーションサーバやレプリケーションで使用するネットワークの情報を入力していきます。今回はハンズオンなのでサブネット以外はデフォルトの設定で進めていきます。

AWSのコンソール画面からMGNの画面に移り、「Get started」をクリックします。

「Set up Application Migration Service」の画面に移ります。
「Staging area subnet」の項目で事前準備で作成した「StagingPublicSubnet-1a」を選択し、他の項目はデフォルトのままで「Create template」をクリックします。

テンプレートの作成が完了したメッセージが表示されます。設定はMGNの画面の左ペインに表示された「Settings」から確認することができます。

3-2. IAMユーザーの作成

移行元サーバーにMGNエージェントをインストールするために必要となるIAMユーザーを作成していきます。手順の詳細についてはユーザーズガイドもご参照ください。

Generating the required AWS credentials

IAMの画面から「ユーザー」を選択し、「ユーザーを追加」をクリックします。
ユーザー名の入力と、「アクセスキー - プログラムによるアクセス」にチェックを入れ、次に進みます。

「既存のポリシーを直接アタッチ」を選択し、「AWSApplicationMigrationAgentPolicy」を検索してチェックを入れて、次に進みます。

ユーザーの追加が完了するとアクセスキーIDとシークレットアクセスキーが確認できる画面になりますので、メモするかcsvファイルのダウンロードをしておきます。

4. レプリケーション実行

4-1. MGNエージェントのインストール

移行元サーバーにMGNエージェントをインストールしていきます。
MGNエージェントのインストールが完了すると、自動的にステージング環境へのレプリケーションが始まります。インストール手順の詳細についてはユーザーズガイドもご参照ください。

Installation instructions

移行元サーバーに接続したあと、以下のコマンドを移行元サーバーで実行し、MGNエージェントのインストーラーファイルをダウンロードします。コマンドの<region>は移行先のリージョンに置き換えます。

wget -O ./aws-replication-installer-init.py https://aws-application-migration-service-<region>.s3.<region>.amazonaws.com/latest/linux/aws-replication-installer-init.py
  • 移行先が東京リージョンの場合
    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

次に以下のコマンドでMGNエージェントのインストールを実行します。コマンドの<region>は移行先のリージョンに、<id><key>は「3-2.」で作成したユーザーのアクセスキーIDとシークレットアクセスキーに置き換えます。

sudo python3 aws-replication-installer-init.py --region <region> --aws-access-key-id <id> --aws-secret-access-key <key>

上記のコマンドを実行すると、移行対象のディスクについての確認メッセージが表示されます。今回はすべてのディスクを対象とするので、何も入力せずにEnterキーを実行します。

「The AWS Replication Agent was successfully installed.」が表示されるとインストールが完了となり、レプリケーションがスタートします。

ここでMGNの画面に戻ると、「Source servers」からサーバーの情報が確認できるようになります。また、サーバー名をクリックすると、レプリケーションの詳細情報が確認できます。

レプリケーションの進捗具合については「Migration Dashboard」のタブから確認できます。

レプリケーションが完了すると「Lifecycle」のステータスが「Not Ready」から「Ready for testing」に進み、次のテストへ進める状態になります。今回の環境ではMGNエージェントのインストールから「Ready for testing」のステータスに進むまで30〜40分程度かかりました。

また、EC2の画面に移動すると、レプリケーションサーバーのインスタンスが起動していることが確認できます。

4-2. セキュリティグループの作成

移行先のTargetVPC用のセキュリティグループの作成をしていきます。

EC2の画面から「セキュリティグループ」を選択し、「セキュリティグループの作成」をクリックします。「VPC」のプルダウンから「TargetVPC」を選択し、「インバウンドルール」には移行元と同様にsshとhttpのルールを追加して「セキュリティグループの作成」をクリックします。

4-3. 移行先サーバーの設定

移行先サーバーの設定をしていきます。
MGNの画面から「Source servers」をクリックし、対象のサーバーをクリックします。

「Launch settings」のタブに移動して、「General launch settings」の項目の「Edit」をクリックします。

「Instance type right sizing」の項目で「Off」を指定し、「Save settings」をクリックします。

  • 補足
    「Instance type right sizing」が有効化されていると移行先サーバーのインスタンスタイプが自動的に選択されます。今回はEC2の起動テンプレートで任意のインスタンスタイプを指定するため無効化します。

次に、同じ「Launch settings」のタブから「EC2 Launch Template」の「Modify」をクリックします。

「About modifying EC2 Launch Templates」というポップアップが開かれるので「Modify」をクリックすると、EC2の起動テンプレートの変更画面が開きます。
ここでは以下の項目を入力していきます。

  • 起動テンプレートとバージョンの説明
    • テンプレートバージョンの説明:任意の名称
  • インスタンスタイプ
    • 「インスタンスタイプを手動選択」を選択
    • インスタンスタイプ:t2.microを選択
  • ネットワーク設定
    • サブネット:TargetPublicSubnet-1aを選択
    • セキュリティグループ:4-2.で作成したセキュリティグループを選択
    • パブリックIPの自動割り当て:有効化

入力後に「テンプレートのバージョンを作成」をクリックすると確認画面に移るので、「起動テンプレートを表示」をクリックします。

続いて、作成したテンプレートの内容で移行先サーバーが起動するように、デフォルトのテンプレートを変更していきます。テンプレートの表示画面から「アクション」をクリックし、プルダウンから「デフォルトバージョンを設定」をクリックします。

テンプレートのバージョンから作成した名称のテンプレートを選択し、「デフォルトバージョンとして設定」をクリックします。

MGNの画面に戻り、「EC2 Launch Template」に設定した内容が反映されていることを確認します。これで移行先サーバーの設定が完了となります。

5. カットオーバー

5-1. テスト移行

本番のカットオーバーに先立ち、テスト移行を実施していきます。

MGNの画面から「Source servers」をクリックし、対象のサーバーをクリックします。以下を確認し、「Test and cutover」のプルダウンから「Launch test Instances」をクリックします。

  • 「Next actions」に「Launch test instance」と表示されている
  • 「Data replication status」に「Healthy」と表示されている

続いてポップアップで確認画面が表示されるので、「Launch」をクリックしていきます。

テストインスタンスの起動が開始し、「Lyfecycle」のステータスが「Test in progress」に移動します。しばらくしてEC2の画面に移ると、テストインスタンスの起動が開始したことが確認できます。

MGNの画面で「Next actions」に「Launched」と表示されたらテストインスタンスの起動は完了となります。今回の環境ではだいたい10分くらいかかりました。

正常確認として、移行前と同様にhttp、sshでそれぞれ接続できるかを確認します。確認で問題がなければ、「Test and cutover」のプルダウンから「Mark as "Ready for cutover"」をクリックします。

その後に確認のポップアップが出てくるので、「Yes, terminate launched instances (recommended).」にチェックを入れて「Continue」をクリックします。しばらくするとテストインスタンスは自動的に削除されます。

5-2. カットオーバー

本番の移行となるカットオーバーを進めていきます。流れとしてはテスト移行とほぼ同様となります。

MGNの画面から「Source servers」をクリックし、対象のサーバーをクリックします。以下を確認し、「Test and cutover」のプルダウンから「Launch Cutover Instances」をクリックします。

  • 「Next actions」に「Launch cutover instance」と表示されている
  • 「Data replication status」に「Healthy」と表示されている

続いてポップアップで確認画面が表示されるので、「Launch」をクリックしていきます。

移行先サーバーの起動が開始し、「Lyfecycle」のステータスが「Cutover in progress」に移動します。しばらくしてEC2の画面に移ると、移行先サーバーの起動が開始したことが確認できます。

MGNの画面で「Next actions」に「Launched」と表示され、「Launch status」に「First boot: Succeeded」と表示されたことが確認できたら移行先サーバーの起動は完了となります。テスト移行と同様に、今回の環境ではだいたい10分くらいかかりました。

正常確認として、移行前と同様にhttp、sshでそれぞれ接続できるかを確認します。確認で問題がなければ、「Test and cutover」のプルダウンから「Finalize cutover」をクリックします。

これでカットオーバーが完了となり、レプリケーションも停止します。しばらくするとレプリケーションサーバー、スナップショットが削除されます。

最後に「Next actions」に「Mark as archived」と表示されていることを確認したら、「Actions」のプルダウンから「Mark as archived」をクリックします。

以上で移行作業は完了となります。

6. 後片付けと振り返り

最後に今回のハンズオンで作成したリソースの削除をしていきます。手順通りに進めていくと以下のリソースを新規に作成しているはずですので、今後使用するつもりがなければ削除をします。
※リソースの削除要否、残存リソースの有無の最終的な確認はご自身にてお願いします。

  • EC2の削除(移行元サーバー、移行先サーバー)
  • キーペアの削除(ssh接続用に作成している場合)
  • スナップショットの削除(AWS Application Migration Service Base Snapshot)
  • VPCの削除(SourceVPC、StagingVPC、TargetVPC)
  • ユーザーの削除(3-2.で作成)

まとめ

所要時間は2〜3時間程度でした。
CloudEndure Migrationでもやってみたので比較となりますが、移行時の流れ自体にはほぼ差異はありません。ただ、事前準備としてCloudEndure用のアカウントを用意したり連携用のIAMロールを作成する必要がなくなったりと、細かい点ですがAWSネイティブなサービスとして使い勝手が良くなっているなと感じました。

本コース自体ですが、クラウド移行のステップを一通り触れることができるので、移行作業の全体像を掴みたい方にはおすすめのコンテンツです。実際にやってみるといくつかパラメータの設定をするだけで簡単に移行作業を進めることができるので、AWSへの移行に不安を感じている方には一度お試しいただけるといいかと思います。

また、AWSのHands-on for Beginnersは他にもコンテンツがあり、そこまでボリュームも大きくないので「まずはAWSに触れてみたい」という方にはおすすめです。私もドキュメントを読むこむよりも実際に手を動かしてみることのほうが好きなので、今後も気になったコンテンツがあったらトライしていこうと思います。簡単な情報登録だけで利用することができるので、気になっている方はぜひお試しください。

参考

AWS Application Migration Service

AWS Application Migration Service Documentation