"Azure App Service プラン" では、Web アプリを実行するための一連のコンピューティング リソースを定義します。 アプリ サービスは、常に App Service プランで実行されます。 Azure Functionsも一部のシナリオでApp Serviceプランを使用します。
特定のリージョンの App Service プランを作成する場合、そのリージョンのそのプランに対して一連のコンピューティング リソースを作成します。 App Serviceプランに入れたアプリは、その計算リソース上で動作します。
Important
Managed Instanceは、特定の地域でWindowsのウェブアプリ向けに一般的に利用可能で、Pv4およびPmv4の料金プランに限定されています。 Microsoftは今後さらに多くの地域を導入していく予定です。 Managed InstanceはLinuxやコンテナをサポートしていません。
各 App Service プランは以下を定義します。
- オペレーティング システム (Windows、Linux)
- リージョン (米国西部、米国東部など)
- 仮想マシン (VM) インスタンスの数
- VM インスタンスのサイズ (小、中、大)
- 価格レベル (Free、Shared、Basic、Standard、Premium、PremiumV2、PremiumV3、PremiumV4 IsolatedV2)
価格レベル
App Service プランの価格レベルは、取得する App Service の機能とプランの価格を決定します。 App Serviceプランで利用可能な料金層は、オペレーティングシステム、地域、その他の要因によって異なります。
| カテゴリ | レベル | 説明 |
|---|---|---|
| 共有コンピューティング | Free、Shared | 2 つの基本レベルである Free と Shared は、他のお客様のアプリを含む他の App Service アプリと同じ Azure VM 上でアプリを実行します。 これらの階層は、実行する各アプリにCPUノルマを割り当てます。 |
| 専用のコンピューティング | Basic、Standard、Premium、PremiumV2、PremiumV3、PremiumV4 | Basic、Standard、Premium、PremiumV2、PremiumV3、PremiumV4 のレベルでは、専用の Azure VM 上でアプリが実行されます。 同じApp Serviceプラン内のアプリだけが同じVMインスタンスを共有します。 |
| Isolated | IsolatedV2 | IsolatedV2 レベルでは、専用の Azure 仮想ネットワーク上で専用の Azure VM が実行されます。 このレベルでは、アプリに対して、コンピューティングの分離の上にネットワークの分離が提供されます。 他の顧客からの一定の隔離を提供します。 |
各レベルには、App Service 機能の特定のサブセットも用意されています。 これらの機能には、カスタム ドメインと TLS/SSL 証明書、自動スケーリング、デプロイ スロット、バックアップ、Azure Traffic Manager の統合などが含まれます。
プランのその他の比較については、「App Service の制限」を参照してください。
価格情報については、「 App Service の価格」を参照してください。
アプリの実行とスケーリングに関する考慮事項
Free と Shared のレベルでは、アプリは共有 VM インスタンス上の CPU 時間 (分) を受け取り、スケールアウトできません。
他のレベルでは、アプリは次のように実行およびスケーリングされます。
- App Service でアプリを作成すると、それは App Service プランの一部となります。 アプリを実行すると、App Service プランで構成されているすべての VM インスタンスで実行されます。
- 複数のアプリが同じ App Service プランにある場合、これらはすべて同じ VM インスタンスを共有します。
- アプリのデプロイ スロットが複数ある場合は、すべてのデプロイ スロットも同じ VM インスタンスで実行されます。
- 診断ログを有効にする、バックアップを実行する、または Web ジョブを実行すると、これらもこれらの VM インスタンス上の CPU サイクルとメモリを使用します。
- App Service プラン内のすべてのアプリは、基になる同じコンピューティング リソース (VM インスタンス) を共有するため、まとめてスケーリングされます。 手動でも自動スケール ルールでも、プランのスケーリングは、プラン内のすべてのアプリに影響します。
アプリのスケールアウトの詳細については、「Azure での自動スケールの使用」を参照してください。
App Service プランのコスト
このセクションでは、App Service アプリの課金方法について説明します。 リージョン固有の価格情報について詳しくは、「App Service の価格」をご覧ください。
Free レベルを除き、App Service プランでは、使用するコンピューティング リソースに対して課金されます。
- Shared レベル: 各アプリが CPU の分単位のクォータを受け取るので、"各アプリ" の CPU クォータに対して課金されます。
- 専用のコンピュートティア(Basic、Standard、Premium、PremiumV2、PremiumV3、PremiumV4):App ServiceプランはアプリをスケーリングするVMインスタンス数を定義しており、 各VMインスタンス に課金されます。
注
専用のコンピューティング レベルでは、VM リソースは App Service プラン専用であり、他の顧客と共有されません。
ただし、 同じ App Service プラン内に配置するすべてのアプリは、それらの専用リソースを相互に共有します。
つまり、コンピュートはプラン レベルで専用になり、アプリごとのレベルではありません。
アプリごとにコンピューティングを分離するには、別の App Service プランを作成します。
- IsolatedV2 レベル: App Service Environment によって、アプリを実行する分離された worker の数が定義されるので、"各 worker" に対して課金されます。
利用可能な App Service 機能の使用に対して課金されることはありません。 これらの機能には、カスタム ドメイン、TLS/SSL 証明書、デプロイ スロット、バックアップの構成が含まれます。 ただし、次のような例外があります。
- App Service ドメイン: Azure での購入時と毎年の更新時に支払います。
- App Service 証明書: Azure での購入時と毎年の更新時に支払います。
- IP ベースの TLS 接続: IP ベースの TLS 接続ごとに時間単位の課金がありますが、Standard 以上の一部のレベルでは、1 つの IP ベースの TLS 接続が無料で提供されます。 サーバー名表示(SNI)TLS接続は無料です。
App Service を別の Azure サービスと統合する場合は、そのサービスの料金の考慮が必要な場合があります。 例えば、Azure Traffic Managerを使ってアプリを地理的にスケールする場合、Traffic Managerの料金が発生します。
ヒント
Azure サービスは有料です。 支出を制御するために、Microsoft Cost Management を使用して予算を設定し、アラートを構成できます。
Cost Management を使用して Azure のコストを分析、管理、最適化できます。 詳細については、コスト分析に関するクイック スタートに関するページを参照してください。
機能や特徴のスケーリング
App Service プランはいつでもスケールアップまたはスケールダウンできます。 プランの価格レベルを変更するだけなのでシンプルです。 最初は低価格帯を選び、後で機能が必要になったときにスケールアップできます。
たとえば、Free レベルの App Service プランで Web アプリのテストを無料で開始できます。 カスタムDNS名をウェブアプリに追加する際は、プランをより高いティアに拡大してください。
逆もこの同じプロセスが機能します。 上位レベルの能力や機能が不要になった場合は、下位レベルにスケールダウンして、コストを節約できます。
App Service プランのスケールアップについて詳しくは、「Azure App Service でアプリをスケールアップする」をご覧ください。
アプリが他のアプリと同じ App Service プランにある場合は、コンピューティング リソースを分離すると、アプリのパフォーマンスが向上する可能性があります。 アプリを新しいApp Serviceプランに移行することでリソースを分離できます。
アプリに新しいプランを使用するか、既存のプランを使用するかの決定
コストに関する前のセクションで説明したように、App Service プランによって割り当てられるコンピューティング リソースの料金を支払います。 複数のアプリを 1 つの App Service プランに組み込むことで、コストを削減できる可能性があります。 ただし、そのプランにアプリ用の十分なリソースがあることを確認してください。
同じApp Serviceプラン内のアプリは同じコンピュートリソースを共有します。 新しいアプリに必要なリソースがあるかどうかを判断するには、プランの容量とアプリのリソース要件を理解する必要があります。
次の場合にはアプリを新しい App Service プランに分離してください。
アプリが多くのリソースを消費している。 一般的なガイダンスについては、次の表を使用してください。
App Service プラン 最大アプリ数 B1、S1、P1v2、I1v1 8 B2、S2、P2v2、I2v1 16 B3、S3、P3v2、I3v1 32 P0v3、P0v4 8 P1v3、P1v4、I1v2 16 P2v3、P2v4、I2v2、P1mv3、P1mv4 32 P3v3、P3v4、I3v2、P2mv3 64 I4v2、I5v2、I6v2 vCPU 使用率による最大密度 P3mv3、P3mv4、P4mv3、P4mv4、P5mv3、P5mv4 vCPU 使用率による最大密度 既存のプランの他のアプリから独立してアプリをスケーリングする必要がある。
アプリに別の地理的なリージョンのリソースが必要である。 こうすると、アプリの新しいリソース セットを割り当てることができるため、アプリをより効果的に制御できます。
注
アクティブなスロットは、同じ App Service プランのリソースに対する競合があるため、アクティブなアプリとしても分類されます。
Azure App Service 上のマネージド インスタンス
Managed Instance は、オペレーティング システムのカスタマイズ、オプションのプライベート ネットワーク、レガシ Windows コンポーネントのサポートを必要とする Windows Web アプリのプラン スコープ ホスティング オプションです。 仮想マシンを管理せずにOSレベルの制御が必要なアプリケーション向けに設計されています。
主な機能:
- 永続的な OS とミドルウェアのセットアップ用の PowerShell 構成スクリプト
- プライベート DNS とのプラン レベルの仮想ネットワーク統合
- セキュリティで保護された構成のための Azure Key Vault ベースのレジストリ アダプター
- ストレージ マウント (Azure Files、UNC パス、ローカル一時ストレージ)
- 診断のための Azure Bastion 経由の Just-In-Time RDP アクセス
- インフラストラクチャ認証のためのプランレベルのマネージド アイデンティティ
- カスタム ランタイムをサポートするプレインストール済みの .NET Framework (3.5、4.8) および .NET 8
- 最適な用途: Windows 固有の依存関係を必要とするレガシ .NET Framework アプリ、完全な書き換えを行わない段階的な最新化、コンプライアンスのための計画レベルのネットワーク分離。
現在の制限:Windowsのみ、Pv4/Pmv4 SKUです。 Linux、コンテナ、または無料・共有・専用のティアでは利用できません。
特定のSKUの地域ごとの可用性を確認するには、Azure CLI バージョン2.82.0以降を使用しています:
az appservice list-locations --managed-instance-enabled --sku <sku>