Azureの検証環境コストを削減したい#4 契約形態と運用を考える

#1.はじめに

はい、どうも。アベンドカレンダー5日目担当です。
しかもアベンドカレンダーガン無視で、過去自分が書いた記事を書こうとしている人です。
こんなのでいいんですかねぇ、、まぁいいとして、今回は一年ぶりに「Azureの検証コストを削減したい」シリーズです。
この記事を書きたくて書きたくてならなかったのですが、なかなかまとまった時間がとる暇がなく、、、年の瀬になって、Qiitaに書いていっしょに提案しちゃおう！と思って実行した次第。

過去のシリーズは、以下をご参照ください！

[Azureの検証環境コストを削減したい#1(Load Balancer/Application Gateway)](https://qiita.com/hikaru_motomiya/items/6db04a20a088063b0398)
[Azureの検証環境コストを削減したい#2 Azure Cost Managementで予算を設定する](https://qiita.com/motomiya_hikaru/items/fc0c5526938456fc3734)
[Azureの検証環境コストを削減したい #3 Azureポリシーを利用してリソースを制限する](https://qiita.com/hikaru_motomiya/items/ab21e39e99dab494c881)


#2. 何をしたいか

私には払い出されるAzure環境について・・・一つ不満があります・・・
__「Azureアカウントの申請をしてから利用できるようになるまでが長すぎる！！」__

はい、__会社勤めの誰もが抱いたことがある不満__でしょう。
Azureアカウントをすぐプロジェクトで使いたい。でも使えない。__何故なら準備が終わっていないから･･･!__

といっても、情シスの皆さんだって忙しい。一つの物事だけ優先して動けません。
どこの会社でも、申請フローは大体は一緒かと思います。

予算確保して申請する　⇒　上司に承認される　⇒　情シスが作業する　⇒　環境が渡される😁

上司の承認が遅い？それは上司に言ってください！
ここで考えるべきなのは、__「いろいろ忙しい情シスさんが、以下に楽をしてAzure環境を準備できるか」__、です。


## 現在の使い方
現在は、__一つのプロジェクトごとに、MOSP契約を結んで環境構築している状態です。__
これは何か改善できそうですよね。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/2165905b-7e6b-71a3-5278-1039787601e3.png)|
|:--|

何に手間がかかっているんだろう、と考えたとき、仮設として以下を考えました。

1. Azure ADを構築するのが大変？
2. Azureテナントを構築するのが大変？
3. ただ単にほかのことに忙しい？

現実的に考えると「3」なんだろうとおもうのですが、ここでそれをいうとここで終わってしまうので１と２について検討してみましょう。

## Azure Active Directory
まず前提として、Azure Active Directoryの整理をしたいと思います。
勘違いしやすいこととして、Azure Active Directoryは、Azureのサブスクリプションと関係なく独立した存在です。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/8f0a60ac-b080-7222-ab72-1700329b48c3.png)|
|:--|

左のイメージでは、サブスクリプションの中にAzure Active Directoryが入っていますが、__これは正しくないです。__
右のイメージのように、Azure Active Directoryはサブスクリプションとは別枠で存在しています。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/a8dda235-b793-90d8-641c-851dcb9a29c7.png)|
|:--|


上の図のように、__OfficeのAzure Active DirectoryとAzureで利用するAzure Active Directoryをいっしょにすることができます。__
当たり前ですが、__複数のAzure Active Directoryを管理することは嫌です。__できれば一つのアカウントですべて完結させたいですよねぇ…

#3. 契約形態を考える

Microsoft Azureには、いくつかの契約形態があります。
契約によって楽になるプランがあるかもしれません！

## Azure Enterprise Agreement(EA)

Electronic Arts…ではありません。__Enterprise Agreement__です!
EA契約では、3年間分の使用量の見積もりを算出し、3年分を前払いする契約です。
エンタープライス管理者を設置できるので、全社的に管理したい場合は検討するべきです。

全社的に管理したいかもしれませんが、事前に3年分前払いするので、利用量がなんとも言えない検証環境を前払いで契約するわけにはいかないですので、今回は検討の選択肢にはなりませんね。

## Cloud Solution Provider(CSP)契約

Cloud Solution Provider契約は、特定の販売代理店を通してAzureの契約を行います。
CSP契約では、Azureのサポートを購入したパートナーからサポートを受けることができます。


## Microsoft Online Subscription Program(MOSP)契約

MOSP契約は、一般的に利用するときの契約方法です。クレジットカードを登録して、サブスクリプションを作って…みたいな感じですね。
検証環境はこのMOSP契約でした。

その他、Open(前払いで使い切ると利用が止まる)ライセンスがありますが、これも検証環境に利用するものではないですね。
というわけで、(せっかくながなが説明したんですけど)結論__契約自体はMOSP契約でよさそうです。__

# 4.一つのテナントで管理する

上でも書いた通り、現在は__一つのプロジェクトごとにMOSP契約を結んで環境構築している状態です。__

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/2165905b-7e6b-71a3-5278-1039787601e3.png)|
|:--|

上記図のように、Azure ADがたくさん立ってます。ユーザー管理がめんどくさい………
しかも私のように、複数のプロジェクトに所属していると、複数のAzure ADに同じユーザーを何度も作成しなければならず、手間がかかります。

そこで、ひとつのテナントにサブスクリプションを作成して環境を分けてみればうまくいきそうです。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/8b07b0d0-9107-f3d4-2c6e-f0b99ba6346c.png)|
|:--|

うん、大丈夫そうですね。当たり前ですが、１つのテナントにすれば新しくテナントを作る手間も減ります。
結論、__1つのテナントで複数のサブスクリプションを契約するようにすれば、手間が減りそうなことがわかりました。__


# 5.請求情報の管理

ここで問題になることが一つ。
Azureを利用する上で請求される情報ですが、これはそれぞれのサブスクリプションで別々に計上され、通知がされなくてはなりません。

しかしご安心ください。過去に
[Azureの検証環境コストを削減したい#2 Azure Cost Managementで予算を設定する](https://qiita.com/motomiya_hikaru/items/fc0c5526938456fc3734)
でご説明したAzure Cost Managementを利用することで、それぞれのサブスクリプションのコストを簡単に調べることができ、個別に通知を出すこともできます。
__地味にMOSPの各環境にログインし、請求金額を確認する作業は手間だったのではないか、と思います。__
(Azure Cost Managementを各MOSP環境に毎回構築するのもめんどくさいですしね・・・）

#終わりに

今回はAzureの契約周りとAzureADの配置について考えてみました。
検証環境に対しての検討なので、MOSP契約でよいだろうという結論になったのですが、組織としてAzureを利用する場合は当然EAやCSPを検討するべきです。

実はアカウントの管理は毎回アカウントをいただいてから私がやっているので私が楽になる結果に。情シスはサブスク作るだけになるので、楽なった、といえばなった…かな？
🤔__あれ？これ提供………早くなるのかな……？__


まぁともかく、今回は本当に小さい運用要素の検討でしたが、こういう__本当に小さい効率化できる運用要素を地道につぶしていく__のが大事なのだと思います。
心理的に作業をしやすくなりますよね。

一度何がひっかかっているのかヒアリングしよう、そうしよう。やっぱり3番なのかな。