2024-02-13
近年、非常に高いシェア拡大率を維持している Microsoft Azure ですが、中でも Azure App Service は使いやすく柔軟、かつ開発者にとっても企業にとってもおすすめできるサービスとなっています。
この記事では、Azure App Serviceの料金体系とそのユニークな特徴を深掘りし、あなたのプロジェクトに最適なプランを選択するためのガイドを提供します。
Azure App Service は Microsoft 社が提供するクラウドプラットフォーム Microsoft Azure のサービスの一つであり、いわゆる PaaS に位置づけられるものです。
Azure App Service を利用することで、開発者はインフラのメンテナンス、維持管理、運用といったタスクにかかる工数を最小限に抑え、アプリの開発に集中することが可能となります。
Azure App Service において、OSやミドルウェアなどのアップデートは全て Azure 側で行われ、ユーザー側でそのタイミング、詳細バージョンなどは Azure ポータル等で指定できる範囲を超えて、細かく指定することは出来ません。
また、使用できるプログラミング言語やミドルウェアに対しても制限があり、 Azure App Service に提供されるものに限られています。
それらの制限を許容し Azure App Service 上で運用ができるアプリの場合、 Azure App Service を使用することはユーザーにとってメリットの大きいものとなります。
下記の公式ドキュメントにも記載がありますが、 Azure App Service では OS の種類として Windows / Linux が選択でき、OSの種類によって利用可能なプログラミング言語・ミドルウェアが決まります。
概要 – Azure App Service | Microsoft Learn
また、より柔軟にカスタマイズしたい場合などは App Service / Web App for Containers が利用可能です。
Web App for Containers では、 App Service のアーキテクチャ上でユーザーが構築したコンテナイメージを起動することができるサービスとなっており、任意のコンテナレジストリにあるイメージを指定して、 App Service のアプリとして起動することが出来ます。
例えば、 Ruby などは現在 App Service のプログラミング言語にラインナップされていませんが、 Web App for Containers を使用することで Ruby で稼働するアプリを App Service アプリとして作成することが可能です。
Azure App Service は他のクラウドにおける類似サービス (GCP での App Engine など)とは異なる特徴的な料金体系となっています。
App Service では App Service Plan という概念とアプリという概念があります。
App Service Plan は平たく言うとアプリが詰まった箱のようなイメージです。
そのため、 1 つの App Service Plan 内に複数のアプリを稼働させることが出来ます。
一方で、 App Service Plan に割り当てられている計算リソース(CPUやメモリ等)は App Service Plan 単位となりますので、複数のアプリが 1 つの App Service Plan で稼働している場合、それらのアプリは同一 App Service Plan の計算リソースを共有して使用することになります。
App Service そのものの料金については、上述の App Service Plan の稼働時間に基づいて従量課金として費用が発生します。
App Service の料金 | Microsoft Azure
つまり、 App Service としてアプリが 3 つ稼働していても、 1 つだけの稼働であっても、そのアプリが “どの App Service Plan で稼働しているか” によって料金が変わります。
そのため、下記の構成における “ASP-A” と “ASP-B” は稼働しているアプリ数が異なっていても(両方の App Service Plan の SKU ≒ スペックが同一の場合) App Service の料金としては同じということになります。
※ Shared SKU を除く
App Service Plan 名 | アプリ名 | アプリ名 | アプリ名 |
---|---|---|---|
ASP-A | App-A-1 | App-A-2 | App-A-3 |
ASP-B | App-B-1 |
これらの内容は Azure サポートチームの下記の記事でも詳しく解説されています。
App Service を構成する主要な要素とそれぞれの役割
App Service Plan には、複数の SKU (≒スペック) があります。
App Service の料金 | Microsoft Azure
上記ページにも記載がありますが、それぞれの SKU によって
が異なります。
つまり、これらの条件を加味した上で使用すべき App Service Plan の SKU を選定する必要があります。
まず第一に、アプリに必要な機能が使用できる SKU を選択する必要があります。
例えば、 Free の SKU では費用はかかりませんが、カスタムドメイン(アプリに対してユーザー独自のドメインを割り当てる機能)が利用できないなどの制約があります。
App Service ドメインを使用するには、アプリの App Service プランが Free (F1) ではなく有料レベルである必要があります。
カスタム ドメインを購入する – Azure App Service | Microsoft Learn
次に、稼働させるアプリが求める要件を満たす SKU を選定する必要があります。
例えば、レスポンスタイムが 500ms 以内である必要があるアプリを App Service にて稼働させた際、 1000ms のレスポンスタイムとなっている場合には、App Service Plan の SKU をアップグレードする、またはアプリの内部処理やアーキテクチャを見直すなどの対応が必要になります。
また、SKU のグレードによってスケールアウト出来る最大インスタンス数が異なるため、スケールアウトの制限にも注意が必要です。
使用する App Service Plan の SKU が定まったら、最後に費用が予算内に収まるかどうかを Azure 料金計算ツールを使用して確認します。
App Service Plan の料金と、その他にもストレージアカウントや App Service ドメインなど別のサービスを利用する場合は、その料金も加味して確認する必要があります。
弊社ではAzure構築・アドバイザリーサービスを提供しております。
マイクロソフト出身、 Azure 認定資格を保持するエンジニアが Azure に関するアドバイスや、環境構築などのご支援をいたします。
また、マイクロソフトのAzureサポートとのやり取りも弊社にお任せいただけます。
サポート担当とのやり取りは、慣れていない場合適切な情報を引き出すことができず、連絡の往復が続き問題解決までに時間がかかることが多いです。
弊社のアドバイザリーサービスでは、弊社で回答できる部分は迅速に回答し、Azure内部の調査が必要な場合などはAzureサポートと連携して問題解決にあたることができます。
Azure をより活用し、最適な構成を構築するご支援をいたしますので、ご検討の方はお気軽にお問い合わせください。