Amazon Web Services ブログ

AWS Application Migration Serviceを使用してAzureのWordPressをAWSに移行する

はじめに

デジタル環境が急速に変化する今日、企業は効率的な業務運営、コスト削減、クラウドコンピューティングの最適活用を常に模索しています。企業の成長に伴い、Azure や Google Cloud Platform(GCP) から Amazon Web Services(AWS) への移行など、異なるクラウドプロバイダー間での仮想マシン(VM)移行が必要となることが多々あります。

しかし、クラウドへの移行を始めることは、課題や複雑さが多く困難な作業になりかねません。 そこで、 AWS Application Migration Service(AWS MGN) が移行プロセスを簡素化・合理化する強力なツールとして役立ちます。 AWS MGN は、高度に自動化されたリフト&シフトソリューションを提供することで、クラウド移行の簡素化、促進、コスト削減を実現します。 1台のサーバーにつき最大 90 日間、サーバーの数に制限なく無料で移行できます。ほとんどのお客様は、この 90 日以内にサーバーの移行を完了し、AWS Application Migration Service を無料でご利用いただけます。

このブログでは、AWS MGN を使用して Azure 上の仮想マシンを AWS に移行する方法について解説します。 移行をスムーズに成功させるための手順、ベストプラクティス、留意点について説明し、AWS が提供する様々な機能を最適に活用できるよう助言します。

アーキテクチャの概要

AWS MGN は、物理サーバー、仮想マシン、クラウド上のサーバーを、簡単に別の場所に移行できるサービスです。 オンプレミスのデータセンターや別の AWS リージョン、他のクラウドプロバイダー上のサーバーから、AWS にサーバーを移行することができます。 以下のアーキテクチャ図は、AWS MGN を使ってオンプレミスのサーバーを AWS に移行する流れを示しています。

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

ソースサーバにインストールされた軽量なエージェントが、レプリケーションを実行します。この AWS レプリケーションエージェントは、TLS を利用してポート 443 を通じて安全に通信を行い、接続されているすべてのディスクをスキャンして、ターゲットリージョンへブロックレベルでレプリケーションを行います。最初のレプリケーションが完了すると、レプリケーションエージェントはソースサーバへの変更を監視し、その変更点をレプリケートしていきます。これにより、ターゲットリージョンに保存されたデータを最新の状態に保つことができます。

ソースとターゲットが完全に同期し、継続的レプリケーションモードになった後は、テストまたはカットオーバーを開始することができます。 テストまたはカットオーバーが開始されると、AWS MGN は Amazon Elastic Compute Cloud (Amazon EC2)  の API を使用してターゲットインスタンスを起動し、新しい Amazon Elastic Block Store (Amazon EBS)  ボリュームをアタッチします。 AWS MGNを利用することで、アプリケーションやワークロードの内容に関わらず、オンプレミスのデータセンターや他のクラウドプロバイダーから AWS へ仮想マシンを移行することができます。

ソリューション概要

AWS MGN を利用すると、仮想マシンを Amazon EC2 に移行できます。また、アプリケーションデータの同期も確認できます。 移行に関する手順は以下の通りです。

  1. AWS MGN を利用してレプリケーション環境を構築します。
  2. 一時的な認証情報を作成します。
  3. Azure の仮想マシンに AWS MGN エージェントをインストールします。
  4. ソースサーバーの起動設定を行います。
  5. テスト用インスタンスとカットオーバーインスタンスを起動します。

前提条件

Azure での WordPress サイトの作成

まず移行を行うには、 WordPress が構築されている Azure 仮想マシンが必要です。Azure 仮想マシンを作成する手順は以下の通りです。

  1. Azure アカウント上で検索バーに「WordPress」と入力し、検索します。
  2. 検索に一致した Marketplace で [WordPress] オプションを選択します。App Service で WordPress を選択しないでください。選択すると、VM にアクセスできなくなります。
  3. [作成] を選択します。
  4. リソースグループ名仮想マシン名を入力します。
  5. 管理者アカウント に、ユーザー名キーペア名を入力します。これは後でインスタンスに接続するときに使用します。
  6. [確認および作成] を選択します。
  7. 新しいキーペアを生成するように求められます。後で仮想マシンにアクセスできるように、プライベートキーをダウンロードするオプションを選択します。

ソースサーバーネットワーク

AWS MGN レプリケーションエージェントを WordPress サーバーにインストールする際には、ネットワーク設定を適切に構成し、アクセスを許可する必要があります。手順は以下の通りです。

  1. Azure アカウントで、仮想マシンを検索します。
  2. WordPress ドキュメントの作成時に指定した名前の仮想マシンを選択します。
  3. サイドバーの 設定 の [ネットワーク設定] タブを選択します。

図 2. WordPress を実行しているソースサーバーのネットワーク画面

  1. [受信ポート ルール] を選択します。宛先ポート範囲を 443 に設定し、プロトコルとして TCP を選択します。
  • DenyAllInbound の優先度よりもこのルールの優先度番号が小さいことを確認してください。
  • 次に、[ポート ルールの作成] – [送信ポート ルール] を選択します。
  • このメニューで、宛先ポート範囲を 1500 に、プロトコルを TCP に設定します。残りはデフォルトのままにします。

セクション 1: AWS MGN 環境のセットアップ

AWS MGN のランディングページで[使用を開始]をクリックします。このサービスに初めてログインした場合、サービスの初期設定を求められます。

図 3. AWS MGN サービス初期時のプロンプト

コンソールの AWS MGN エリアにアクセスするのが初めてではない場合は、サイドバーの [レプリケーションテンプレート] に移動し、[サービスのアクセス許可を再初期化] を選択することでアクセス許可を再設定できます。

サービスを初期化すると、AWS Idenity and Access Management (IAM) ロールとともにレプリケーションテンプレートが作成されます。テンプレートは、新しく追加されたソースサーバーごとにデータレプリケーションがどのように機能するかを規定します。また IAM ロールはレプリケーションエージェントをインストールするために必要な権限が付与されます。

構成されたレプリケーション設定は、個々のソースサーバーまたはソースサーバーのグループでいつでも変更できます。レプリケーション設定の詳細をご覧ください。

セクション 2: 一時的な認証情報の作成

ソースサーバーに AWS MGN エージェントをインストールするには、まず必要な認証情報を作成する必要があります。そのためには、インストール権限を持つ AWS IAM ロールを作成します。このロールを使用して、MGN で利用するための一時的な認証情報を生成します。

  1. コンソールの AWS IAM に移動します。
  2. サイドバーで、[アクセス管理]の[ロール]タブを選択します。
  3. 右上の [ロールを作成] ボタンを選択します。

図 4. 新しいロールを作成できる AWS IAM ロール画面

  1. 信頼されたエンティティタイプについては、[AWS アカウント] を選択し、[次へ] を選択します。
  2. 許可ポリシーの検索バーで、[AWSApplicationMigrationAgentInstallationPolicy] を検索し、その横にあるチェックボックスをオンにして選択します。次に、[次へ] を選択します。
  3. ロール名には 「mgn_install」 を入力します。次に、下にスクロールして [ロールを作成] を選択します。
  4. ロール検索バーで、先ほど作成した mgn_install ロールを検索し、選択して概要にアクセスします。
  5. 概要に表示されている mgn_install の ARN をコピーします。
  • セッション時間が長く必要と想定される場合は、編集ボタンを選択し、必要に応じてロールの最大セッション時間を長くしてください。

図 5. mgn_install ロールの概要

セクション 3: Azure 仮想マシンに AWS MGN エージェントをインストールする

コンソールの AWS MGN に移動します。ソースサーバーを選択し、[サーバーを追加]を選択してエージェントインストーラーのリンクを取得します。

図 6. 新しいソースサーバーを追加できる AWS MGN ソースサーバー画面

[サーバーを追加]を選択すると、AWS レプリケーションエージェントインストールに関する設定画面が表示されます。

図 7. AWS レプリケーションエージェント のインストール画面

ここでは、セクション2で作成した IAM ロールの認証情報(AccessKeyID、SecretAccessKey、および SessionToken)を提供する必要があります。そのため、 AWS Security Token Service (AWS STS) の AssumeRole API を利用して、一時的な認証情報を取得します。一時的な認証情報を取得するには以下の手順を実行します:

  1. コンソールページの左下にある CloudShell ボタンを選択して、コマンドラインインターフェイス (CLI) を開きます。

図 8. AWS CloudShell インターフェイス

  1. CLI に次のコマンドを挿入します。これにより、AccessKeyID、SecretAccessKey、および SessionToken が出力されます。これらのトークンは、AWS レプリケーションエージェントのインストールページの項目 に利用します。 (図 7 を参照)。

aws sts assume-role —role-arn [mgn_install の ARN] –-role-session-name “mgn-install”

図 9. aws sts assume-role コマンドを実行した後の CloudShell の出力

  1. AccessKeyID、SecretAccessKey、および SessionToken を入力後、図7の項目5と6のコマンドをコピーして Azure 仮想マシン上で実行することで、Azure 仮想マシンにレプリケーションエージェントをインストールすることができます。
  • Azure 仮想マシンへの Secure Shell (SSH) または Remote Desktop Protocol (RDP) のガイダンスについては、次のドキュメントを参照してください。

https://learn.microsoft.com/en-us/azure/virtual-machines/linux-vm-connect?tabs=Linux

  • 項目 5 のコマンドを正常に実行すると、次のようになります。

図 10. エージェントインストーラが正常にダウンロード完了した場合の出力

  1. 同様に、項目6のコマンドを実行すると、次のようになります。

図 11. レプリケーションエージェントを正常にインストール完了した場合の出力

  1. AWS レプリケーションエージェント が正常にインストールされたことを示すプロンプトが表示された後、AWS MGN のソースサーバー一覧にソースサーバーが表示され、初期同期が開始されます。

図 12. MGN のアクティブなソースサーバーリストに表示されるサーバー

エージェントのインストール後、ソースサーバに接続されているすべてのディスクが自動的にスキャンされ、検出されたディスク上のデータに対して複製が開始されます。

セクション 4: サーバー起動設定の構成

テストインスタンスとカットオーバーインスタンスを起動する前に、いくつかの設定を構成する必要があります。 設定を行うには、まずソースサーバーを選択します。ここから、図13に示すように、[起動設定]に移動できます。 [起動設定]では、[一般的な起動設定] と [EC2 起動テンプレート]の2つがあります。

図 13. ソースサーバーの起動設定

このユースケースでは、[一般的な起動設定] をデフォルトのままにします。

  1. [EC2 起動テンプレート]については、[ネットワーク設定] までスクロールし、[高度なネットワーク設定] を選択します。

図 14. EC2 起動テンプレート内のネットワーク設定

  1. ここでは、WordPress サーバーが公開されている前提で、[パブリック IP の自動割り当て]を有効にする必要があります。次に、[テンプレートのバージョンを作成] を選択して、これを新しいテンプレートバージョンとして保存します。

図 15. 高度なネットワーク設定

  1. テンプレートを構成したら、テンプレートを開いて正しく構成されていることを確認する必要があります。そのためには、テンプレートバージョンを作成した後に表示される成功通知でテンプレート名を選択します。

図 16. 起動テンプレートが正常に作成された後に表示されるメッセージ

  1. AWS MGN はデフォルトのバージョンの EC2 起動テンプレートを使用します。新しく作成したテンプレートはデフォルトにはなっていないため、[アクション] に移動して [デフォルトバージョンを設定] を選択する必要があります。ドロップダウンから最新のテンプレートバージョンを選択し、「デフォルトバージョンとして設定」を選択します。

図 17. デフォルトバージョンを設定するドロップダウンメニュー

セクション 5.テストインスタンスとカットオーバーインスタンスの起動

最初にテストインスタンスを起動し、テストインスタンスで問題が無いことを確認した後カットオーバーに進みます。これは、カットオーバーのプロセスを完了する前に、インスタンスで問題が発生しないかどうかを事前に検証するためです。

  1. ソースサーバーの [移行ライフサイクル] 列に [テストの準備完了] と表示され、データレプリケーションステータスが正常となっているを確認します。
  2. 次に、ソースサーバーを選択し、[テストおよびカットオーバー] から [テストインスタンスを起動] を選択します。

図 18. [テストおよびカットオーバー] から[テストインスタンスを起動] を選択

  1. テストインスタンスの起動に成功すると、[アラート]列に [起動済み]と表示されます。サーバーを選択し、[移行ダッシュボード]を表示して確認することもできます。起動ステータスが[成功]と表示されると、起動したテストインスタンスを EC2 で表示し、パブリック IPv4 アドレスを開くオプションが表示されます。これはカットオーバーインスタンスでも同様に表示されます。
  • (オプション) 検証に失敗した場合、[アラート]列にエラーメッセージが表示されます。再試行する前にサーバーのトラブルシューティングを行えるように、[移行ライフサイクル]を[テストの準備完了]に戻すオプションを選択できます。エラー一覧とトラブルシューティング方法については、こちらをご覧ください。
  1. テストが成功したら、[テストおよびカットオーバー]に移動し、[カットオーバーの準備完了] としてマークできます。次に、[カットオーバーインスタンスを起動] を選択します。テストと同様に、[アラート]列に [起動済み] ステータスが表示されれば、カットオーバーが成功したことがわかります。ソースサーバー名を選択して、移行ダッシュボードを表示することもできます。

図 19. [テストおよびカットオーバー] から [カットオーバーインスタンスを起動]を選択

  1. 次に、ソースサーバーのリストからソースサーバーを選択し、[移行ダッシュボード]から EC2 へのリンクを選択します。

図 20. 移行ダッシュボードで、起動した EC2 カットオーバーインスタンスに遷移

  1. インスタンス概要から、新しいインスタンスのパブリック IPv4 アドレスを確認し、IPv4 アドレスを使用して WordPress ページにアクセスします。

図 21. カットオーバーインスタンスの EC2 概要とパブリック IPv4 アドレス

  1. IPv4 アドレスにアクセスし WordPress ページが機能していれば、カットオーバーは成功しています。移行を完了するには、コンソールで AWS MGN サービスに戻り、ソースサーバー に移動します。
  2. ソースサーバーを選択し、[テストおよびカットオーバー]から[カットオーバーを最終処理]を選択します。最終処理が完了すると、ソースサーバーの移行に使用されたリソースがすべてクリーンアップされ、破棄されます。

図 22. [テストおよびカットオーバー]から[カットオーバーを最終処理]を選択

セクション 6: クリーンアップ

  1. クリーンアップするには、ソースサーバーを選択し、[アクション]から「アーカイブ済みとしてマーク」を選択します。
  2. アーカイブ済みとしてマークされたサーバーは AWS MGN コンソールに表示されなくなります。
  3. (オプション)カットオーバーインスタンスを使用する目的でこれを実行した場合は、このステップに従わないでください。ただし、学習としてこのガイドに従った場合は、ターゲットの EC2 インスタンスを削除して、そのインスタンスとそれに関連する EBS ボリュームのコストが発生しないようにする必要があります。これを行うには、EC2 ダッシュボードにアクセスしてインスタンスを表示します。そこからインスタンスを選択し、[インスタンスの状態] から [インスタンスの終了] を選択します。

結論

このブログ記事では、AWS MGN を使用して Azure から AWS へ仮想マシンを移行する際の主な手順について説明しました。 移行をスムーズに行う方法として、AWS MGN の環境設定の方法、Azure の仮想マシンに MGN エージェントをインストールする手順を解説しました。さらに、AWS 側で起動テンプレートを設定する方法もステップバイステップで説明しました。

AWS MGN は、仮想マシンをクラウド間で移行するプロセスを簡略化することを目的としており、互換性の評価、データレプリケーション、カットオーバーなどのタスクを高度に自動化します。 この記事は特に Azure VM から AWS への移行に焦点を当てていますが、MGN はオンプレミス、Azure、GCP、AWS など、異なる環境間での異機種移行もサポートしています。 組織は、アプリケーションポートフォリオと要件を評価し、AWS MGN が自社のクラウド移行戦略とロードマップに適合し、どの部分で活用できるかを判断することができます。

翻訳はソリューションアーキテクト 駒野 達也 が担当しました。原文はこちらです。