App Service は、スケーラブルな Web サイトと Web アプリケーションをホストするために最適化されたフル マネージドコンピューティング プラットフォーム サービスです。 この記事では、既存のアプリケーションを Azure App Service にリフト アンド シフトする方法、考慮すべき変更、 およびクラウドに移行するための追加リソースについて説明します。 ほとんどの ASP.NET Web サイト (Web フォーム、MVC) とサービス (Web API、WCF) は、変更なしで Azure App Service に直接移動できます。 小さな変更が必要な場合もあれば、リファクタリングが必要なものもあります。
作業を開始する準備はできましたか? ASP.NET + SQL アプリケーションを Azure App Service に発行します。
考慮事項
オンプレミス リソース (SQL Server を含む)
オンプレミス リソースへのアクセスを確認します。これらのリソースは、移行または変更する必要がある場合があるためです。 オンプレミス リソースへのアクセスを軽減するためのオプションを次に示します。
- Azure Virtual Networks を使用して、App Service をオンプレミス リソースに接続する VPN を作成します。
- Azure Relay を使用して、ファイアウォールを変更することなく、オンプレミスのサービスをクラウドに安全に公開します。
- SQL データベースなどの依存関係を Azure に移行します。
- クラウドでサービスとしてのプラットフォーム オファリングを使用して、依存関係を減らします。 たとえば、オンプレミスのメール サーバーに接続するのではなく、 SendGrid を使用することを検討してください。
ポートのバインド
Azure App Service では、HTTP 用のポート 80 と HTTPS トラフィック用のポート 443 がサポートされています。
WCF では、次のバインディングがサポートされています。
バインド | 注記 |
---|---|
BasicHttp |
|
WSHttp |
|
WSDualHttpBinding |
Web ソケットのサポート を有効にする必要があります。 |
NetHttpBinding |
双方向コントラクトに対して Web ソケットのサポートを有効にする必要があります。 |
NetHttpsBinding |
双方向コントラクトに対して Web ソケットのサポートを有効にする必要があります。 |
BasicHttpContextBinding |
|
WebHttpBinding |
|
WSHttpContextBinding |
認証
Azure App Service では、既定では匿名認証がサポートされ、フォーム認証は意図した場合にサポートされます。 Windows 認証は、Azure Active Directory と ADFS との統合でのみ使用できます。 オンプレミスのディレクトリを Azure Active Directory と統合する方法の詳細について説明します。
GAC 内のアセンブリ (グローバル アセンブリ キャッシュ)
これはサポートされていません。 必要なアセンブリをアプリの \bin フォルダーにコピーすることを検討してください。 サーバーにインストールされているカスタム .msi ファイル (PDF ジェネレーターなど) は使用できません。
IIS 設定
従来、アプリケーションの applicationHost.config を介して構成されたすべてが、Azure portal を使用して構成できるようになりました。 これは、AppPool のビット数、WebSocket の有効化/無効化、マネージド パイプライン バージョン、.NET Framework バージョン (2.0/4.0) などにも適用されます。 アプリケーション設定を変更するには、Azure portal に移動し、Web アプリのブレードを開き、[アプリケーション設定] タブを選択します。
IIS5 互換モード
IIS5 互換モードはサポートされていません。 Azure App Service では、各 Web アプリとその下にあるすべてのアプリケーションが、特定の アプリケーション プールのセットを使用して同じワーカー プロセスで実行されます。
IIS7 以降のスキーマ コンプライアンス
一部の要素と属性は、Azure App Service IIS スキーマで定義されていません。 問題が発生した場合は、 XDT 変換の使用を検討してください。
サイトごとに 1 つのアプリケーション プール
Azure App Service では、各 Web アプリとその下にあるすべてのアプリケーションが同じアプリケーション プールで実行されます。 共通設定を使用して 1 つのアプリケーション プールを確立するか、アプリケーションごとに個別の Web アプリを作成することを検討してください。
COM および COM+ コンポーネント
Azure App Service では、プラットフォームでの COM コンポーネントの登録は許可されません。 アプリで COM コンポーネントを使用する場合は、マネージド コードでこれらのコンポーネントを書き直し、サイトまたはアプリケーションと共に展開する必要があります。
物理ディレクトリ
Azure App Service では、物理ドライブへのアクセスは許可されません。 SMB 経由でファイルにアクセスするには 、Azure Files を使用する必要がある場合があります。 Azure Blob Storage では、HTTPS 経由でアクセスするためのファイルを格納できます。
ISAPI フィルター
Azure App Service では ISAPI フィルターの使用をサポートできますが、ISAPI DLL はサイトと共にデプロイし、web.config経由で登録する必要があります。
HTTPS バインドと SSL
HTTPS バインドは移行されず、Web サイトに関連付けられている SSL 証明書もありません。 ただし、サイトの移行が完了した後は、SSL 証明書を手動でアップロードできます。
SharePoint と FrontPage
SharePoint および FrontPage Server Extensions (FPSE) はサポートされていません。
Web サイトのサイズ
無料サイトのコンテンツのサイズ制限は 1 GB です。 サイトが 1 GB を超える場合は、有料 SKU にアップグレードする必要があります。 「App Service の価格」をご覧ください。
データベース サイズ
SQL Server データベースの場合は、現在の SQL Database の価格を確認してください。
Azure Active Directory (AAD) の統合
AAD は無料アプリでは機能しません。 AAD を使用するには、アプリ SKU をアップグレードする必要があります。 「App Service の価格」をご覧ください。
監視と診断
監視と診断のための現在のオンプレミス ソリューションがクラウドで動作する可能性は低いです。 ただし、Azure には、Web アプリに関する問題を特定してデバッグできるように、ログ記録、監視、診断のためのツールが用意されています。 構成で Web アプリの診断を簡単に有効にでき、Azure Application Insights に記録されたログを表示できます。 Web アプリの診断ログを有効にする方法の詳細について説明します。
接続文字列とアプリケーション設定
アプリケーションで使用される機密情報を安全に格納するサービスである Azure KeyVault の使用を検討してください。 または、このデータを App Service 設定として格納することもできます。
DNS(ドメイン・ネーム・システム)
アプリケーションの要件に基づいて DNS 構成を更新することが必要になる場合があります。 これらの DNS 設定は、App Service の カスタム ドメイン設定で構成できます。
Windows コンテナーを使用した Azure App Service
アプリを App Service に直接移行できない場合は、Windows コンテナーを使用して App Service を検討してください。これにより、GAC、COM コンポーネント、MSI、.NET FX API、DirectX などのフル アクセスが可能になります。
こちらも参照ください
.NET