- AppServiceとFunctionsの料金プラン
- AppServiceの料金プラン
- Functionsの料金プラン
- 料金プランを理解するならやっぱりこの本
- 実際にかかる課金額(料金計算ツール)
- 料金プランごとの制限
このページの対象者
▶ AppServiceプランでどの価格レベルを選べばいいかわからず、本番環境なのにBasicを選んでしまう
▶ Functionsの従量課金プランとは、アプリが実行された分の課金が発生するプラン、という説明しかできない
▶ 従量課金プランとPremiumプランの違いが説明できない
▶ Premiumプランと聞いただけで高価なプランだからと選択肢から除外してしまっている
料金プランなんてそんなに大事なのか?と思うかもしれませんが、このページの内容は理解してないと、壁にぶち当たったり無駄な時間を過ごしてしまう可能性が高いと思います。
この記事を読んで、理解を深めていただけたらと思います。
料金プランを理解できると以下のようになります
▶ AppServiceプランでどの価格レベルを選べばいいかわかる
▶ 課金の発生状況・いつ課金されるかがわかる
▶ 想定外な動作が抑えられる
▶ コールドスタート(アプリ起動までに時間がかかる)に腹を立てることがなくなる
▶ とりあえず従量課金プランを選んでいたがPremiumプランも検討しはじめる
という方は、こちらも参照ください。
AppServiceとFunctionsの料金プラン
それぞれの選択肢を記載します。
AzureAppService
AzureAppService(Web Apps)を新規作成する際は、AppServiceプラン一択になります。
作成済みのAppServiceプランから選択、またはAppServiceプランを新規作成します。Azureが勝手に名前を付けてくれている場合は、新規作成を押してご自身で名前を付け直すことをオススメします。
AppService |
---|
AppServiceプラン |
AzureFunctions(関数アプリ)
AzureFunctions(Functions App)を新規作成する際、以下3つの中から選択することになります。
Functions |
---|
従量課金(サーバーレス)プラン |
Premium プラン |
AppServiceプラン |
ここまでのポイントとしては、
AppServiceは必ずAppServiceプランを使い、FunctionsはAppServiceプランも選べるが従量課金またはPremiumも選べる。ということですね。
では次に、各プランの詳細を説明していきます。
AppServiceの料金プラン
AppServiceプラン(AppServiceとFunctionsで選べる)
AppServiceプランを作る=VM サーバを1台レンタルできるイメージです。AppServiceプランを作るとき、以下の全18種類の中から価格レベルを選びます。
課金の発生は、AppServiceプラン1つに対してかかるので、1つだけアプリケーションをデプロイして動作させても、複数のアプリケーションをデプロイして実行させてもAppServiceプランに課金される金額は変わらないのがポイントです。あと、AppServiceの非同期処理担当のWebジョブ(サイト内リンク)もプラス料金なしで利用できます。
AppServiceプランの価格レベルを選択
ポータル画面を日本語表示にしてると "価格レベル" ですが、sku とか tier とも表現されるので覚えておいてください。
結構種類がありますね。選択する価格レベルごとに、サーバの「メモリ数」「コア数」をはじめ、使用できる機能も異なります。後述しますが、開発環境(ステージング環境)ならBasicでいいですが、本番環境(運用環境)を作るならStandard以上は必須と思ってください。
Free | Shared | Basic | Standard |
---|---|---|---|
- | - | B1 | S1 |
- | - | B2 | S2 |
- | - | B3 | S3 |
PremiumV2 | PremiumV3 | Isolated | IsolatedV2 |
---|---|---|---|
P1V2 | P1V3 | I1 | I1V2 |
P2V2 | P2V3 | I2 | I2V2 |
P3V2 | P3V3 | I3 | I3V2 |
価格レベルの内容は、公開情報をみれば一目瞭然ですので、以下を参照ください。
AppServiceプラン一覧の公開情報
Azureをお試しで使いたい人は、Free (F1) を選択すれば無料で試せますが、カスタムドメインが設定できない・デプロイできるAppService/Functionsのアプリ数が合計10個までなどの制限はあります。Azureを活用する上で制限詳細を把握することはとても重要ですので公式ドキュメントを見てみてください。
制限について公開情報抜粋
作成したリソースのAppServiceプランの価格レベルが何か調べる方法
AppService/Functions のスケールアップ(AppServiceのプラン)メニューからも確認できますが、先頭の概要メニューの右側に以下の情報も載っています。

本番環境はどの価格レベルが適切なのか
1つのAppServiceプランに複数のアプリケーションをデプロイできますが、AppServiceプラン(サーバ)のリソースは限られているので、CPU使用率やメモリーの許容範囲を超えて動作するとシステムエラーが発生します。
テスト・動作確認で使う場合:Basic でもOK
※ Standard以上でないと使えない機能(自動スケール・スロット・バックアップなど)もあるので、リリース前テストのようなときに使う環境もStandard以上である必要があると思います。
本番環境(運用環境)で使う場合:Standard 以上が必須
※ 最低限は Standard だが、P1V2, P1V3 以上が推奨
※ AzureMVPのしばやんさん(外部サイトリンク)もP1V2を推奨してます
たまに本番環境で Basic を使ってしまっている方がいますが、それなりのボリュームのアプリケーションなのであれば、CPU使用率が高くなったのはなぜだ!リソースが足りなくなるのはなぜだ!とやっているのは時間の無駄なので素直にスケールアップ(料金プランを上げる)を検討しましょう。
Isolatedプランは、ASE(AppServiceEnvironment)構築用の料金プランです。他ユーザのアプリケーションの影響を受けたくない場合などに使う高級(月に数十万円)な専用環境です。
選択した料金プラン・デプロイ~実行するアプリ数の妥当性はテストが必要
Standardプランのインスタンス1台で10個のアプリケーションを実行させよう。をしてしまうと、受信した全てのリクエストをパフォーマンスよく処理できず遅延が発生したり、インスタンスのリソースが足りなくなってシステムエラーが発生したりする可能性があるので、Azureサーバが耐えられるのかをご自身でテストしましょう。
テストの方法としては、実際にAzureサーバ上で実行させてから、メトリック・問題の診断と解決でAzureサーバの負荷状況・エラー発生状況が確認できます。 負荷が高いと思った場合の対応方法としては、AppServiceプランを分ける・AppServiceプランの価格レベルを上げる・アプリ側で無駄なメモリの使い方をしていないか確認する等が考えられます。
また、一つのAppServiceプランにデプロイ~実行する推奨アプリケーション数は、以下ページに記載されているので参考にしてください。ただ、アプリケーションごとの規模によっても変わりますので、テストが必須ということになります。
遅延発生やリソース枯渇が発生した場合の回避方法
アプリケーション実装の見直しが有効なのはもちろんですが、Azure側の設定での回避方法は以下になります。
- スケールアップする(インスタンス自体のスペックをあげる)
- スケールアウトする(インスタンス台数を増やす)
- AppServiceプランに登録したAppService/Functionsを減らす(別のAppServiceプランに分割する)
AppServiceプランを停止すれば課金は止まるのか
使用していないAppServiceプランは停止しておけば課金が止まるのかな・・・と思うかもしれませんが、そもそもAppServiceプランに「停止」というメニューはありませんので「停止」はできず、課金を止めるには AppServiceプランを削除するしかないが答えです。
また、AppServiceプランにデプロイしている AppService や Functions を停止はできますが、停止したアプリケーションが動かなくなるだけで、AppServiceプラン自体の時間単位での課金は発生し続けます。VMサーバを占有している状態になるので、停止をすれば課金が止まるという考え方は通用しませんので、覚えておいてください。
AppServiceの料金プランの次は、Functionsの料金プランを説明していきます。
Functionsの料金プラン
従量課金(サーバーレス)プラン
Functionsの従量課金プランは、毎月一定のアプリケーション実行量までは無料で利用できて、それ以降(無料枠分を超えたアプリケーション実行量)が、課金される料金プランです。アプリケーション実行量とは、CPU・メモリなどを使用した量・時間によって計算されます。
Azureはコスト面が両親的ですね~。Azure を無料で試したい場合にもいいですよね。ただ・・・アプリケーションの処理時間・応答時間に関してクリティカルなシステム要件がある場合は、従量課金プランは使わないでください。何秒以内に処理を完了させたい!という要件があるのに従量課金プランを使って、文句を言い出してしまうケースが多いです。誰も幸せにならないのでやめましょう。(重要)
作成したFunctionsが従量課金プランなのか調べる方法
Functionsの先頭の概要ページの右側に以下の表示があります。

呼び方が複数ある
Microsoftの情報に、呼び方が4パターンも存在しています!統一してほしいですが、翻訳の影響で仕方ないんですかね。
公開情報 | ポータル画面 | 英語資料 | 料金計算ツール |
---|---|---|---|
従量課金プラン | 消費量(サーバーレス) | Consumption | 使用量 |
4つすべて全く同じ意味ですので、覚えておいてください。
従量課金プランの無料枠について
Functionsが毎月無料で使える条件は、以下のいずれかの範囲の場合です。この範囲であれば、ポータル上でFunctions作成・プログラムコードのデプロイ・アプリケーション実行を実施しても、完全無料で利用できてしまいます。
【無料枠の詳細】
実行回数[回] が 月100万回 以下
または、
実行回数[回] と 実行時間[秒] と 平均メモリサイズ[GB] を乗じた結果が、40万GB/秒以下
概算を計算したい方は、後述する料金計算ツール(公式ドキュメント)で「Functionsの使用量」を選択して計算してみてください。
従量課金プランのメリット
注意点として、従量課金プランなのにアプリケーション実行中に数十秒の遅延が発生したぞ!という文句を言う方は、AzureFunctionsの各プランを理解できていないと思います。従量課金プランは、コスト重視のプランであることを理解してください。重要なシステムの場合、必ずAppServiceプランかPremiumプランを利用してください。
従量課金プランのデメリット
ポータル画面で、従量課金プランからAppServiceプランやPremiumプランに変更することはできないので、基本的にはFunctions(関数アプリ)を新規作成する必要があります。
従量課金プランは、どんなアプリケーション処理でも動く万能プランではなく、コスト・手軽さ・柔軟さを重要視したプランであると理解してください。安く利用したいけど性能・パフォーマンスも期待したい、という都合の良いものはありません。
Premiumプラン
Functions(関数アプリ)は Premiumプラン が推奨です。
従量課金プランは、使用されるインスタンスのスペックがあまり高くない上にコールドスタートも発生するのでパフォーマンス面で不安定なプランといえます。(極端にいうと、コスト面しかメリットがないとも言えると思います。)
それに比べてPremiumプランは、コールドスタートがない上に、EP1からEP3までスペックを選べます。
既に概要を書いてしまいましたが、以下にPremiumプランのポイントを説明します。
Premiumプランのポイント
従量課金プランだと、Initializing host (インスタンスがアクティブ状態になるまでにかかる時間)が発生してしまうので、処理開始が遅延する場合があります。従量課金プランを使って、なぜコールドスタートが発生したんだ!と調べたりする時間は無意味なので、素直にPremiumプランを使用しましょう。

FunctionsのPremiumプランの公開情報
料金プランを理解するならやっぱりこの本
Azure Functions |
料金プランや以下のプログラムコードや画面が載ってます。 ・TimerトリガーでComosDBにデータ書き出し ・HTTPトリガーでAzureSQLDatabaseを更新 ・CosomosDBトリガーでCosmosDBにデータ書き出し ・EventGridトリガーでストレージアカウントにデータ書き出し |
---|
実際にかかる課金額(料金計算ツール)
細かい説明はわかったけど、実際にどのくらい課金が発生するんだ・・・
については、どのくらいかかりますよと無責任なことを言ってしまうのが難しいので、以下の「料金計算ツール」を参考にしていただければと思います。
料金計算ツールの公開情報
ご注意いただきたいのは、Functionsを計算するときはStorageAccount・Application Insightsなどは必要に応じて、手動で追加する必要があります。
料金プランごとの制限
このプランじゃないとこの機能は使えない、という制限が色々ありますので、一部の例を紹介します。
AppServiceプランは価格レベルによって使用できる機能が異なる
AppService で自動スケール・バックアップ・スロットの機能を使いたい場合は、価格レベルにStandard 以上を利用する必要があります。
参考に、BasicとStandard以上の場合を比較してみましょう。
Basic

Standard以上

FunctionsのVnet統合
例えばサービスエンドポイント・プライベートエンドポイントを経由してストレージアカウントにアクセスする必要がある場合、Functionsのネットワーク設定でVnet統合(公式ドキュメント)を行う必要が出てきますが、FunctionsでAppServiceプランまたはPremiumプランを利用する必要があります。(従量課金プランではVnet統合できない)
安く使いたい為に従量課金プランを使いたいけどアクセス制御をしたいのであれば、IPアドレス等でアクセス制御をすることになります。
AppService/Functionsの料金プランの説明は、以上になります。
慣れてない方は、料金プランだけでこれだけ色々覚えることがあるのか・・・と感じるかもしれませんが、何か疑問があればコメントいただければと思います。
以上です。