Azure Migrateを使って、AWSからAzureへ仮想マシンを移行する

2021.08.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

前回はAzure Migrateを使って、AWS上のAmazon Linux 2インスタンスに対してAzureへの移行性の評価を行いました。

今回はAzure Migrateを使って、実際に移行を行ってみました。

構成

構成としては前回と同様、アプライアンスサーバーをWindows Server 2016で用意します。
同一VPCのプライベートサブネットにAmazon Linux 2、Red Hat Enterprise Linux 8.3、Windows Server 2019のインスタンスを作成しました。
これらを移行対象としたいと思います。

今回はエージェントを使って、移行対象サーバーからアプライアンスサーバーへデータを送信し、アプライアンスサーバーがAzureへアクションを行う方式を取ります。

レプリケーションアプライアンス準備

まず、Azure Migrateでプロジェクトを作成します。

移行ツールのServer Migrationで検出を選択します。

評価を行った際と同様です。
アプライアンスソフトウェアをダウンロードし、Windows Server 2016マシンへ転送します。

登録キーもダウンロードして、同様に転送しておきます。セットアップ中に使います。

転送後はWindowサーバー側でインストーラー使ってセットアップを進めていきます。
手順に従っていけばOKです。

私は前回の評価用のアプライアンス環境と同環境に構築していたせいかエラーになりました。

前提条件のチェックステップがあり、そこでIISのチェックで失敗します。

Setup found one or more website configured on this server. Setup cannot proceed to install the configuration server as it needs to use the Default Website for the configuration server's IIS configuration.

No websites should be configured on this server

解決するためにアプライアンスサーバーのIISからWebサイト削除しました。
デフォルトWebサイトを使うように構成されているようで、既にサイトが存在するとエラーになるようです。

無事、前提条件チェックを通過しました。

さて、AWSの場合だと、Network Selectionフェーズでおそらくエラーになりますが、明示的にネットワークインターフェースを選択してやれば良いです。

セットアップが完了すると、パスフレーズがダイアログに表示され、クリップボードへコピーされます。
このパスフレーズはテキストファイルに保存しておいてください。

後ほど移行対象インスタンスのセットアップ時にテキストファイルを使います。

インストールが完了すると、デスクトップにショートカットが追加されています。
そちらからアカウント情報や認証ファイルを登録することで、Azureポータル上への連携が完了します。

アカウント情報は guest / username / password で良いです。
ダミーアカウントを作成しそれを使うようにMicrosoftのドキュメントでも案内されています。

最後に、Azureポータル上で登録の最終処理として、アプライアンスの登録を行って、レプリケーションアプライアンスの準備は完了です。

移行サーバーへモビリティサービスエージェントをセットアップ

ここからは移行サーバーをセットアップします。

移行サーバーにモビリティサービスエージェントをセットアップし、レプリケーションアプライアンスを経由してレプリケーションを行います。

アプライアンスサーバー上に各OS用のセットアップツールがあるのでそれを使ってセットアップします。
Microsoft-ASR_で始まるプラットフォーム別のモジュールです。

ここからは各移行サーバーへリモート接続し、コマンドラインでセットアップを行います。
コマンドは以下へ記載があるので確認してください。

注意点として、この段階でサポートされていないOSは弾かれます。

Amazon Linux 2 や RHEL 8.4 の場合

[ec2-user@ip-10-0-0-33 MobSvcInstaller]$ sudo ./install -r MS -q
Agent you are trying to install/upgrade is not built for , can not be installed on this Operating System. Aborting...
Check the log file /var/log/ua_install.log for detailed diagnostic messages or installation success/failures...
./teleAPIs.sh: line 184: [: ==: unary operator expected
Installer exiting with code: 149

例えば、Amazon Linux 2 はエージェントが対応していないので上記のようにセットアップ出来ません。
また、サポート対象外のOSたとえばRHEL8.4もNGです。

一方、RHEL8.3はセットアップ出来ます。

RHEL 8.3 の場合

[ec2-user@ip-10-0-0-202 MobSvcInstaller]$ sudo ./install -r MS -q
All product pre-requisties are met.
Generating the certificate.
New RPM package InMageVx-9.43.0.0-1 has been successfully installed.

Copying /usr/local/ASR/Vx/bin/involflt.ko.4.18.0-147*.el8*.x86_64 to /lib/modules/4.18.0-240.15.1.el8_3.x86_64/kernel/drivers/char
Filter driver kernel module is not loaded. Attempting to load it, please wait...
Filter driver kernel module loaded successfully.
Filter device /dev/involflt created successfully.
Generating initrd images.
Generated initrd images successfully.
Installation process has finished.
Check the log file /var/log/ua_install.log for detailed diagnostic messages or installation success/failures...
Vx agent installation exit code : 0.
Check the log file /var/log/ua_install.log for detailed diagnostic messages or installation success/failures...
Installer exiting with code: 0

サポートバージョンは以下を参考にしてください。

検出と移行

移行元サーバーへモビリティサービスのセットアップが完了したら、Azureポータル上でも検出済みサーバーに追加されるので、レプリケート操作を行います。

流れとしては、以下の順序となります。

  1. 検出される
  2. レプリケートする
  3. 完了したら移行する

レプリケート操作時は、どの検出済み移行元サーバーを、どういうAzure仮想マシンとして移行するかを定義します。
なお、VNETの自動作成機能はないので事前に準備しておく必要があります。

移行後の仮想マシン名もここで決めますが、デフォルトではAWSのマシン名をそのまま持ってくるので、命名規則エラーになりやすいです。

以下を事前に確認しておきましょう。
Microsoft.ComputevirtualMachinesあたりです。

レプリケート

レプリケートは一番時間がかかる部分です。
初期状態のAWS仮想マシンで30分から1時間程度かかりました。

レプリケート完了時には、まだ仮想マシンは作成されていません。

移行

プロテクト状態になったものは移行が可能です。
移行操作は速いです、数分でした。

動作確認

移行が完了したら、接続してみましょう。

認証情報はAWS仮想マシンと同じです。

Windows Server 2019

ユーザー名とパスワードでリモートデスクトップ接続します。
AWS上でセットアップに使ったファイルが残っていますね。
IISなどにセットアップしたアプリケーションも移行出来ています。

RHEL 8.3

秘密鍵でSSH接続します。
こちらもセットアップに使用したファイルなどがそのまま残っており、インストールしたパッケージなどもそのまま同じ状態だったので、移行に成功していますね。

iwasa.takahito@HOGE keypair % ssh -i ~/keypair/xxxxxx.pem ec2-user@20.89.136.217
[ec2-user@ip-10-0-0-202 ~]$ ls
Microsoft-ASR_UA_9.43.0.0_RHEL8-64_GA_16Jul2021_Release.tar.gz  pass.txt
[ec2-user@ip-10-0-0-202 ~]$ cat /etc/redhat-release
Red Hat Enterprise Linux release 8.3 (Ootpa)

さいごに

キレイに移行することが出来ましたが、サポート対象OSには注意が必要ですね。

移行後はAzureマネージドな機能を使うことが出来るようになります。
Azure BackupやらSecurity CenterやDisk Encryptionなどの設定を行いましょう。

参考