サーバレス構成におけるAzureサービスプラン選定方法

## はじめに
Azureのサービスはプランを選択できるものがあり、当然プランによって、できることが異なります。また、Azureのリソースを一度作成すると、途中で変更できず、再作成が必要なケースがあるため、後から変更することが手間です。

その為、**後から変更が入らないように考慮して、Azureサービスのプランを選定する必要があります。**
　　
**本記事では、サーバレス構成を例にAzureサービスのプランの選定方法をご紹介します。**

:::note info
こんな方にオススメ
・Azureサービスのプランの選定の仕方のイメージをつかみたい
・他の人のAzureサービスのプランの決め方を知りたい
・Azureの利用料を見積もりたいが、Azureサービスのプランの内容を調べるのが面倒など
:::

## 目次
1. [本ブログでお伝えしたいこと](#1-本ブログでお伝えしたいこと)
2. [Azureサービスプランを決めるプロセス](#2-azureサービスプランを決めるプロセス)
3. [利用するAzureサービスの確認(a)](#3-利用するazureサービスの確認a)
4. [構築するシステムの要件の確認(b)](#4-構築するシステムの要件の確認b)
5. [Azureサービスのプランの選定結果(c)](#5-azureサービスのプランの選定結果c)
6. [まとめ](#6-まとめ)


### 1. 本ブログでお伝えしたいこと
システムの要件やAzureサービスプランの違いをすべて把握するのは時間が限られているため、難しいと考えてます。ですので、Azureサービスのプランの選定に影響する観点を集中的に確認することが重要と思います。

本ブログを読むと、その観点が組み込まれているので、是非、最後まで読んで頂ければと思います。

### 2. Azureサービスプランを決めるプロセス
Azureサービスプランを決めるプロセスのイメージをインプットとアウトプットの観点で表現してみました。

![gazo1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3923708/1cf7369f-5fea-564b-a2cc-ef379f956c90.png)

次の章以降で、具体的な内容を説明します。

### 3. 利用するAzureサービスの確認(a)
システム構成図などをインプットに利用するAzureサービスを確認します。
今回は以下のサーバレス構成を題材に説明していきます。

＜今回の構成＞
![gazo3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3923708/7a65c9a6-58ff-18a2-2724-c66cb8812722.png)


### 4. 構築するシステムの要件の確認(b)
要件を確認し、判断軸を明確にします。様々な要件があるかと思いますが、**サービスプランの内容に関連する、①可用性、②セキュリティ、③拡張性、④性能の観点で確認するのがよいと思います。**

今回は以下の４つの要件があると仮定します。

![gazo2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3923708/961d1c82-ae05-3bbe-902f-8d0a9d2f4237.png)
    
### 5. Azureサービスのプランの選定結果(c)
利用するAzureサービスについて、要件の観点でAzureサービスの各プラン内容を確認し、プランを選定していきます。選定結果を纏めると以下の表のようなイメージとなります。
(一部、偏見が入っている部分があるかもしれませんがご容赦下さい。)

 |サービス  |選定プラン |選定理由         |参考URL |
 | -------- | -----   |------------- |----- |
 | Azure Front Door |  Azure Front Door Premium  | ①要件に影響する差異無<br>②WAFに対応、PrivateLinkに対応<br>③要件に影響する差異無<br>④要件に影響する差異無|https://learn.microsoft.com/ja-jp/azure/frontdoor/understanding-pricing|
 | Azure Application Gateway |  Azure Application Gateway v2 | ①ゾーン冗長に対応<br>②PrivateLinkに対応<br>③オートスケールに対応<br>④要件に影響する差異無|https://learn.microsoft.com/ja-jp/azure/application-gateway/overview-v2|
 | API Management | Premium | ①ゾーン冗長に対応<br>②仮想ネットワーク (VNet)にデプロイ可能、プライベートエンドポイントに対応<br>③オートスケール対応<br>④要件に影響する差異無 |https://azure.microsoft.com/ja-jp/pricing/details/api-management/?msockid=33b6bcaef875631c33d7a8a7f906622e#purchase-options|
 | Azure Functions |  Premium | ①ゾーン冗長に対応<br>②VNet統合に対応<br>③オートスケールに対応<br>④コールドスタート回避|https://learn.microsoft.com/ja-jp/azure/azure-functions/functions-premium-plan?tabs=portal|
 | Azure Service Bus |  Premium | ①ゾーン冗長に対応<br>②プライベート エンドポイントに対応<br>③要件に影響する差異無<br>④要件に影響する差異無|https://learn.microsoft.com/ja-jp/azure/service-bus-messaging/service-bus-premium-messaging|
  | Azure Blob Storage |  Standard  | 特に要件がないため、Standardを選定|https://azure.microsoft.com/ja-jp/pricing/details/storage/blobs/|
  | Azure Cosmos DB |  自動スケーリング プロビジョニング スループット  | ①要件に影響する差異無<br>②要件に影響する差異無<br>③オートスケールに対応<br>④要件に影響する差異無|https://azure.microsoft.com/ja-jp/pricing/details/cosmos-db/autoscale-provisioned/|




### 6. まとめ
今回は、Azureサービスのプランの選定方法をご紹介しました。
Azureの料金の見積もる際など、参考になれば幸いです。

また、実際のPJでは、処理方式の詳細な検討やテストを進めていく上で、やっぱり性能が足りなかった、コストが削減したいなど、追加の要件が発生するかと思います。その際は、変更管理しつつ、適宜、見直していければよいかと思います。

:::note info
今回はAzureの利用するサービスやアーキテクチャが決まっている前提で、説明してきました。今後のブログで、アーキテクチャを決める際のポイントを紹介したいです。
:::

　
※過去のブログでは、Azureの学習方法なども紹介しているので、参考にして頂ければと思います。　
　

https://qiita.com/bluesea_nishi/items/5bbc111b10edbeb0bd08


:::note warn
留意事項
・2024年11月時点の情報となります。Azureサービスの仕様等、変更になる可能性がございますので、最新の情報をご確認ください。

・本ブログに記載した内容は個人の見解であり、所属する会社、組織とは全く関係ありません。
:::