App Service Migration Assistant を使って、オンプレミスのASP.​NET Web Formsアプリケーションを Azure App Service へ移行する

2021.08.14

いわさです。

Azureにはいくつかの移行機能で構成された、Azure Migrateと呼ばれる移行サービスが用意されています。
その中にApp Service Migration Assistantというツールがあります。

このツールを使うと、オンプレミスで稼働しているASP.NETアプリケーションをAzure App Serviceへ移行し、PaaS化することが可能です。

実際のところ、様々な外部サービスとの依存などを無視することが出来て、かつシンプルな構成で作成されたASP.NETアプリであれば、そのままFTPでファイルを移動すればApp Serviceでも動きます。

しかし、このツールを使うと移行前のアセスメントから移行時のリソース作成まで全てツール上で行ってくれるので便利です。

ASP.NET Web Formsで作られた、とあるシステムを様々な環境へ移行したくて、このツールも試してみました。

移行対象のWebアプリを用意

ASP.NET Web Forms (.NET Framework)のアプリケーションです。
デフォルトから少しだけ変えます。

ローカルIISでホストさせます。
ここの手順は本題ではないので割愛します。

移行ツール

以下からインストーラーをダウンロードし、インストールを行います。

インストール後、起動させます。
基本的には画面に従って操作を行っていけば問題なく完了します。

最初に移行対象のWebサイトを選択します。
選択すると、アセスメントの結果が表示されます。

必要に応じてここで表示された警告やエラーの対応を行います。

途中、Azureアカウントとの連携が行われます。
AzureADのサインイン画面に遷移するので、サインインとデバイスコードの入力を行うと連携が完了します。

次に、Azure Migrate Hubリソースが必要になるので、Azureポータル上で作成を行います。
App Service Migration Assistant上のリンクをクリックすることで作成画面に遷移することが可能です。

その後は、移行先Azure App Serviceのリソース情報を入力します。
移行と同時にリソース作成を行ってくれますので、App Serviceの事前作成は不要です。
後述しますが、App Service Planはサイズ決め打ちで作成されるので、こちらについては事前作成しておくのも良いと思います。

ここまで入力すると、あとは移行作業が進んでいきます。

完了すると、Webサイトを開くボタンが表示されるのでデプロイできているか確認してみましょう。

オンプレと同じWebサイトがデプロイされていました。
Azure App Serviceリソースも新規作成されていることが確認出来ると思います。

注意点

App Serviceプランは一旦プレミアムのP1v2で作成されます。
デプロイ後にスケールアップ/スケールダウンを忘れないようにしてください。

さいごに

事前に移行に際しての懸念点がないか、机上でもアプリケーションのチェックをしておくと良いでしょう。

シンプルなデプロイを行っていれば問題ないですが、少しトリッキーなことをやっているとそのままではApp Serviceでは動かない場合がありますので注意です。

  • ポートは80/443でバインドされているか
  • HTTPS構成されている場合は移行後に手動でカスタム証明書をインポートする。あるいはカスタムドメインも移行するはずなのでApp Service証明書を利用する。
  • HTTP以外のプロトコルを使っていないか
  • 複数アプリケーションプールを使用するよう構成されていないか
  • ISAPIフィルターを使っている場合は移行後に評価が必要

などなど、以下にチェック項目がまとまっていますのでご参照ください。