目的
AzureのClassic VM数台を内製ツールを使ってスケジューラーで起動、停止してたのですが、
ツールの保守終了に伴い、別の方法に移行する必要が出てきました。
と言ってもあまり工数はかけたくない・・・ということで、Azure Automationでサクッと実装してみました。
Classic VMでしか確認できてませんが、V2環境でも動作するはずです。(未検証)
タイトルにも書いてますが、Start/Stop VMs during off-hoursを利用しています。
RunbookギャラリーからStart Azure V2 VMsをインポートして利用する、といった事例の方が多いですが、Azureに関してあまり知識がなく、Classic VMでシンプルに実装するにはStart/Stop VMs during off-hoursを利用した方が良いのかと思います。
設定手順
1. Azure Automationからアカウントを追加
Azureにログインし、Automation アカウントを作成します。

今回はautomation-accountという名称のアカウントを作成し、アカウントを作成するサブスクリプション、リソースグループ、場所を設定します。

2. VMの開始、停止の設定
作成したAutomationアカウントを開き、左のメニューの関連リソースから、VMの開始/停止を開きます。

下記の通りソリューションを有効にします。

Start/Stop VMs during off-hoursの作成を実行します。
ソリューションの追加画面から、まずワークスペースを開いて新規作成します。

ワークスペース名、サブスクリプション名、リソースグループ、場所をそれぞれ設定します。
作成したワークスペースを設定した後に、パラメータを設定します。
Target ResourceGroup Namesに制御したいVM名を設定します。
あるいはワイルドカードでリソースグループの全サーバーを指定したり、VM Exclude Listで除外指定もできるようです。
あとは起動、停止する時間を設定し(後で変更可能)、メール通知する場合は送信先のメールアドレスを指定します。

設定が完了するとAutomationアカウントにタグが付与されます。
このタグをクリックすることで、スケジュールなどのプロパティを参照できます。

3. 実行スケジュールなどの設定
スケジュールを開くと設定した起動時間、停止時間がそれぞれ設定されています。
このスケジュールを開くと時間が変更できたり、タイムゾーンを変更したりできます。

あとは定刻になればVMの起動、停止が行われます。
スケジュール可能な条件は以下の通り、ありがちなスケジュールで設定ができます。

以上、GUIベースで完結して設定ができるので、インフラ系エンジニアには大変助かる機能でした。