こんにちは、三醍醐です。
今回は、Azure VMの自動起動停止方法についてお話します。
目次
自動シャットダウンの設定
Azure VMの管理機能として、自動シャットダウンが用意されています。
Webhook及びメールで30分前に通知を送信できます。
通知メッセージから、シャットダウン時間を1~2時間延長することができます。
ポータルでの設定
Azureポータルで設定を行う場合、Azure仮想マシンの「操作」-「自動シャットダウン」から設定することができます。
ARMテンプレートでの設定
日本時間21時に、東日本リージョンにある仮想マシンで設定する場合、
以下のテンプレートを対象仮想マシンと同じリソースグループに展開します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"schedules_shutdown_computevm_vm_name": {
"defaultValue": "shutdown-computevm-対象仮想マシン名",
"type": "String"
},
"virtualMachines_vm_externalid": {
"defaultValue": "対象仮想マシンのリソースID",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "microsoft.devtestlab/schedules",
"apiVersion": "2018-09-15",
"name": "[parameters('schedules_shutdown_computevm_vm_name')]",
"location": "japaneast",
"properties": {
"status": "Enabled",
"taskType": "ComputeVmShutdownTask",
"dailyRecurrence": {
"time": "2100"
},
"timeZoneId": "Tokyo Standard Time",
"notificationSettings": {
"status": "Enabled",
"timeInMinutes": 30,
"webhookUrl": "webhookのURL",
"emailRecipient": "メールアドレス",
"notificationLocale": "ja"
},
"targetResourceId": "[parameters('virtualMachines_testvm_externalid')]"
}
}
]
}
Automationを利用した自動起動・停止
Azure Automationを利用すれば、仮想マシンの自動的な起動・停止をスケジュールすることができます。
ギャラリーに用意されたVM起動停止のRunbookを利用することによって、細かいスケジュールと要件に沿った自動起動・停止を行うことが出来ます。
設定方法
- Automationアカウントを作成します。
VMの起動停止だけを行う場合は、Azure実行アカウントを同時に作成しなくても問題ありません。(Azure実行アカウントが紐付いていない場合、Runbookを開始・完了することはできますが、ジョブが実行されません) - 作成したAutomationアカウントから、Runbookのギャラリーを参照します。
- ギャラリーから「Start Azure V2 VMs」「Stop Azure V2 VMs」を選択して、インポートします。
- インポートしたRunbookを選択して、編集をクリック。公開を行います。
- 自動起動停止を行う際は、Automationアカウントのスケジュールからスケジュールの追加を行います。
- 作成したスケジュールを割り当てるため、Runbookのスケジュール設定を行い、Runbookとスケジュールを紐付けます。
この際に、パラメーターとして「リソースグループ」「VM名」を選択することで、任意のVMの起動停止をスケジュールできます。
これで設定完了です。
以上です。
他にも、Power Automate(Flow)を利用した自動起動停止等の方法もありますが、Azure上で完結する手法としては、本記事の2通り(片方は停止のみ)のはずです(他にもあれば、追記しようと思います)