概要
Azure Automationの機能「Start/Stop VMs during off hours」でAzure上のVMの自動起動/停止を実装してみました。
ソリューションの機能説明はこちら↓↓
参考資料:Start/Stop VMs during off-hours の概要
①Azure Automationアカウントの作成
Azureの機能でVMの自動起動/停止を動かすためにはAutomationアカウントの作成が必須です。Azure Portalから簡単に作成できます。
-
「新規作成」をクリック
-
リソース名など必要事項を入力して「作成」をクリック
※作成時に「Azure実行アカウントの作成」は「はい」にしておく。
実行アカウントを作成するには、作成するユーザに「所有者」か「ユーザアクセス管理者」の権限が必要なのでご注意を。 -
通知画面に「展開に成功しました」ってメッセージが出て、一覧に作成したAutomationアカウントが表示されたら作成は完了
②Start/Stop VMs during off hoursのデプロイ
作成したAutomationアカウントからVMの自動起動/停止を実装していきます。
ソリューションのデプロイには、Automationアカウントと、Log Analyticsのワークスペースの作成が必要です。
-
作成したAutomationアカウントを開く
-
左ペインの「関連リソース」の「VMの開始/停止」を選択
-
- ワークスペース:Log Analyticsのワークスペースを指定。(デプロイ時に新規作成することも事前に作成したものを紐づけることも可能)
- Automationアカウント:①で作成したAutomationアカウントを指定。
- パラメーター:自動起動/停止を設定するVMが存在するリソースグループやVMを指定できたりするんですが、ここで設定すると色々面倒上手くいかなかったので、 一旦スルーして先に進みます。
③自動起動/停止のスケジュール設定
ソリューションはデプロイできたので、あとは自動起動/停止するためのパラメータとスケジュールを設定します。
-
①で作ったAutomationアカウントの画面を開く
-
左ペインの「共有リソース」の「変数」をクリック
-
以下の項目を設定する
(いっぱいありますが、とりあえず3つだけ設定すれば動きます。値をクリックすれば設定画面に移動します。)
- External_Start_ResourceGroupNames:起動設定対象のVMが存在するリソースグループ名を指定
- External_Stop_ResourceGroupNames:停止設定対象のVMが存在するリソースグループ名を指定
- External_ExcludeVMNames:上記のリソースグループの中で自動起動/停止を除外するVMがある場合はVM名を指定
(リソースグループ内すべてのVMに自動起動/停止を設定する場合は空欄でOK)
-
左ペインの「共有リソース」の「スケジュール」をクリック
と、こんな感じでスクリプトとか書けなくてもAzureの中だけで簡単にVMの自動起動/停止は実装できることがわかりました。
ちょっと設定変更してVMがたくさんあるときにタグ付けして起動/停止の順序の指定ができたり、AzureMonitorのアラートルール設定からメール通知できたりもするんですが、
疲れたのでそれはまた気が向いたときに書きます(´・ω・`)