TOP> コラム一覧>

AWS MGNでサーバ移行を試してみた

はじめに

こんにちは。CTCの朴木です。

今回はAWS Application Migration Service (MGN)のサーバ移行について記載していきます。AWS MGNはオンプレミス環境からAWSへのリフト&シフト移行や他クラウド環境からAWS環境への移行に用いられるサービスになります。

本記事では同一アカウント内でMGNの移行リハーサルを行ったため、その内容について記載していきます。同一アカウント内でMGN移行を用いるケースとしては検証用途での事前リハーサルもありますが、VPCを新しいものにする際に既存のEC2を止めずに新構成で作り直したEC2に切り替えたいときにも手段の一つとして採用できます。

AWS Application Migration Service (MGN)とは

AWS Application Migration Service (MGN)はオンプレミスや他クラウド環境のサーバを、ブロックレベルのデータレプリケーションによって AWS クラウドへ移行するマネージドサービスです。
移行作業を自動化し、事前検証用のテスト環境やスムーズなカットオーバーを提供することで、安全性を確保しつつダウンタイムを最小限に抑えるため、移行ツールとして選択されています。

移行手順について

2つの環境操作を行き来するため簡単に手順をまとめます。
本記事ではオレゴンリージョンのサーバを東京リージョンへ移行することを前提として実施していきます。

No. 移行元想定環境(オレゴン) 移行先想定環境(東京)
概要 作業項目 概要 作業項目
1 移行元想定
環境構築
VPC作成
2 セキュリティグループ作成
(移行元サーバ用)
3 EC2作成(移行元サーバ)
4 固定IP付与
5 接続用パスワードの確認
6 移行先想定
環境構築
VPC作成
7 セキュリティグループ作成
(レプリケーションサーバ用)
8 セキュリティグループ作成
(移行先サーバ用)
9 セキュリティグループ作成
(VPCエンドポイント用)
10 VPCエンドポイント作成
11 移行前作業 レプリケーションテンプレートの設定
12 IAMユーザ作成(エージェントインストール用)
13 移行前作業 移行元サーバ接続
14 設定確認
15 確認用ファイル作成
16 移行作業 エージェントインストール
17 移行作業 レプリケーション完了確認
18 起動テンプレート設定
19 移行テスト
20 正常性確認
21 カットオーバー
22 正常性確認
23 アーカイブ

画面スクリーンショット

移行の環境構成図は上記の通りです。それでは実際にやってみましょう。

環境構築準備

まずは移行元と移行先の環境を構築となります。キャプチャ等の詳細は省略しますが本記事での構築条件は下記の通りです。

移行元 環境設定内容(オレゴンリージョン)

  • VPC:デフォルトの設定でVPCを新規作成
画面スクリーンショット
  • セキュリティグループ(移行元サーバ用):
    • インバウンドルール:なし(SSMを利用して接続するため)
    • アウトバウンドルール:すべてのトラフィックで0.0.0.0/0を許可
  • EC2(移行元サーバ):
    • 名前:mgn-test-source-ec2
    • AMI:Windows Server 2022
    • キーペア:新規作成(mgn-test-source-keypairという名前で作成した)
    • VPC、サブネット、セキュリティグループは上記で作成したものを紐づける
    • パブリックIPの自動割り当て:無効
    • インスタンスプロファイル:SSMManagedInstanceCore
  • Elastic IP:割り当てる(レプリケーションサーバのセキュリティグループのインバウンドルールに指定するため)
  • 接続用パスワード:

SSMを利用して接続する際に必要となるAdministratorのパスワードをキーペアを使って復号し控えておきます。

画面スクリーンショット

移行先 環境設定内容(東京リージョン)

  • VPC:移行元同様、デフォルトの設定でVPCを新規作成
  • セキュリティグループ(レプリケーションサーバ用):
    • インバウンドルール:移行元サーバからのポート:1500を許可
    • アウトバウンドルールはポート:443と1500で0.0.0.0/0を許可
  • セキュリティグループ(移行先サーバ用):
    • インバウンドルール:なし(SSMを利用して接続するため)
    • アウトバウンドルール:すべてのトラフィックで0.0.0.0/0を許可
  • セキュリティグループ(MGN・EC2のVPCエンドポイント用):
    • インバウンドルール:レプリケーションサーバのセキュリティグループからのポート:443を許可
    • アウトバウンドルール:すべてのトラフィックで0.0.0.0/0を許可
  • セキュリティグループ(SSMのVPCエンドポイント用):
    • インバウンドルール:移行先のサブネットからのポート:443を許可
    • アウトバウンドルール:すべてのトラフィックで0.0.0.0/0を許可
  • VPCエンドポイント(EC2用):
    • サービス:com.amazonaws.ap-northeast-1.ec2
    • サブネット:レプリケーションサーバ用サブネット
    • セキュリティグループ:MGN・EC2のVPCエンドポイント用セキュリティグループ
  • VPCエンドポイント(MGN用):
    • サービス:com.amazonaws.ap-northeast-1.mgn
    • サブネット:レプリケーションサーバ用サブネット
    • セキュリティグループ:MGN・EC2のVPCエンドポイント用セキュリティグループ
  • VPCエンドポイント(SSM用(ssm)):
    • サービス:com.amazonaws.ap-northeast-1.ssm
    • サブネット:移行先のサブネット
    • セキュリティグループ:SSMのVPCエンドポイント用セキュリティグループ
  • VPCエンドポイント(SSM用(ssmmessages)):
    • サービス:com.amazonaws.ap-northeast-1.ssmmessages
    • サブネット:移行先のサブネット
    • セキュリティグループ:SSMのVPCエンドポイント用セキュリティグループ

移行関連操作

続いて移行準備と移行作業について記載していきます。レプリケーションテンプレートの設定や移行元サーバの設定確認を行っていきます。

移行先 移行事前作業

MGNのサービス画面からレプリケーションテンプレートを作成します。
MGNサービス画面>設定>レプリケーションテンプレートから設定を開始します。

設定内容は以下の通りです。

画面スクリーンショット

次に、移行元サーバにエージェントをインストールする際に必要な認証情報を作成します。

「AWSApplicationMigrationAgentPolicy」を付与したユーザを作成し、アクセスキーとシークレットキーを作成して控えます。

これで移行先の準備が終わりました。次は移行元の準備設定になります。

移行元 移行事前作業

まずはSSM Fleet Manager Remote Desktopを利用して移行元サーバに接続します。

次に、移行元サーバのデスクトップに、任意の名称で空のテキストファイルを作成します。
(移行後、このファイルの有無で移行されているかを確認します。)

エクスプローラーの表示設定から隠しアイテムの表示をチェックします。

画面スクリーンショット

C:\Windows\System32フォルダ配下にnet.exe、sc.exeが存在することを確認します。

画面スクリーンショット
画面スクリーンショット

コントロールパネルを開き「システムとセキュリティ」を選択します。

「システム」>「システムの詳細設定」を選択します。

画面スクリーンショット

「システムの詳細設定」より「Path」を選択し、「編集」ボタンをクリックします。

画面スクリーンショット

net.exe、sc.exeが格納されているフォルダへのパスが存在することを確認します。

画面スクリーンショット

ブラウザから以下のURLにアクセスしエージェントのインストーラをダウンロードします。

ダウンロード完了後、デスクトップに配置し、コマンドプロンプトを管理者権限で実行します。

chcpコマンドで文字コードを確認します。文字コードが65001でない場合は、「chcp 65001」コマンドを実行し、文字コードを65001に変更します。

画面スクリーンショット

「cd C:\Users\Administrator\Desktop」コマンドでデスクトップに移動し、作成したエージェントインストール用のアクセスキー、シークレットキーで以下のコマンドを実行します。

.\AwsReplicationWindowsInstaller.exe --region ap-northeast-1 --aws-access-key-id <アクセスキー> --aws-secret-access-key <シークレットキー>

移行先 移行作業

エージェントインストール後自動的にレプリケーションが開始されます。エージェントがインストールされた移行元サーバはMGNコンソールでソースサーバーとして確認できます。

画面スクリーンショット

ソースサーバーのレプリケーションが完了することを確認します。

画面スクリーンショット

「起動設定タブ」を選択し「一般的な起動設定」の「編集」をクリックして、下記項目を設定します。

画面スクリーンショット

続いて「EC2起動テンプレート」の「変更」を選択し、以下の設定で起動テンプレートを作成します。

画面スクリーンショット
画面スクリーンショット
画面スクリーンショット
画面スクリーンショット
画面スクリーンショット

起動テンプレートの新しいバージョンの作成後、新しいバージョンをデフォルトに指定します。

画面スクリーンショット

ここまできたら次は移行テストになります。ライフサイクルが「テストの準備完了」に移行していることを確認後、「テスト及びカットオーバー」から「テストインスタンスを起動」を選択します。

画面スクリーンショット

テストインスタンス起動後、正常性を確認します。付与されているセキュリティグループが問題ないか確認します。

画面スクリーンショット

次に、テストインスタンスに接続し、問題なく起動していることを確認します。確認用のファイルがデスクトップに存在することを確認します。コマンドプロンプトにて「sc query > allservice_log.txt」コマンドを実行しサービス一覧の情報を出力します。

画面スクリーンショット

コマンドプロンプトにて「ipconfig /all > network_info.txt」コマンドを実行しネットワーク情報を出力します。

画面スクリーンショット

出力した情報の内容を確認します。(移行元サーバの情報と比較)

画面スクリーンショット

イベントビューワーを開き、「Windowsログ」から「カスタムビューの作成」を選択します。

画面スクリーンショット

「重大」、「エラー」を選択します。イベントログで「Windows ログ」を選択し「OK」選択します。

画面スクリーンショット

任意の名称でカスタムビューを作成します。

画面スクリーンショット

出力されているエラー内容をチェックし問題がないかを確認します。

テストインスタンスの正常性確認で問題がなければ、カットオーバーを実施します。

「テスト及びカットオーバー」から「カットオーバーの準備完了としてマーク」を選択し、テストインスタンスの終了をチェックし、続行します。

画面スクリーンショット

「テスト及びカットオーバー」から「カットオーバーインスタンスを起動」を選択し、カットオーバーインスタンスを起動します。

画面スクリーンショット

カットオーバーインスタンス起動後、テストインスタンス同様の正常性確認を実施します。

最後に、カットオーバーインスタンスでの正常性確認で問題がなければ移行を完了しアーカイブします。

「テスト及びカットオーバー」から「カットオーバーを最終処理」を選択し、最終処理を実施します。

画面スクリーンショット

最終処理を実施することで移行が完了し、移行に利用したリソースが削除されます。「アクション」から「アーカイブ済みとしてマーク」を選択します。アーカイブすることでソースサーバー一覧に表示されなくなります。アーカイブしたソースサーバーを表示する場合はソースサーバー一覧の設定から、アーカイブ済みをチェックすることで閲覧可能です。

画面スクリーンショット

おわりに

いかがでしたでしょうか。

本記事では、AWS Application Migration Service(MGN)を用いて、リージョン間でのサーバ移行を実際に検証した手順とポイントをまとめました。
事前準備としてのネットワーク設計やセキュリティグループ設定からエージェント導入後のレプリケーション確認、テスト移行からカットオーバーまで、一連の流れを通して、MGNによる移行作業の全体像を把握することができました。VPCエンドポイントやセキュリティグループなどの事前設計を誤ると移行がスムーズに進めることができないため、今回の検証では事前準備の重要性を再認識できました。

本記事が、オンプレミス環境や既存AWS環境からの移行検討、または本番移行前のリハーサルを行う際の参考になれば幸いです。

お問い合わせ

【著者プロフィール】

朴木 瞳(ほうのき ひとみ)

伊藤忠テクノソリューションズ株式会社 クラウドエンジニア

AWSのアカウント管理や技術QAを経験し、現在はインフラの設計・構築における業務を担当。従量削減のためのRIのコストシミュレーションにおいてもお客様を支援。

朴木 瞳(ほうのき ひとみ)

pagetop