この記事では、クラウド オペレーターが Azure Stack Hub で Azure アプリ Service を提供するために課金される方法と、サービスを使用するためにテナントに課金する方法について説明します。
課金の概要
Azure Stack Hub クラウド オペレーターは、Azure アプリ Service on Azure Stack Hub を Azure Stack Hub スタンプにデプロイして、Azure アプリ Service と Azure Functions のテナント機能を顧客に提供することを選択できます。 Azure App Service リソース プロバイダーは、インフラストラクチャ層と worker 層の間で分割できる複数種類のロールで構成されています。
インフラストラクチャ ロールは、サービスの中核的な運用に必要なので課金されません。 クラウド オペレーターのテナントの要望に対応するために、必要に応じてインフラストラクチャ ロールをスケールすることができます。 インフラストラクチャ ロールは以下のとおりです。
- コントローラー
- 管理ロール
- ディストリビューターのプロパティ
- フロント エンド
worker 層は、共有と専用という 2 つの主要な種類で構成されます。 worker の使用量には、次の基準に従ってクラウド オペレーターの既定のプロバイダー サブスクリプションに課金されます。
共有 worker
共有 worker はマルチテナントであり、多数のテナントに対して無料で共有の App Service プランと従量課金ベースの Azure 関数をホストします。 Azure App Service リソース プロバイダーで準備完了とマークされている場合、共有 worker から使用量の測定が発行されます。
専用 worker
専用 worker は、テナントが作成した App Service プランに関連付けられています。 たとえば、S1 SKU では、テナントは既定で 10 インスタンスにスケーリングできます。 テナントが S1 App Service プランを作成すると、Azure App Service によって、Small worker 層スケール セット内のインスタンスの 1 つがそのテナントの App Service プランに割り当てられます。 割り当てられた worker は、他のテナントに割り当てることができなくなります。 テナントが App Service プランを 10 インスタンスにスケーリングすることを選択した場合、使用できるプールからさらに 9 個の worker が削除され、テナントの App Service プランに割り当てられます。
次の場合には、専用 worker に対して測定が発行されます。
- Azure App Service リソース プロバイダーで準備完了とマークされます。
- App Service プランに割り当てられます。
この課金モデルを使用すると、クラウド オペレーターは、テナントの App Service プランによって実質的に予約されるまで worker 料金を支払うことなく顧客が使用できる状態の専用 worker のプールをプロビジョニングすることができます。
たとえば、Small worker 層に 20 個の worker があるとします。 その場合、5 件の顧客にそれぞれ 2 つの S1 App Service プランを作成し、それぞれが 2 つのインスタンスに App Service プランをスケールする場合、使用できる worker はなくなります。 その結果、顧客や新規の顧客がスケールアウトしたり、新しい App Service プランを作成したりする容量もなくなります。
クラウド オペレーターは、Azure Stack Hub 管理の Azure App Service 構成内の worker 層を調べることで、worker 層あたりの現在使用できる worker 数を確認できます。
Azure Stack Hub の使用状況サービスを使用して顧客の使用量を確認する
クラウド オペレーターは Azure Stack Hub テナント リソース使用量 API に対してクエリを実行し、顧客の使用量情報を取得できます。 テナントの使用量を説明するために App Service によって発行される個々の測定についてはすべて、使用量についての FAQ に関する記事をご覧ください。 これらの測定を使用して顧客のサブスクリプションごとの使用量を計算し、料金を計算できます。
よく寄せられる質問
前提条件に必要な SQL Server とファイル サーバー インフラストラクチャのライセンスを取得するにはどうすればよいですか?
Azure アプリ サービス リソース プロバイダーに必要な SQL Server とファイル サーバー インフラストラクチャのライセンスについては、 Azure Stack Hub に App Service をデプロイするための前提条件を参照してください。
「使用量に関する FAQ」には、テナントの測定が記載され、測定の価格は記載されていません。 どこで確認できますか?
クラウド オペレーターは、顧客に独自の価格モデルを自由に適用できます。 使用量サービスから使用量の測定が提供されます。 その測定量を使用し、独自に決定した価格モデルに基づいて、顧客に課金できます。 価格を設定できるので、オペレーターは他の Azure Stack Hub オペレーターと差別化することができます。
CSP は顧客がサービスを試すための無料 SKU と共有 SKU をどのような方法で提供できますか?
無料 SKU と共有 SKU は共有 worker でホストされるため、クラウド オペレーターには提供するコストが発生します。 そのコストを最小限に抑えるには、共有 worker のサービス レベルを最小限までスケールダウンできます。
重要
Azure App Service on Azure Stack Hub 2020 Q2 において、新規インストールについては、共有 worker の既定のインストーラーが変更されました。 既定では、共有 worker は A4_v2 コンピューティング SKU を使用してプロビジョニングされます。この SKU は、インストール時またはインストール後にオペレーターが変更できます。
たとえば、無料と共有の App Service プラン SKU を提供し、使用量ベースの機能を提供するには、少なくとも 1 つの A1 インスタンスを使用できるようにする必要があります。 共有 worker はマルチテナントなので、複数の顧客アプリをホストし、App Service サンドボックスでそれぞれを個別に分離して保護することができます。 この方法で共有 worker サービス レベルをスケーリングすることによって、出費を 1 か月あたり 1 vCPU のコストに制限できます。
プランで使用するためのクォータを作成できます。それでは、無料 SKU と共有 SKU のみを提供し、顧客が作成できる無料および共有の App Service プランの数を制限します。
課金に役立つサンプル スクリプト
Azure App Service チームは、Azure Stack Hub 使用量サービスの照会を支援するため、PowerShell スクリプトのサンプルを作成しました。 クラウド オペレーターは、これらのサンプル スクリプトを使って、テナントに対する独自の課金を準備できます。 サンプル スクリプトは、GitHub の Azure Stack Hub Tools リポジトリにあります。 App Service のスクリプトは、Usage の下の AppService フォルダーにあります。
次のサンプル スクリプトを使用できます。
- Get-AppServiceBillingRecords: このサンプルでは、Azure Stack Hub Usage API から Azure アプリ Service on Azure Stack Hub の課金レコードをフェッチします。
- Get-AppServiceSubscriptionUsage: このサンプルでは、サブスクリプションあたりの Azure Stack Hub でのサービス使用量Azure アプリ計算します。 このスクリプトでは、Usage API からのデータと、クラウド オペレーターによる測定ごとに提供される価格からのデータに基づいて、使用料が計算されます。
- Suspend-UserSubscriptions: このサンプルでは、クラウド オペレーターによって指定された使用制限に基づいてサブスクリプションを中断または有効にします。