Start/Stop VMs v2を使いこなせるように頑張ってみた話（デプロイ編）

# はじめに

2年ぐらい前に一生懸命検証したAzure Automationを使った自動起動/停止スケジュール機能の「Start/Stop VMs v1」が近日中に廃止されるとのことなので、新たにリリースされたStart/Stop VMs v2を検証しました。

とりあえず、v1で実装していた内容をそのままv2で作り替えられそうなくらいまでは理解したので、忘れないように備忘録。

こちらはソリューションデプロイ編です。
ソリューションデプロイした後のスケジュール設定は以下記事参照。

[Start/Stop VMs v2を使いこなせるように頑張ってみた話（スケジュール設定編）](https://qiita.com/mikanchaaan/items/7eed282b88993fadfbe8)


# 目次
[1.v1とv2の違い](#1-v1とv2の違い)
[2.v2のデプロイ](#2-v2のデプロイ)

# 1. v1とv2の違い
Start Stop VMs v2の概要は以下を参照
・参考資料 : [Start/Stop VMs v2 の概要](https://learn.microsoft.com/ja-jp/azure/azure-functions/start-stop-vms/overview)

ざっくり説明すると、v1はAzure Automation ＋Log Analyticsを利用して動いていたソリューションが、
v2ではAzure Logic Apps + Application Insightsを利用して動きます。
つまりバージョンが違うと見せかけて、ほとんど別のソリューションです（笑）

# 2. v2のデプロイ
## デプロイ手順
まずはソリューションをデプロイ。<br>難しくはないですが、デプロイは「サブスクリプションの所有者権限」が付与されたユーザで行う必要があります。

1.  Azure Portalにログインして「リソースの作成」をクリック
![001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/4f19bca6-3296-444b-1768-16bfb25a3acc.jpeg)

1. 検索画面で「start/stop vms during off hours - v2」 を検索して表示されたソリューションをクリック
![002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/ccade7e2-db5b-d70f-ded7-8376b02bc55c.jpeg)

1. 「作成」をクリック
![003.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/6887cff4-3257-df6e-3ac5-83e249910600.jpeg)

1. 以下設定値を入力して、「次：確認および作成」をクリック 

   |設定項目  |設定値  |
   |---|---|
   |サブスクリプション  |（リソースをデプロイするサブスクリプション）  |
   |リージョン  |（リソースをデプロイするリージョン）  |
   |リソースグループ名  |（リソースをデプロイするリソースグループ）  |
   |Azure Function名  |（リソースデプロイ時に作成されるFunction名）<br> ※デプロイ時に自動的にランダム文字が付与される。  |
   |Application Insights名  |（リソースデプロイ時に作成されるApplication Insights名） |
   |Application Insights Region  |（Application Insightsをデプロイするリージョン）  |
   |ストレージアカウント名  |（リソースデプロイ時に作成されるストレージアカウント名）<br> ※デプロイ時に自動的にランダム文字が付与され、既存のストレ ージアカウントとの共用は不可。  |
   |メールアドレス  |起動/停止を通知するメールアドレス（任意設定） <br> ここで指定したメールアドレスには正常に起動/停止した場合でもメールが飛びます。  |
   
   ![004.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/c4418775-4ae8-ac7d-3a3e-11c6937187e5.jpeg)

1. 確認画面で設定値が反映されることを確認して「作成」をクリック
![005.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/cc5becc9-762f-6f41-692b-f52e8c559e54.jpeg)

1. 作成が完了すると、4.で指定したリソースグループに以下のリソースが作成される
   * StartStopV2_Dashboard：起動/停止の実行履歴等が確認できる
   * ststv2_vms_AutoStop：CPUが決めていた閾値を超えた場合等に自動的にVMを停止させる
   * ststv2_vms_Scheduled_start：スケジュールで指定した時刻にVMを起動させる（一括起動）
   * ststv2_vms_Scheduled_stop：スケジュールで指定した時刻にVMを停止させる（一括停止）
   * ststv2_vms_Sequenced_start：スケジュールで指定した時刻にVMを起動させる（順序起動）
   * ststv2_vms_Sequenced_stop：スケジュールで指定した時刻にVMを停止させる（順序停止）
![006.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/3754fb37-c19a-e355-ce00-58d9586d0968.jpeg)

## おまけ （ソリューションの手動アップデートが必要になった話）
たぶんもう大丈夫ですが、一時期Functionのアップデートが原因で、ソリューションの動作に不具合が発生していた時期がありました。
（運悪く検証していた時期にちょうど引っかかってしまいました。。。）
以下URLから手動アップデートができるので、スケジュールを設定した後で動かない！！！ってなったらこちらもお試しください。
   * [手動アップデート](https://github.com/microsoft/startstopv2-deployments#get-latest-version-existing-users)<br>：上記ページの「Get Latest Version（Existing Users）」から実行可能です。<br> 　アップデート実行時は、デプロイ時に指定したリソース名（デプロイ後に付与されたランダム関数含む）を指定してください。

# おわりに（続きます...）
こちらでソリューションデプロイは完了です。
と言っても、この後スケジュールと対象VMの設定をしないともちろん起動停止スケジュールは動きません。
そちらは別記事に記載したので以下を参照してください。

[Start/Stop VMs v2を使いこなせるように頑張ってみた話（スケジュール設定編）](https://qiita.com/mikanchaaan/items/7eed282b88993fadfbe8)

***