この記事では、Azure App Service のコストを計画および管理する方法について説明します。
まず、リソースを追加する前に、Azure 料金計算ツールを使用して App Service のコストを見積もることができます。
次に、App Service に Azure リソースを追加するときに、サービスの推定コストを確認します。
App Service リソースの使用を開始したら、 Cost Management 機能を使用して予算を設定し、コストを監視します。 また、予想コストを確認し、支出の傾向を特定して、対処が必要な領域を特定することもできます。
完全な課金モデルを理解する
Azure App Service は Azure インフラストラクチャ上で実行され、新しいリソースをデプロイするとコストが発生します。 その他のインフラストラクチャ コストが発生する可能性があることを理解しておくことが重要です。
App Service のコストは、Azure の請求書の月額料金の一部にすぎません。 この記事では、App Service のコストを計画および管理する方法について説明しますが、Microsoft 以外のサービスを含め、Azure サブスクリプションで使用されているすべての Azure サービスとリソースに対して課金されます。
課金方法
App Service リソースを作成または使用すると、以下のように料金が発生します。
- App Service プランの価格レベルに基づく 1 時間ごとの料金。秒単位まで時間割計算されます。
- 料金は、仮想マシン (VM) インスタンスが割り当てられる時間に基づいて、プラン内のスケールアウトされた各インスタンスに適用されます。
App Service のその他のコスト リソースは次のとおりです。
- App Service ドメイン: 自動更新を有効にした場合、サブスクリプションはドメイン登録に対して年単位で課金されます。
- App Service 証明書: 購入時の 1 回限りの料金。 セキュリティで保護するサブドメインが複数ある場合は、複数の標準証明書ではなく、1 つのワイルドカード証明書を購入することでコストを削減できます。
- IP ベースの SSL バインド: バインドは、アプリ レベルで証明書に構成されます。 バインディングごとにコストが発生します。 Standard レベル以上では、最初の IP ベースのバインディングには課金されません。
課金サイクルの終了時に、各 VM インスタンスの料金が表示されます。 請求書には、App Service に対して発生したすべてのコストに関するセクションが表示されています。 測定ごとに個別の行項目があります。
詳細については、「App Service の価格」を参照してください。
発生する可能性があるその他のコスト
App Service で使用する機能によっては、次のコスト発生リソースが作成される場合があります。
- 分離層: App Service 環境には Azure Virtual Network が必要であり、個別に課金されます。
- バックアップ: バックアップを作成するには Azure Storage アカウント が必要であり、個別に課金されます。
- 診断ログ: ログ オプションとして ストレージ アカウント を選択するか、 Azure Log Analytics と統合できます。 これらのサービスは別途課金されます。
- App Service 証明書: Azure で購入する証明書は、Azure Key Vault に保持する必要があります。これは個別に課金されます。
リソースの削除後に発生する可能性があるコスト
App Service プラン内のすべてのアプリを削除しても、プランの料金は、構成された価格レベルとインスタンスの数に基づいて引き続き発生します。 不要な料金を回避するには、プランを削除するか、Free レベルにスケール ダウンします。
Azure App Service リソースを削除した後、関連する Azure サービスのリソースは引き続き存在する可能性があります。 これらを削除するまで、これらのコストは発生し続けます。 以下に例を示します。
- Isolated 層の App Service プラン用に作成した仮想ネットワーク
- バックアップまたは診断ログを格納するために作成したストレージ アカウント
- App Service 証明書を格納するために作成した Key Vault
- 診断ログを送信するために作成した Log Analytic 名前空間
- まだ期限が切れていないインスタンスまたはスタンプ予約
Azure 前払いを使用する
App Service の料金は、Azure 前払いクレジットで支払うことができます。 ただし、Azure Marketplace の製品やサービスを含め、Microsoft 以外の製品やサービスの料金の支払いに Azure 前払いクレジットを使用することはできません。
コストの見積もり
App Service のコストを事前に見積もり、最適化する簡単な方法は、Azure 料金計算ツールを使用することです。
料金計算ツールで、[製品] タブの [App Service] タイルを選択します。次に、電卓の App Service セクションまで下にスクロールします。 次のスクリーンショットは一例であり、現在の価格は反映されていません。
Azure portal で推定料金を検討する
App Service アプリまたは App Service プランを作成すると、推定コストが表示されます。
アプリを作成し、見積もり価格を表示するには、次の手順を実行します。
Azure portal にサインインし、[ App Services] を選択します。
[+作成] を選択し、ドロップダウン メニューから [Web アプリ] を選択します。
リソース グループ、名前、ランタイム スタックを指定します。
[ 価格プラン] で、[ 価格プランの探索] を選択します。
見積もり価格を確認します。 次のスクリーンショットは一例であり、現在の価格は反映されていません。
Azure サブスクリプションに使用制限がある場合は、Azure により、クレジット額を超える支出が防止されます。 Azure リソースを作成して使用するときに、クレジットが使用されます。 クレジットの上限に達すると、その請求期間の残りの期間は、デプロイしたリソースが無効にされます。 クレジットの上限は変更できませんが、上限を取り除くことは可能です。 使用制限の詳細については、「Azure の使用制限」を参照してください。
コストを最適化する
Basic レベルでは、App Service アプリは、それらをホストする App Service プランによって課金されます。 App Service のデプロイに伴うコストは、いくつかの主な要因によって異なります。
- 価格レベル: App Service プランの SKU とも呼ばれます。 レベルが高いほど、より多くの CPU コア、メモリ、ストレージ、機能、またはそれらの組み合わせが提供されます。
- インスタンス数: 専用レベル (Basic 以上) をスケールアウトでき、スケールアウトされたインスタンスごとにコストが発生します。
- スタンプ料金: Isolated レベルでは、ホストされているアプリまたは worker インスタンスの数に関係なく、App Service 環境で一定の料金が発生します。
App Service プランでは、複数のアプリをホストできます。 デプロイによっては、1 つの App Service プランでより多くのアプリをホストするコストを節約したり、より少ない App Service プランでアプリをホストしたりするコストを節約できます。
詳細については、 App Service プランの概要に関するページを参照してください。
非運用環境のワークロード
低コストまたは最小限のコストでアプリまたはソリューションをテストするには、まず、共有インスタンスでホストされている 2 つのエントリ レベルの価格レベルである Free と Shared を使用します。 専用インスタンスでパフォーマンスを向上させてアプリをテストするには、Basic レベルにアップグレードできます。これは、Windows と Linux の両方のアプリをサポートします。
注
Azure Dev/Test の価格: より高いレベル ( Isolated を除くすべてのレベル) を必要とする実稼働前ワークロードをテストするために、Visual Studio サブスクライバーは、大幅な割引を提供する Azure Dev/Test 価格を利用することもできます。
Free と Shared の両方のレベル、および Azure Dev/Test 価格の割引には、返金制度を備えた SLA は設定されていません。
運用ワークロード
運用ワークロードには、専用の Standard 価格レベル以上が推奨されます。 レベルが高くなると価格も高くなりますが、メモリとストレージが増加し、ハードウェアのパフォーマンスが向上するため、コンピューティング インスタンスあたりのアプリ密度が高くなります。 これは、同じ数のアプリに対するインスタンス数が少なくなるため、コストが削減されることを意味します。 実際、Premium V3(Isolated レベル以外で最上位のレベル) は、大規模にアプリにサービスを提供するためのコスト効率の最も高い方法です。 節約額を増やすために、Premium V3 の予約で大幅な割引を受けることができます。
注
Premium V3 では、Windows コンテナーと Linux コンテナーの両方がサポートされます。
希望する価格レベルを選択したら、アイドル状態のインスタンスを最小限に抑える必要があります。 スケールアウト配置では、使用率が低いコンピューティング インスタンスで無駄なコストが発生する可能性があります。 Standard レベル以上で利用可能な自動スケールを構成する必要があります。 スケールアウト スケジュールとメトリックベースのスケールアウト ルールを作成すると、必要なインスタンスに対してのみ料金が発生します。
Azure の予約
1 年以上にわたって既知の必要最小限のコンピューティング インスタンスを利用する予定の場合、Premium V3 レベルを利用し、それらのインスタンスを 1 年または 3 年単位で予約することにより、インスタンスのコストが大幅に削減されます。 毎月、インスタンスあたり最大 55% のコストを削減できます。 2 種類の予約を利用できます。
- Windows (またはプラットフォームに依存しない):サブスクリプション内の Windows または Linux インスタンスに適用できます。
- Linux 固有: サブスクリプション内の Linux インスタンスにのみ適用されます。
予約インスタンスの価格は、最大で予約したインスタンス数まで、サブスクリプション内の適用可能なインスタンスに適用されます。 予約インスタンスは請求に関するものであり、特定のコンピューティング インスタンスに関連付けられません。 予約期間中はいつでも、実行したインスタンス数が予約数よりも少ない場合でも、予約インスタンスの料金を支払うことになります。 予約期間中はいつでも、実行したインスタンス数が予約数よりも多い場合、追加インスタンスに対して通常の発生料金を支払うことになります。
Isolated レベル (App Service Environment) でも、割引価格の 1 年間および 3 年間の予約がサポートされます。 詳細については、Azure App Service に予約割引を適用する方法に関する記事を参照してください。
コストを監視する
App Service で Azure リソースを使用する場合、コストが発生します。 Azure リソースの使用のユニット コストは、期間 (秒、分、時間、日) によって異なります。 App Service の使用が開始されるとすぐにコストが発生し、コスト分析でコストを確認できます。
コスト分析を使用すると、さまざまな期間について、App Service のコストをグラフや表で表示できます。 たとえば、日単位、現在の月、以前の月、年単位などがあります。 予算や予想コストを基準としてコストを表示することもできます。 時間経過を示す、より長い期間のビューに切り替えると、支出の傾向を特定するのに役立ちます。 超過出費が発生した可能性のある時期を確認できます。 予算を作成したら、それを超えた場所も簡単に確認できます。
コスト分析で App Service のコストを表示するには、次の手順を実行します。
Azure portal にサインインします。
検索バーに 「コスト分析 」と入力します。 または、[ サブスクリプション] に移動し、一覧からサブスクリプションを選択し、メニューの [コスト分析 ] を選択します。 コスト分析で別のスコープに切り替えるには、 [スコープ] を選択します。
既定では、最初のドーナツ グラフにサービスのコストが表示されます。 グラフの [App Service] というラベルが付いた領域を選択します。
最初にコスト分析を開いたときに、実際の月額コストが表示されます。 次の例は、すべての毎月の使用コストを示しています。
App Service などの 1 つのサービスのコストに絞り込むには、 [フィルターの追加] を選択してから、 [サービス名] を選択します。 次に、 [App Service] を選択します。
App Service のみのコストを表示する例を次に示します。
前の例では、サービスの現在のコストが表示されます。 Azure リージョン (場所) 別およびリソース グループ別の App Service のコストも表示されます。 ここでは、コストを自分で調べることができます。
予算を作成する
予算を作成してコストを管理し、支出の異常や超過リスクを関係者に自動的に通知するコスト アラートを作成できます。 アラートは、予算とコストのしきい値と比較した支出に基づきます。 予算とアラートは、Azure サブスクリプションとリソース グループに対して作成されるため、全体的なコスト監視戦略の一環として役立ちます。
監視の粒度をさらに細かく示す必要がある場合は、Azure の特定のリソースまたはサービスに対するフィルターを使用して予算を作成できます。 フィルターを使用すると、追加のコストがかかる新しいリソースが誤って作成されないようにすることができます。 予算を作成するときに使用可能なフィルター オプションの詳細については、グループとフィルターのオプションに関する記事を参照してください。
コスト データのエクスポート
また、ストレージ アカウントにコスト データをエクスポートすることもできます。 これは、自分や他のユーザーがコストに関する追加のデータ分析を行う必要がある場合に便利です。 たとえば、財務チームは、Excel や Power BI を使用してデータを分析できます。 日単位、週単位、または月単位のスケジュールでコストをエクスポートし、カスタムの日付範囲を設定することができます。 コスト データのエクスポートは、推奨されるコスト データセット取得方法です。