Azure App Service プランの概要

アプリ サービスは、常に "App Service プラン" で実行されます。 また、Azure Functions には、App Service プランで実行するオプションもあります。 App Service プランでは、Web アプリを実行するための一連のコンピューティング リソースを定義します。

特定のリージョン (西ヨーロッパなど) の App Service プランを作成する場合、一連のコンピューティング リソースはそのリージョンで対応するプランに対して作成されます。 この App Service プランに入れたアプリは、App Service プランで定義されたとおりにこれらのコンピューティング リソースで実行されます。 各 App Service プランは以下を定義します。

  • オペレーティング システム (Windows、Linux)
  • リージョン (米国西部、米国東部など)
  • VM インスタンスの数
  • VM インスタンスのサイズ (小、中、大)
  • 価格レベル (Free、Shared、Basic、Standard、Premium、PremiumV2、PremiumV3、Isolated、IsolatedV2)

App Service プランの "価格レベル" は、取得する App Service の機能とプランの価格を決定します。 App Service プランで使用できる価格レベルは、作成時に選択したオペレーティング システムによって異なります。 価格レベルには次のカテゴリがあります。

  • 共有コンピューティング: 2 つの基本レベルである FreeShared は、他のお客様のアプリを含む他の App Service アプリと同じ Azure VM 上でアプリを実行します。 これらのレベルでは、共有リソースで実行される各アプリに CPU クォータが割り当てられ、リソースはスケールアウトできません。これらのレベルは、開発とテストの目的でのみ使用されることが想定されています。
  • 専用のコンピューティング: BasicStandardPremiumPremiumV2PremiumV3 の各レベルの場合、アプリは専用の Azure VM 上で実行されます。 同じ App Service プラン内のアプリのみが同じコンピューティング リソースを共有します。 レベルが高いほど、スケールアウトに使用できる VM インスタンスが多くなります。
  • Isolated: Isolated レベルと IsolatedV2 レベルでは、専用の Azure VM が専用の Azure Virtual Network で実行されます。 アプリに対して、コンピューティングの分離に加え、ネットワークの分離がされます。 最大のスケールアウト機能を提供します。

各レベルには、App Service 機能の特定のサブセットも用意されています。 これらの機能には、カスタム ドメインと TLS/SSL 証明書、自動スケーリング、デプロイ スロット、バックアップ、Traffic Manager の統合などが含まれます。 レベルが高いほど、多くの機能を使用できます。 各価格レベルでサポートされる機能については、App Service プランの詳細に関するページをご覧ください。

Premium V3 価格レベル

PremiumV3 価格レベルでは、Standard レベルと比較して、さらに高速なプロセッサ (仮想 CPU 1 台あたり 195 ACU 以上)、メモリ最適化オプション、SSD ストレージ、4 倍のメモリ対コア比を備えたマシンが保証されます。 PremiumV3 を使用すると、インスタンス数が多いためサポートできるスケールも大きく、その一方で Standard レベルの高度な機能もすべて提供されます。 既存の PremiumV2 レベルで使用可能なすべての機能が、PremiumV3 に含まれています。

このレベルでは、4 対 1 と 8 対 1 のメモリ対コア比率を含む、複数の VM サイズを使用できます。

  • P0v3 (1 vCPU、4 GiB メモリ)
  • P1v3 (2 vCPU、8 GiB メモリ)
  • P1mv3 (2 vCPU、16 GiB メモリ)
  • P2v3 (4 vCPU、16 GiB メモリ)
  • P2mv3 (4 vCPU、32 GiB メモリ)
  • P3v3 (8 vCPU、32 GiB メモリ)
  • P3mv3 (8 vCPU、64 GiB メモリ)
  • P4mv3 (16 vCPU、128 GiB メモリ)
  • P5mv3 (32 vCPU、256 GiB メモリ)

PremiumV3 の価格については、「App Service の価格」を参照してください。

新しい PremiumV3 価格レベルを使用するには、App Service の PremiumV3 レベルの構成に関する記事を参照してください。

アプリの実行とスケールの方法

FreeShared のレベルでは、アプリは共有 VM インスタンス上の CPU 時間 (分) を受け取り、スケールアウトできません。他のレベルでは、アプリは次のように実行およびスケーリングされます。

App Service でアプリを作成すると、それは App Service プランの一部となります。 アプリを実行すると、App Service プランで構成されているすべての VM インスタンスで実行されます。 複数のアプリが同じ App Service プランにある場合、これらはすべて同じ VM インスタンスを共有します。 アプリのデプロイ スロットが複数ある場合は、すべてのデプロイ スロットも同じ VM インスタンスで実行されます。 診断ログを有効にする、バックアップを実行する、または Web ジョブを実行すると、これらもこれらの VM インスタンス上の CPU サイクルとメモリを使用します。

このように、App Service プランは App Service アプリのスケール ユニットです。 プランが 5 つの VM インスタンスを実行するように構成されている場合、プラン内のすべてのアプリが 5 つすべてのインスタンスで実行されます。 プランが自動スケール用に構成されている場合は、プラン内のすべてのアプリが自動スケール設定に基づいて一緒にスケールアウトされます。

アプリのスケールアウトについては、「手動または自動によるインスタンス数のスケール変更」をご覧ください。

App Service プランのコスト

このセクションでは、App Service アプリの課金方法について説明します。 リージョン固有の価格情報の詳細については、「App Service の価格」を参照してください。

Free レベルを除き、App Service プランでは、使用するコンピューティング リソースに対して課金されます。

  • Shared レベルでは、各アプリが CPU の分単位のクォータを受け取るので、各アプリの CPU クォータに対して課金されます。
  • 専用コンピューティング レベル (BasicStandardPremiumPremiumV2PremiumV3) を使用すると、App Service プランによって、アプリがスケーリングされる VM インスタンスの数が定義されるので、App Service プラン内の "各 VM インスタンス" に対して課金されます。 これらの VM インスタンスには、実行されているアプリの数に関係なく、同じ料金が請求されます。 予期しない課金を避けるには、App Service プランのクリーンアップに関するページをご覧ください。
  • Isolated レベルと IsolatedV2 レベルでは、App Service Environment によって、アプリを実行する分離された worker の数が定義されるので、"worker ごと" に課金されます。 さらに、Isolated レベルでは、App Service Environment 自体を実行するための定額のスタンプ料金があります。

使用可能な 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 を使用してアプリを地理的にスケーリングする場合、Azure Traffic Manager も使用状況に基づいて課金されます。 Azure でクロスサービス コストを見積もるには、「料金計算ツール」をご覧ください。

クラウドの支出を最適化して節約しますか?

Azure サービスは有料です。 Azure Cost Management を使用すると、予算を設定して、支出を制御するためのアラートを構成できます。 Cost Management で Azure のコストを分析、管理、最適化しましょう。 詳細については、コスト分析に関するクイック スタートに関するページを参照してください。

アプリに能力や機能の追加が必要になった場合

App Service プランは、いつでもスケールアップまたはスケールダウンできます。 プランの価格レベルを変更するだけなのでシンプルです。 最初に低い価格レベルを選び、後で App Service 機能がさらに必要になったときにスケールアップできます。

たとえば、Free App Service プランで Web アプリのテストを無料で開始できます。 カスタム DNS 名を Web アプリに追加する場合は、プランを Shared レベルにスケーリングしてください。 後で TLS バインドを作成するときに、プランを Basic レベルにスケールアップします。 ステージング環境が必要な場合は、Standard レベルにスケールアップします。 さらに多くのコア、メモリ、ストレージが必要になった場合は、同じレベルのより大きな VM サイズにスケールアップします。

逆も同じように動作します。 上位レベルの能力や機能が不要になったと感じる場合は、下位レベルにスケールダウンして、コストを節約できます。

App Service プランのスケールアップについては、「Azure でのアプリのスケールアップ」をご覧ください。

アプリが他のアプリと同じ App Service プランにある場合は、コンピューティング リソースを分離すると、アプリのパフォーマンスが向上します。 これを行うには、アプリを別の App Service プランに移動します。 詳しくは、「Move an app to another App Service plan (アプリを別の App Service プランに移動する)」をご覧ください。

アプリを新しいプランと既存のプランのどちらに入れる必要があるか

App Service プランが割り当てるコンピューティング リソースの使用料を支払うので (「App Service プランのコスト」をご覧ください)、1 つの App Service プランに複数のアプリを配置するとコストを節約できる可能性があります。 プランに負荷を処理するための十分なリソースがある限り、既存のプランにアプリを追加し続けることができます。 ただし、同じ App Service プラン内のアプリはすべて同じコンピューティング リソースを共有することにご注意ください。 新しいアプリが必要なリソースを持てるかどうかを判断するには、既存の App Service プランの容量と新しいアプリの予想される負荷について理解する必要があります。 App Service プランのオーバーロードは、新規および既存のアプリのダウンタイムを引き起こす可能性があります。

次の場合にはアプリを新しい App Service プランに分離してください。

  • アプリが多くのリソースを消費している。 ホストされているアプリケーションのリソース集中度によっては、実際には数値が低くなる場合があります。ただし、一般的なガイダンスとして、次の表を参照してください。

    App Service プラン SKU 最大アプリ数
    B1、S1、P1v2、I1v1 8
    B2、S2、P2v2、I2v1 16
    B3、S3、P3v2、I3v1 32
    P0v3 8
    P1v3、I1v2 16
    P2v3、I2v2、P1mv3 32
    P3v3、I3v2、P2mv3 64
    I4v2、I5v2、I6v2 vCPU 使用率に制限される最大密度
    P3mv3、P4mv3、P5mv3 vCPU 使用率に制限される最大密度
  • 既存のプランの他のアプリから独立してアプリをスケーリングする必要がある。

  • アプリに別の地理的リージョン内のリソースが必要である。

注意

アクティブなスロットは、同じ App Service プラン上のリソースに対する競合があるため、アクティブなアプリとしても分類されます。

こうすると、アプリの新しいリソース セットを割り当てることができるため、アプリをより効果的に制御できます。

次のステップ