AzurePaaS研究サイト

~理解しずらい情報をシンプルにお伝えします~

【5分でわかる】AppServiceとFunctionの料金プラン(AppServiceプラン・従量課金・Premium)を理解する

AppService と Functions の料金プラン

 
それぞれの選択肢を記載します。
 
App Service(Web Apps)を新規作成する際、以下を選択して作ります。
既にお持ちの AppServiceプラン から選択、またはその場で AppServiceプラン を新規作成します。

AppService
App Service プラン

 
 
Functions を新規作成する際、以下の中から選択して作ります。
AppServiceプラン を選択した場合は、既にお持ちの AppServiceプラン から選択、またはその場で AppServiceプラン を新規作成します。

Functions
App Service プラン
従量課金(サーバーレス)プラン
Premium プラン

 
   
各プランの詳細を、以下に説明していきます。
 

App Service プラン(AppService と Functions で選べる)

 
AppServiceプランを作る=VM サーバを、レンタルできるイメージです。AppServiceプランを作るとき、以下の全18種類の中からプランの種類を選びます。課金の発生は、AppServiceプラン1つに対してかかるので、1つだけアプリケーションをデプロイして動作させても、複数のアプリケーションをデプロイして実行させてもAppServiceプランに課金される金額は変わらないのがポイントです。
 
 
■ AppServiceプランの全種類
 
結構種類がありますね。選択するプランごとに、サーバの「メモリ数」「コア数」などが異なります。後述しますが、開発環境(ステージング環境)なら 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.microsoft.com

 
 
AppServiceプランで、お金をかけずに Azure をテスト的に使いたい人は、Free (F1) を選択すればほとんどお金を請求されることなく利用できますが、App Service/Functions の合計が10個まで、などの制限があります。
 
公開情報の抜粋

f:id:nanacy7741:20200118162443p:plain

 
 
Basic/Standard 以上のプランは、AppServiceプランを作成した時点で課金が発生しますが、AppServiceプランをひとつ作れば、複数のAppServiceを作成してそれぞれにアプリケーションをデプロイできます。
 
 
注意点(1):本番環境はどのプランが適切なのか?
1つのAppServiceプランに複数のアプリケーションをデプロイできますが、AppServiceプラン(サーバ)のスペックは限られているので、スペックを超えて動作するとシステムエラーが発生します。Basic は動作確認用のプランなので、システム公開するのであれば Standard 以上が必須と考えてください。動作確認用の Basic は、ちょっとした処理であれば耐えられますが、それなりのボリュームのアプリケーションがなぜかエラーになる!ロクに動かないのはなぜだ!とやっているのは時間の無駄です。

注意点(2):AppServiceプランの場合、停止すれば課金は止まるのか?  
使用していないAppServiceプランは停止しておけば課金が止まるのかな・・・と思うかもしれませんが、AppServiceプランに「停止」というメニューはありませんので「停止」することはできず、課金を止めるには AppServiceプランを削除するしかないです。また、AppServiceプランにデプロイしている AppService や Functions は停止できますが、停止しても、AppServiceプラン自体の時間単位での課金は発生します。VMサーバを占有している状態になるので、停止をすれば課金が止まるという考え方は通用しませんので、覚えておいてください。
 
 
次は AppService ではなく、Functions の料金プランを説明していきます。
 
 

Functions の料金プラン

従量課金(サーバーレス)プラン

Function の従量課金プランは、アプリケーションが動作した分、CPU・メモリを使用した量・時間によって課金額が計算されます。
 
ポータル画面上では、機械翻訳の関係で「消費量(サーバーレス)」と表記されてしまってます。
また、Consumptionプラン とも呼ばれるので、覚えておいてください。
 

従量課金プランのメリット

 

Point
Functionsを作成・デプロイしただけでは課金されない
これって地味に嬉しいですよね。利用者がアプリケーションにアクセスして初めて課金されるということになります。(これに対して、先述したとおりAppServiceプランは作っただけで、時間単位の課金がはじまります。)
Point
AppServiceプランのように、インスタンスのスペックを選ぶ必要がない
サーバ設定などを意識する必要がないので、ポータル画面で「サーバーレス 」と表記されてます。
Point
Azureが自動でスケールコントロールしてくれる
今動作しているインスタンス台数などでは処理を行う上でスペックが足りないとAzureプラットフォーム側が判断した場合、Azureプラットフォーム側が自動でインスタンス台数を増やしてくれたり、処理を行う上で必要な分のメモリを使わせてくれます。よって、AppServiceプランと違って、スペックが足りずに処理の途中でエラー終了してしまうということが、基本的に発生しません。

 

従量課金プランのデメリット

 

Point
使用できないメトリックがある
アプリケーションは他ユーザと共有されているインスタンス上で動作するので、 アプリケーションごとの CPU使用率の取得 などができない。
Point
コールドスタンバイが発生
しばらく関数が実行されていないと、アイドル状態になり、次回実行された時にメモリ上に展開されるため、アプリケーションの起動に時間がかかる場合がある。
Point
スペックが足りずにシステムエラーが発生
今動作しているインスタンス台数などでは処理を行う上でスペックが足りないとAzureプラットフォーム側が判断した場合、Azureプラットフォーム側が自動でインスタンス台数を増やしてくれたり、処理を行う上で必要な分のメモリを使わせてくれます。よって、AppServiceプランと違って、スペックが足りずに処理の途中でエラー終了してしまうということが、基本的に発生しません。

 
従量課金は、どんなアプリケーション処理でも動く万能プランではなく、手軽さ・柔軟さを重要視したプランであると理解してください。
 

Premium プラン

 
Functions は Premiumプランが推奨です。
以下に、Premiumプランのポイントを説明します。
 

Premium プランのポイント 

 

Point
ゴールドスタートが発生しない
AppServiceプランのように、専用のインスタンスがあらかじめ確保されるため、コールドスタート(処理開始が遅延する)が発生しません。なので、処理時間・応答時間にシビアなアプリケーションの場合は、必ずPremiumプランを使用してください。従量課金プランだと、Initializing host (アイドル状態の場合、アクティブ状態になるまでにかかる時間)が発生してしまうので、処理開始が遅延する場合があります。
Point
Azureが自動でスケールコントロールしてくれる
従量課金プランのように、自動でスケールアウトしてくれます。
Point
アプリが実行しただけ課金される
従量課金プランのように、利用者がアプリケーションを使用した分だけ課金され、作ってデプロイするだけなら無料です。
Point
3つのプランから選ぶ
プランの種類には EP1, EP2, EP3 と3種類あり、EP3 が一番スペック(コア数・メモリ量)が高いです。

   
 
FunctionsのPremiumプランの公開情報

docs.microsoft.com

 

実際にかかる課金額(料金計算ツール)

 
細かい説明はわかったけど、実際にどのくらい課金が発生するんだ・・・
については、どのくらいかかりますよと無責任なことを言ってしまうのが難しいので、以下の「料金計算ツール」を参考にしていただければと思います。
 
料金計算ツールの公開情報

azure.microsoft.com

 

料金プランの制限

 
このプランじゃないと、この機能は使えない、という制限が複数あります。

AppService の オートスケール/バックアップ/スロット機能

AppService でオートスケール/バックアップ/スロットの機能を使う場合、AppServiceプランで Standard 以上を利用する必要があります。

Functions の Vnet統合

Function で Vnet 統合を行う場合、App Service プラン または Premium プランを利用する必要があります。  
 

タイトル:ネットワーク機能のマトリックス
docs.microsoft.com

 
 
説明は以上になります。
慣れてない方は、料金プランだけでこれだけ色々覚えることがあるのか・・・と感じるかもしれませんが、この記事にある程度まとめたので、何か疑問があればコメントに記載いただければと思います。
 
以上です。