Functionsはどの料金プランを使うべきか?
Functions を新規作成する際は、「従量課金プラン」「Premiumプラン」「AppServiceプラン」から選択します。しかし、何を基準に料金プランを選択すれば良いかよくわからない方もいると思うので、この記事を参考にしていただけたらと思います。
従量課金プラン
以下をすべて許容できる場合に限り、従量課金プランを使っても問題ないと思います。
- 課金・コストを抑えたい
- コールドスタートが発生して関数アプリの処理開始・処理中の自動スケールアウトの際待機時間が発生しても良い
- いつか関数アプリの実行が完了されれば良い
Premiumプラン
FunctionsはPremiumプランが推奨プランとなります。以下ポイントのうち一つでも当てはまるのであれば、Premiumプランを使う必要があると思います。
- 処理時間にシビアなシステム要件的がある
- 処理開始時にコールドスタートを発生させたくない(デフォルト動作として、常にアクティブなインスタンスが用意される)
- 処理中に自動でスケールアウトされるときもコールドスタートを発生させたくない
AppServiceプラン
以下の場合はAppServiceプランを利用することになると思います。
- AppService/Functions 等の他リソースと同じAppServiceプラン上で実行させたい
※ Premiumプランのように、処理開始時にコールドスタートを発生させたくない場合、AppServiceプランに常時接続機能を有効にしましょう。
※ Premiumプランのように、必要に応じて自動でスケールアウトさせたい場合、AppServiceプランに自動スケールを設定しましょう。
AppServiceプランの注意点
既にAppServiceプランをもっているからといって、何でも一つのAppServiceプランに詰め込めばいいと思ったらそれは違います。一つのAppServiceプラン(Azureサーバ)で使えるリソースは有限ですので。例えば、従量課金プラン・Premiumプランはリクエストが急に増えたりリソースが足りないとAzureサーバが判断したらデフォルトで自動スケールアウトしてくれますが、AppServiceプランは自動スケールアウトは事前に設定しないと自動スケールアウトしてくれません。あと、従量課金プランはサーバーレスと書かれているようにAzure側が必要なサーバを用意して実行してくれるのですが、AppServiceプランは自分で適切な価格レベルを自分で選択する必要があります。