App Service プランの動作について
こんにちは、CIE サポートの板垣です。今回は、Azure App Service を利用する際に選択する App Service プランについて、既存資料からは分かりにくい部分を補足して説明します。運用にご利用いただく App Service プランを選定する際のご参考としてください。
Azure App Service のアプリケーション (Web Apps、Mobile Apps、Logic Apps、API Apps) は、App Service プランによって定義されるインスタンス上で実行されます。App Service プランでは 5 つの価格レベル (Free、Shared、Basic、Standard、Premium) がサポートされており、価格レベルごとに利用できる機能と容量が異なります。
1 つの App Service プランには、複数のアプリケーションを関連付けることができますが、同じ App Service プランに関連付けられたアプリケーションは、同じインスタンス上で動作することにご注意ください。
例えば、Standard プランで Small インスタンスを利用するプラン (S1) として “MyAppServicePlan” という App Service プランを作成したとします。この場合、1 コア、1.75 GB のインスタンスが、”MyAppServicePlan” を App Service プランとするアプリケーションに対して割り当てられます。Application_A、Application_B というアプリケーションをそれぞれ作成し、いずれにも App Service プランとして “MyAppServicePlan” を設定した場合、Application_A と Application_B は、同一インスタンス上の別プロセスで動作します。また、”MyAppServicePlan” のスケールを 3 に設定した場合は、S1 インスタンスが 3 つ生成され、それぞれに Application_A、Application_B が展開されることになります。
したがいまして、CPU、メモリを複数のアプリケーションで共有することになりますので、お互いのアプリケーションの動作に影響が及ぶ可能性もあります。
例えば、いずれかのアプリケーションで過剰に CPU を使用した場合は、インスタンス全体の CPU 使用率が高くなり、他のアプリケーションに影響が及ぶ場合があります。また、いずれかのアプリケーションが過剰にメモリを使用する場合には、メモリ スワップの発生によって他のアプリケーションに及ぶ場合があります。App Service プランに対して、CPU 使用率をルールとしたオートスケール設定を行った場合には、いずれかのアプリケーションの動作に起因してインスタンス全体の CPU 使用率が高まると、他のアプリケーションで不要であってもインスタンスが増加し、全アプリケーションが複数インスタンスで動作する状態になります。
また、Azure App Service の使用料金は、Basic 以上の App Service プランの場合、インスタンスの稼働時間によって決定されます。上記では、3 つのインスタンスでそれぞれ 2 つずつのアプリケーションが稼働する例をご紹介しましたが、その場合、あくまでも “3 つのインスタンス” に対する課金が発生し、各インスタンスで稼働するアプリケーションの数には依存しないことにご注意ください。
以上の点をご留意の上、Azure App Service のアプリケーションに設定する App Service プランをご計画ください。
参考資料
Azure App Service プランの詳細な概要 App Service の価格
本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。