Amazon Web Services ブログ

AWS Application Migration Service による別リージョンへの移行

多くの企業は、オンプレミスのワークロードを AWS にリホスト(リフト&シフト)し、Amazon Elastic Compute Cloud(AmazonEC2)インスタンスを実行するところからクラウドジャーニーを始めます。そして、リホストにおいては、クラウドネイティブの移行ツールである AWS Application Migration Service (MGN) を使用することができます。

その際、インスタンスやワークロードを、オフィスやデータセンターに近いリージョンに移動させる必要があるかもしれませんし、複数のリージョンにまたがってワークロードを分散するための弾力的な要件があるかもしれません。AWS MGN によるリホスト移行パターンは、Amazon EC2 がホストするワークロードを、ある AWS リージョンから別のリージョンに移行する場合にも使用することができます。

このブログ記事では、ある AWS リージョンから別のリージョンにワークロードを移行するための AWS MGN の構成方法を紹介します。

AWS MGN による移行の概要

AWS MGN は、物理、仮想、またはクラウド上のソースサーバーがAWS でネイティブに動作するよう自動的に変換することで、時間的制約があり、エラーが発生しやすい手動プロセスを最小限に抑えます。これにより、複数の移行ソリューションへの投資、専門的なクラウド開発、アプリケーション固有のスキルなど、全体的な移行コストが削減されます。AWS MGN を使用すると、アプリケーションを物理インフラストラクチャ、VMware vSphere、Microsoft Hyper-V、Amazon EC2、そして Amazon Virtual Private Cloud (Amazon VPC) から AWS に移行できます。

AWS に移行するには、ソースサーバーに AWS MGN レプリケーションエージェントをインストールし、AWS MGN コンソールでレプリケーション設定を定義します (図 1 を参照)。レプリケーションサーバーは、ソースサーバーで実行されているエージェントからデータを受け取り、このデータを Amazon Elastic Block Store (EBS) ボリュームに書き込みます。レプリケートされたデータは、転送中には圧縮と暗号化が実施され、EBS暗号化を用いて保管されます。

AWS MGN は、ほぼ連続的なブロックレベルのデータレプリケーションを使用して、AWS上に同期されたソースサーバーのデータを最新の状態に保ちます。無停止テストを実行したり、カットオーバーを実行したりするときに、定義した起動設定を使用してインスタンスを起動します。起動したインスタンスが AWS で正常に動作していることを確認した後、ソースサーバーを廃止できます。

Figure 1. MGN service architecture

図1. MGN のアーキテクチャ

AWS MGNによる移行の手順

このチュートリアルは、ソースとなるリージョンに Amazon EC2 でホストされたワークロードが動作していること、また、ターゲットとなるリージョンが定義されていることを前提としています。

AWS リージョン間で Amazon EC2 ワークロードを移行するために次の手順を行います。

  1. レプリケーション設定テンプレートを作成します。この設定は、ステージング領域サブネットに、サイズの小さな Amazon EC2 インスタンスを作成し、管理するために使用されます。これらのインスタンスは、ソースサーバーと AWS の間でデータをレプリケートするために使用されるレプリケーションサーバーとして機能します。
  2. ソースインスタンスにレプリケーションエージェントをインストールし、AWS MGN コンソールに追加します。
  3. 各ソースサーバーのLaunch settings(起動設定)を構成します。これらは、テスト用のインスタンスやカットオーバー用のインスタンスを起動する方法を決定するために使用されます。
  4. ターゲットとなるリージョンへのテスト/カットオーバーを開始します。

前提条件

以下は前提条件です。

  • 必要なクレデンシャルを持つ AWS Identity and Access Management (IAM) ユーザー
  • ターゲットリージョンに配置された、通信要件を満たしたステージング領域サブネット
  • ターゲットリージョンに配置された、カットオーバーインスタンスが起動される VPC とサブネット
  • 移行したインスタンスにアタッチされるセキュリティグループ
  • 通信要件を満たした両リージョンでのネットワークの準備

リージョン間の移行のための AWS MGN のセットアップ

ここでは、リージョン間の移行のための AWS MGN 構成のセットアップをご案内します。

AWS アカウントにログインし、移行先ターゲットリージョンを選択し、前提条件を完了させます。これで AWS MGN を構成する準備が整いました。

1.     AWS MGN のランディングページで [Get started]を選択します。

2.     [Replication Settings template](レプリケーション設定テンプレート)を作成します(図2参照)。

  • レプリケーションサーバーを配置する[Staging area subnet](ステージング領域サブネット)を選択します。
  • レプリケーションサーバーの[Replication Server instance type](インスタンスタイプ)を選択します。デフォルトでは t3.smallが使用されます。
  • [EBS encryption](Amazon EBS 暗号化)をデフォルトかカスタムか選択します。
  • [Always use the Application Migration Service security group]を有効化します。
  • 任意の[Replication resources tags](レプリケーションリソースタグ)を追加します。
  • [Create Template] ボタンを選択します。

Figure 2. Replication Settings template creation

図2. レプリケーション設定テンプレート作成

3.     AWS MGN にソースサーバーを追加します。

  • [Source Servers] (ソースサーバー) ページで[Action]メニューを開き、 [Add Servers] を選択します。
  • [Operating System]、[Replication Preferences](全てのディスク、または一部のディスク)、[IAM access Key ID](アクセスキー)、[IAM secret Access Key] (シークレットアクセスキー)を入力します。シークレットアクセスキーはいかなるリクエストにも公開されません。
  • ダウンロードコマンドとインストールコマンドそれぞれをコピーし、ソースサーバーで実行してエージェントをインストールします。

エージェントのインストールに成功すると、[Source Servers] (ソースサーバー) ページにソースサーバーが表示されます。その後、データのレプリケーションが開始されます。

4.     [Initial Sync](初期レプリケーション)の状態(図3参照)を観察します。

  • [Source Servers ](ソースサーバー)のページに移動します。
  • [Source server name](ソースサーバの名前)を選択し、[Migration Dashboard]タブの[Data Replication Status](レプリケーションの状態)を観察します。
  • [Replication progress](レプリケーション進行状況)が100%になった後、以下の状態になることを確認します。
    • [Lifecycle]が[Ready for testing](テスト準備完了)であること
    • [Next actions]が[Launch test instance](テストインスタンスの起動)であること

Figure 3. Monitoring initial replication status

図3. Initial Sync(初期レプリケーション)の状態

5.     各サーバーの起動設定をします。

Figure 4. Modifying EC2 Launch Template

図4. [EC2 Launch Template](EC2 起動テンプレート)の修正

6.     起動テンプレートに値を指定します。

  • [AMI]:最新のタブで[起動テンプレートの設定に含めない]を選択します。
  • [インスタンスタイプ]:ソースサーバーと同じにするか、予想されるワークロードに応じて変更してください。
  • [キーペア(ログイン)]:新規に作成するか、ターゲット AWS リージョンで作成済みの場合は既存を使用するから選択します。
  • [ネットワーク設定]の[サブネット]:テストインスタンスとカットオーバーインスタンスを起動するためのサブネットを選択します。
  • [セキュリティグループ]:テストインスタンスとカットオーバーインスタンスへのアクセス用のものを選択します。
  • [ストレージを設定]:サイズは変更しないでください。
  • [ボリュームタイプ]:任意のボリュームタイプを選択してください(io1がデフォルト)。
  • 詳細を確認し、コンソール右側の[概要]セクションで[テンプレートのバージョンを作成]をクリックします。

7.     起動テンプレートは修正する度に新しいバージョンが作成されます。MGN で使用したい起動テンプレートをデフォルトとして設定します(図5参照)。

  • Amazon EC2 の[起動テンプレート]のページに移動します。
  • 起動テンプレート ID を選択します。
  • [アクション]メニューを開き、[デフォルトのバージョンを設定]を選択し、作成された最新の起動テンプレートを選択します。

Figure 5. Setting up your Launch template as the default

図5. 起動テンプレートをデフォルトとして設定する

8.     カットオーバー前にテストインスタンスを起動してテストを実施することで、潜在的な問題を特定し、実際のカットオーバーが行われる前に問題を解決することができます。

  • [Source Servers](ソースサーバー)のページに移動します(図6参照)。
  • ソースサーバーを選択し[Test and Cutover](テストとカットオーバー)メニューを開きます。
  • [Testing]の中の[Launch test instances](テストインスタンスの起動)を選択します。
  • [Launch test instance for x server]にて[Launch](起動)を選択します。
  • [Launch Job Created]ダイアログボックスで[View Job Details](ジョブの詳細を表示)を選択し、[Launch History](起動履歴)タブに移動することで、テスト起動のジョブの詳細を確認します。

Figure 6. Launching test instances

図6. テストインスタンスの起動

9.     テストインスタンス(図7)が起動したことを以下の通りに検証します。

  • [Alerts]が[Launched](起動済み)であること
  • [Migration lifecycle]が[Test in progress](テスト中)であること
  • [Next step]が[Complete testing and mark as ‘Ready for cutover’](テストを完了し「Ready for cutover」としてマークする)であること

Figure 7. Validating launch of test instances

図 7. テストインスタンスの起動の確認

10.     SSH/RDP で テストインスタンスに接続し(EC2コンソールから表示)、接続性を検証します。必要に応じて、アプリケーションの受け入れテストを実施します。問題が発生した場合は、[Revert the test]でテストを元に戻します。

11.     テストが正常に終了したら、テストインスタンスを終了させます。

  • [Source Servers ](ソースサーバー)のページに移動します。
  • ソースサーバーを選択し[Test and Cutover](テストとカットオーバー)メニューを開きます。
  • [Testing]の中の[Mark as “Ready for cutover”](カットオーバーの準備完了をマーク)を選択します。
  • [Yes, terminate launched instances (recommended)](はい、起動したテストインスタンスを終了します(推奨))にチェックを付けて[Continue]を選択します。

12.     終了ジョブの状態とカットオーバーの準備状況を確認します。

  • [Migration lifecycle]が[Ready for cutover](カットオーバーの準備完了)であること
  • [Next step]が[Launch cutover instance](カットオーバーインスタンスの起動)であること

13.     決められた日時に最終的なカットオーバーを行います。

  • [Source Servers ](ソースサーバー)のページに移動します(図8を参照)。
  • ソースサーバーを選択し[Test and Cutover](テストとカットオーバー)メニューを開きます。
  • [Cutover]の中の[Launch cutover instances](カットオーバーの起動)を選択します。
  • [Launch cutover instance for x server]にて[Launch](起動)を選択します。

Figure 8. Performing final Cutover by launching Cutover instances

図8. カットオーバーインスタンスの起動による最終的なカットオーバの実行

14.    Source serversのサーバー一覧のステータスを確認して、カットオーバーインスタンスの起動の成功を検証します(図9参照)。

  • [Alerts]が[Launched](起動済み)であること
  • [Migration lifecycle]が[Cutover in progress](カットオーバー中)であること
  • [Data replication status]が[Healthy](正常)であること
  • [Next step]が[Finalize cutover](カットオーバーの最終確認)であること

Figure 9. Indicators for successful launch of Cutover instances

図9. カットオーバーインスタンスの起動の確認

15.     カットオーバーインスタンスをテストします。

  • Amazon EC2の[インスタンス]のページに移動します。
  • カットオーバーインスタンスを選択します。
  • SSH/RDP で カットオーバーインスタンスにログインし、正常に動作することを確認します。
  • 接続性を確認し、アプリケーションの受け入れテストを実施します。
  • 問題があれば[Revert Cutover]でカットオーバーを元に戻します。

16.     検証に成功したらカットオーバーを確定します。

  • [Source Servers](ソースサーバー)のページに移動します。
  • ソースサーバーを選択し[Test and Cutover](テストとカットオーバー)メニューを開きます。
  • [Cutover]の中の[Finalize Cutover](カットオーバーの確定)を選択します。
  • [Finalize cutover for  x server]にて[Finalize]を選択します。

17.     カットオーバーが成功した場合、この時点で以下の状態になっているはずです。

  • [Migration lifecycle]が[Cutover complete](カットオーバー完了)であること
  • [Data replication status]が[Disconnected](切断)であること
  • [Next step]が[Mark as archived](アーカイブをマーク)であること

これでカットオーバーが完了し、移行が正常に行われたことが確認されました。データレプリケーションも停止し、レプリケートされたデータはすべて破棄されます。

クリーンアップ

カットオーバーインスタンスを起動したソースサーバーをアーカイブして、ソースサーバーのページをクリーンアップします。

  • [Source Servers](ソースサーバー)のページに移動します(図10参照)。
  • ソースサーバーを選択し[Actions]を選択します。
  • [Mark as archived](アーカイブをマーク)を選択します。
  • [Archive x server]にて[Archive]を選択します。

Figure 10. Mark source servers as archived that are cutover

図10. カットオーバーされたソースサーバーをアーカイブとしてマークする

結論

このブログでは、ある AWS リージョンの Amazon EC2 ホストワークロードを、別のリージョンに移行することを AWS MGN を利用することによって簡素化、迅速化、そしてコスト削減できることを示しました。AWS MGN は AWS Migration Hub と統合されており、サーバーをアプリケーションとして整理することができます。複数の AWS リージョンにサーバーを移動しても、サーバーとアプリレベルで全ての MGN の進捗を追跡できます。 MGN が Migration Hub と連携するために、Migration Hub Home Regionを選択します。

AWS MGN がサポートする AWS リージョンはこちらで確認できます。ご希望の AWS リージョンが現在サポートされていない場合、CloudEndure Migration の利用をご検討ください。CloudEndure Migration は、2022年12月30日にすべての AWS リージョンで廃止される予定です。詳しくは CloudEndure Migration EOL をご参照ください。

注)AWS MGNの利用は90日間無料ですが、移行中およびカットオーバー後にプロビジョニングされる AWS インフラについては費用が発生します。詳しくは、価格ページをご参照ください。

このブログ記事を読んでいただき、ありがとうございます。 コメントや質問があれば、お気軽にコメント欄に入れてください。

翻訳は、Greenfield Solutions ArchitectのYuuki Komiyamaが担当しました。原文はこちらです。