Azure App Service Migration Assistant を使用して Web アプリを評価する

完了

このユニットでは、独自のサーバーで、オンプレミスでホストされている Web アプリを移行するときに発生することがある潜在的な課題の概要を確認します。 Web アプリケーションがインターネット インフォメーション サービス (IIS) の機能に対して持つ依存関係の種類と、それによって問題が発生する理由のコンテキストを提供します。 この重要な背景情報により、評価の必要性をより深く理解するために必要になる可能性のあるコンテキストが提供されます。

Azure App Service に Web アプリケーションを移行する理由

Azure App Service は Web アプリ用のフル マネージド プラットフォームです。 これを使用することにより、最小限のセットアップで Web アプリを実行およびスケーリングできます。 Microsoft では、必要に応じてインフラストラクチャ、オペレーティング システムの更新、負荷分散、スケールアップとスケールダウンのロジックを処理します。

簡略化されたユーザー インターフェイスで設定を構成したり、実行中のアプリケーションのパフォーマンスを調べたりすることはできますが、それ以外にご自分で行うことはほとんどありません。 そのため、Azure App Service は、独自のサーバー環境でアプリケーションを実行する代わりに使用できる魅力的な手段となります。 独自のサーバー環境では、ハードウェア コスト、セットアップ、オペレーティング システムのインストール、更新および構成、サーバー ソフトウェアのインストール、更新および構成などにご自分で対処する必要があります。

いくつかの機能により、Azure App Service での作業が強力なものになります。

自動スケーリング機能を使用すると、管理者は、Web アプリのスケーリングを許可する必要があるインスタンスの最大数とトラフィックのしきい値を設定できます。 その後、App Service の意思決定ロジックによって、スケールアップするかスケールダウンして元に戻すかが決定されます。

デプロイ スロットを使用すると、運用または DevOps で、手動または自動の統合テストを実行できるライブ テストまたはステージング環境に、新しいバージョンの Web アプリケーションをデプロイすることができます。 新しいバージョンがすべてのテストに合格すると、操作で、ステージングされたアプリを運用環境に移動するために "スロットをスワップ" できます。 デプロイ後に問題が発生した場合、操作で再び "スロットをスワップする" ことで、前のバージョンを運用環境に戻すことができます。

App Service 診断では、トラブルシューティング ツールでいくつかの質問に回答できる対話型のインターフェイスが提供されます。 アプリケーションが直面している問題の種類に応じて完全な診断レポートが生成されます。 また、正常性チェック、Application Insights、ナビゲーター (対話型の依存関係図) などのツールは、問題がどこにあるかを把握するのに役立ちます。

Azure App Service Migration Assistant とは

Azure App Service Migration Assistant は、組織がクラウドに移行するのに役立つより大規模なアプリケーション スイートの一部です。 Migration Assistant では、次の 2 つのタスクを実行するガイド付きウィザードと同様のユーザー エクスペリエンスが提供されます。

  1. ここでは、Windows Server にインストールされている特定の Web アプリの評価が実行されます。 また、Web アプリの依存関係を評価し、Web アプリに変更を加えることなく Azure App Service に移行できるかどうかが判断されます。
  2. この評価によって、Web アプリが移行可能であることが証明された場合、Migration Assistant により移行が行われます。 Azure アカウントへのアクセスを Migration Assistant に提供し、使用するリソース グループを選択して、Web アプリの名前を選ぶなど、その他の詳細を指定する必要があります。

または、Azure App Service Migration Assistant によって、より自動化された反復可能な方法で Web アプリケーションを移行するために使用できる Azure Resource Manager テンプレートが生成されます。

評価を行う理由

一部の組織では、Web アプリケーションは当初、そのアプリケーションから常に IIS の低レベルの機能にアクセスできるという前提で構築されました。 たとえば、一部の開発者は、ISAPI フィルター上に、監視、ログ記録、セキュリティなどの機能を構築しました。 このフィルターにより、ASP.NET アプリケーションに渡される前に受信要求へのアクセスが提供されました。 ASP.NET アプリケーションによって生成された送信応答へのアクセスも提供されました。

一方、Azure App Service のようなサービスとしてのプラットフォーム (PaaS) オファリングを使用する利点の 1 つは、クラウド プロバイダー (この場合は Microsoft) でハードウェアとソフトウェアが管理されるため、自分で行う必要がなくなるということです。 これによって、コストと時間を節約することができます。 しかし、これは、ご使用のアプリケーションからアクセスできる Windows Server および IIS の下位レベルの機能が少なくなることを意味します。 アプリケーションがこれらの低レベルの機能に依存している場合は、変更しないと Azure App Service を利用できない可能性があります。

評価でチェックされる問題の種類

Migration Assistant では、Azure App Service で確実にその機能に対応できるようにするため、または Migration Assistant でその機能を自動的に移行できるようにするために、Web アプリケーションの特定の機能を探します。 次の表では、Migration Assistant で行われるチェックについて、いくつかの洞察を示します。

移行対応性チェック 説明
ポートのバインド Azure App Service では標準的な Web トラフィックのみが許可されるため、この移行対応性チェックによって、Web アプリでポート 80 (HTTP トラフィックの場合) と 443 (HTTPS トラフィックの場合) のみがリッスンされることが保証されます。
プロトコル Azure App Service は HTTP および HTTPS プロトコルでのみ機能するため、この移行対応性チェックによって、Web アプリで HTTP ベースのプロトコルのみが処理されることが保証されます。 たとえば、Web アプリが Windows Communication Foundation に依存している場合、この移行対応性チェックに合格しません。
証明書 Azure App Service ではセキュリティ証明書が処理されますが、この移行対応性チェックでは、Migration Assistant によって証明書が自動的に移行されないことが警告されます。
場所タグ 場所タグを使用すると、Web アプリごとに個別の web.config ファイルでホストされているのではなく、サーバーでホストされているすべての Web アプリの構成を単一ファイルに保持できます。 Azure App Service アプリでは、構成済みの IIS applicationhost.config ファイルが使用され、場所タグ機能はサポートされません。 移行する各 Web アプリの設定を、個別の web.config ファイルに移動する必要があります。 この移行対応性チェックによって、場所タグの使用が識別されます。
ISAPI フィルター Azure App Service では、ISAPI フィルターが一部サポートされますが、ISAPI フィルターの実装方法によって異なります。 Migration Assistant では、ISAPI フィルターに依存するアプリケーションは移行されません。 まず、アプリケーションから ISAPI フィルターを削除してから、Azure App Service に手動で ISAPI フィルターを追加する必要があります。
アプリケーション プール Azure App Service ではアプリごとに 1 つのアプリケーション プールがサポートされるため、この移行対応性チェックによって、Web アプリが単一のアプリケーション プールのみに依存することが保証されます。
アプリケーション プール ID Azure App Service アプリは、IIS ワーカー プロセス内でホストされ、このプロセスは、アプリケーション プールに関連付けられたシステム マネージド アカウントで実行されます。 これは、オンプレミスの IIS のインストールで使用される既定の ID でもあります。 この移行対応性チェックによって、Web アプリが既定の ID で実行されるように構成されていることが保証されます。
認証の種類 Azure App Service アプリでは、オンプレミスで実行されている IIS でホストされるアプリとは異なる一連の認証の種類がサポートされます。 この移行対応性チェックによって、Web アプリが匿名認証を使用するように構成されていることが保証されます。 移行後に、Azure App Service で認証の種類を手動で構成することができます。
アプリケーションの設定 この移行対応性チェックでは、web.config ファイルのカスタム アプリケーション設定が警告されます。これを、代わりに [Azure App Service]>[構成]>[アプリケーションの設定] に移動する必要があります。
接続文字列 この移行対応性チェックでは、web.config ファイルに格納されているデータベース接続文字列が、オンプレミス データベースを指しているかどうかを確認します。 該当する場合、Migration Assistant によって、ハイブリッド接続を設定するためのオプションが提示されます。
フレームワーク Migration Assistant では、ASP.NET と PHP のみがサポートされます。 アプリで別のフレームワークを使用している場合は、自動移行を実行できません。
構成エラー オンプレミスの IIS インスタンスが正しく構成されており、スキャン時にエラーが返されないことが Migration Assistant によって保証されます。 この移行対応性チェックによって、移行前に Web アプリに根本的な問題がないことが保証されます。
仮想ディレクトリ Azure App Service では、すべてのファイルが固定のディレクトリ構造に格納されます。 Migration Assistant により、ファイルが適切なサブディレクトリに移動されます。 ただし、UNC 共有でサポートされている仮想ディレクトリを持つアプリケーションを移行することはできません。

この表の情報は、Azure App Service Migration Assistant に関する Wiki を要約したものです。

評価によって問題が検出された場合の対処方法

Azure App Service Migration Assistant によって、Web アプリケーションの評価時に問題が検出された場合、次のことができます。

  • IIS の低レベルの拡張機能に依存する機能を置き換えるために、アプリケーションを更新します。 このタスクは、問題の機能によっては比較的簡単な場合があります。 たとえば、ISAPI フィルターに依存していたカスタム ログ機能を、Azure Application Insights に置き換えることができます。 Application Insights では、アプリケーションに数行のコードを追加するだけで済み、実用的なレポートが豊富に用意されています。
  • 移行の障害となっている機能を一時的に無効にして、アプリケーションを更新します。 Migration Assistant の指示に従って、この操作を行うことができます。
  • Azure 仮想マシンにアプリケーションをそのままデプロイします。 Azure App Service を使用する利点は得られず、オペレーティング システムを維持する必要がありますが、ハードウェアを保守する必要がなくなります。 さらに、すべての Web サービスを 1 か所で管理することもできます。

Azure App Service Migration Assistant に関する Wiki には、評価中に検出された数多くの問題について、考えられる修復手順が含まれています。

要点

このユニットの最も重要なポイントを次に示します。

  • Azure App Service Migration Assistant は、オンプレミスの Web アプリと、Azure App Service でサポートされている機能との間で互換性がない部分を探します。 問題がある場合、通常は、オンプレミスで問題を修正する (または原因となっている機能を無効にする) 方法があります。 その後、Migration Assistant を再試行できます。
  • 障害になる問題がない場合は、Migration Assistant によって、自動的に Web アプリが Azure App Service に移行されます。