App Service の概要
Note
2024 年 6 月 1 日より、新しく作成されたすべての App Service アプリには、名前付け規則 <app-name>-<random-hash>.<region>.azurewebsites.net
を使用して一意の既定のホスト名を生成するオプションが備わります。 既存のアプリ名は変更されません。
例: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
詳細については、「App Service リソースの一意の既定のホスト名」を参照してください。
Azure App Service は、Web アプリケーション、REST API、およびモバイル バックエンドをホストするための HTTP ベースのサービスです。 .NET、.NET Core、Java、Node.js、PHP、Python の内の好みの言語で開発を行うことができます。 アプリケーションの実行とスケーリングは、Windows ベースの環境と Linux ベースの環境の両方で容易に行うことができます。
App Service は、セキュリティ、負荷分散、自動スケーリング、自動管理などの Microsoft Azure の力をアプリケーションに付与します。 さらに、Azure DevOps、GitHub、Docker Hub およびその他のソースからの継続的デプロイ、パッケージ管理、ステージング環境、カスタム ドメイン、TLS/SSL 証明書などの DevOps 機能を利用できます。
App Service では、使用した Azure コンピューティング リソースに応じて課金されます。 使用するコンピューティング リソースは、アプリが実行されている "App Service プラン" によって決まります。 詳細については、「Azure App Service プランの概要」を参照してください。
App Service を使用する理由
Azure App Service は、開発者向けのフル マネージド PaaS (サービスとしてのプラットフォーム) 製品です。 App Service の主な機能として、次のようなものがあります。
- 複数の言語とフレームワーク - App Service には、ASP.NET、ASP.NET Core、Java、Node.js、PHP、Python の優れたサポートが存在します。 また、PowerShell などのスクリプトや実行可能ファイルをバックグラウンド サービスとして実行することもできます。
- マネージド運用環境 - App Service が自動的にパッチを適用し、OS と言語フレームワークを管理します。 高品質なアプリの作成に専念し、プラットフォームに関する問題は Azure に任せましょう。
- コンテナー化と Docker - アプリを Docker でコンテナー化し、App Service でカスタムの Windows または Linux コンテナーをホストできます。 選択したサイドカー コンテナーを実行します。 Docker のスキルを App Service に直接移行できます。
- DevOps の最適化 - 継続的インテグレーションと継続的デプロイを、Azure DevOps、GitHub、BitBucket、Docker Hub、または Azure Container Registry で設定できます。 テスト環境やステージング環境を介して更新を反映できます。 App Service でのアプリの管理には、Azure PowerShell またはクロスプラットフォーム コマンド ライン インターフェイス (CLI) を使用します。
- 高可用性を備えたグローバルなスケール - 手動または自動でスケールアップまたはスケールアウトを実行できます。 Microsoft のグローバルなデータセンター インフラストラクチャの任意の場所でアプリをホストすることで、App Service の SLA によって高可用性が保証されます。
- SaaS プラットフォームおよびオンプレミス データへの接続 - エンタープライズ システム (SAP など)、SaaS サービス (Salesforce など)、インターネット サービス (Facebook など) 向けに用意された何百ものコネクタから選択できます。 ハイブリッド接続と Azure Virtual Network を使用して、オンプレミス データにアクセスします。
- セキュリティとコンプライアンス - App Service は ISO、SOC、および PCI に準拠しています。 IP アドレス制限およびマネージド サービス ID を作成します。 サブドメイン テイクオーバーに対する防御を行います。
- 認証 - 組み込みの認証コンポーネントを使用してユーザーを認証します。 Microsoft Entra ID、Google、Facebook、X、または Microsoft アカウントを使用してユーザーを認証します。
- アプリケーション テンプレート - WordPress、Joomla、Drupal など、Azure Marketplace にある詳細な一覧からアプリケーション テンプレートを選択します。
- Visual Studio と Visual Studio Code の統合 - Visual Studio と Visual Studio Code の専用ツールを使用することで、作成、デプロイ、デバッグの作業を効率化することができます。
- Java ツールの統合 - Maven、Gradle、Visual Studio Code、IntelliJ、Eclipse などのお気に入りの開発ツールを終了せずに、開発して Azure にデプロイします。
- API とモバイル機能 - App Service は、RESTful API のシナリオ向けのターンキー CORS サポートを提供し、認証、オフライン データ同期、プッシュ通知などを可能にすることでモバイル アプリのシナリオを簡略化します。
- サーバーレス コード - コード スニペットまたはスクリプトをオンデマンドで実行します。その際、インフラストラクチャを明示的にプロビジョニングまたは管理する必要はなく、コードで実際に使用したコンピューティング時間に対する支払いだけを行います。 (「Azure Functions」を参照してください。)
App Service の他に、Azure では Web サイトと Web アプリケーションをホストするために利用できるサービスも提供しています。 ほとんどの場合は、App Service が最適な方法になります。 マイクロサービス アーキテクチャを実現するには、Azure Spring Apps または Service Fabric を検討してください。 また、コードの実行に使用する VM をより細かく制御する必要がある場合は、Azure Virtual Machines の利用を検討してください。 これらの Azure サービスの中から適切なものを選択する方法の詳細については、「Azure App Service、Virtual Machines、Service Fabric、Cloud Services の比較」を参照してください。
App Service on Linux
App Service では、サポートされているアプリケーション スタック向けに Web アプリを Linux 上でネイティブにホストすることもできます。 また、カスタム Linux コンテナーを実行することもできます (Web App for Containers とも呼ばれます)。
組み込みの言語とフレームワーク
App Service on Linux は、さまざまな言語固有の組み込みイメージをサポートしています。 コードをデプロイするだけで済みます。 サポートされている言語には、Node.js、Java (Tomcat、JBoss、または埋め込み Web サーバーを使用)、PHP、Python、.NET Core が含まれます。 az webapp list-runtimes --os linux
を実行して、最新の言語とサポートされているバージョンを表示します。 アプリケーションに必要なランタイムが組み込みイメージでサポートされていない場合、カスタム コンテナーを使用してデプロイできます。
古くなったランタイムは、ポータルの Web Apps の [作成] および [構成] ブレードから定期的に削除されます。 これらのランタイムは、管理している組織によって非推奨とされたり、重大な脆弱性を持つことが判明すると、ポータルに表示されなくなります。 これらの選択肢は、最もうまく動作する最新のランタイムへと利用者を誘導するために非表示となります。
古くなったランタイムがポータルで非表示になっても、そのバージョンを使用している既存のサイトはすべて引き続き実行されます。 ランタイムが App Service プラットフォームから完全に削除される場合、Azure サブスクリプションの所有者は、削除前に電子メール通知を受け取ります。
ポータルに表示されなくなった古いランタイム バージョンを使用して別の Web アプリを作成する必要がある場合は、言語構成ガイドを参照して、使用中のサイトのランタイム バージョンを取得する方法に関する手順を確認してください。 Azure CLI を使用すると、同じランタイムを使用して別のサイトを作成できます。 あるいは、ポータルの Web アプリ ブレード上の [テンプレートのエクスポート] ボタンを使用して、サイトの ARM テンプレートをエクスポートすることもできます。 このテンプレートを再利用して、同じランタイムと構成で新しいサイトをデプロイできます。
制限事項
- App Service on Linux は、Shared 価格レベルではサポートされていません。
- Azure portal では、Linux アプリで現在動作している機能のみが表示されます。 機能が有効になると、ポータルでアクティブになります。
- 組み込みイメージにデプロイされているコードとコンテンツには、Azure Storage によってサポートされる、Web コンテンツ用のストレージ ボリュームが割り当てられます。 このボリュームのディスク待ち時間は、コンテナー ファイルシステムの待ち時間よりも長く、可変です。 コンテンツ ファイルに対する高負荷の読み取り専用アクセスが必要なアプリでは、コンテンツ ボリュームではなく、コンテナー ファイルシステムにファイルを配置するカスタム コンテナー オプションを使用した方が有益な場合があります。
App Service 環境
App Service Environment は、App Service アプリを大規模かつ安全に実行するための完全に分離された専用の環境を提供する、Azure App Service の機能です。 サポート インフラストラクチャが共有される App Service オファリングとは異なり、App Service Environment では、コンピューティングは各利用者専用となります。 App Service Environment と App Service の違いの詳細については、その比較に関する記事を参照してください。
次のステップ
最初の Web アプリを作成します。