Azure

Azure VMの自動起動停止を行う

こんにちは、三醍醐です。

今回は、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を利用することによって、細かいスケジュールと要件に沿った自動起動・停止を行うことが出来ます。

設定方法

  1. Automationアカウントを作成します。
    VMの起動停止だけを行う場合は、Azure実行アカウントを同時に作成しなくても問題ありません。(Azure実行アカウントが紐付いていない場合、Runbookを開始・完了することはできますが、ジョブが実行されません)
  2. 作成したAutomationアカウントから、Runbookのギャラリーを参照します。
  3. ギャラリーから「Start Azure V2 VMs」「Stop Azure V2 VMs」を選択して、インポートします。
  4. インポートしたRunbookを選択して、編集をクリック。公開を行います。
  5. 自動起動停止を行う際は、Automationアカウントのスケジュールからスケジュールの追加を行います。
  6. 作成したスケジュールを割り当てるため、Runbookのスケジュール設定を行い、Runbookとスケジュールを紐付けます。
    この際に、パラメーターとして「リソースグループ」「VM名」を選択することで、任意のVMの起動停止をスケジュールできます。
    これで設定完了です。

以上です。

他にも、Power Automate(Flow)を利用した自動起動停止等の方法もありますが、Azure上で完結する手法としては、本記事の2通り(片方は停止のみ)のはずです(他にもあれば、追記しようと思います)

「Azure Functions」をC#で触ってみました。前のページ

strongSwanを使ってP2S接続をする記事~CentOS編~次のページ

関連記事

  1. Azure

    WindowsVirtualDesktopがGAされているので(その3)

    その2からかなり時間が空いていますが今回はオートスケールについてと…

  2. Azure

    WindowsVirtualDesktopがGAされているので(その1)

    GAされてもう2か月たってますが…WindowsVirt…

  3. Azure

    普通のAzure Windows VMを、従量課金のSQL VMにしたい

    こんにちは。今回は、通常のWindows VMを従量課金のS…

  4. Azure

    Azure AD Connectの構築トラブルメモ

    今回はAzure AD Connect(AADC)を構築した際に色々…

  5. Azure

    WindowsVirtualDesktopがGAされているので(その2)

    その1で仮想マシンの展開まで行ったので次は接続、それとその他備考な…

  6. Azure

    AzureのDMSでデータを移行してみる記事 ~MySQL編~

    皆様、こんにちは。夏の暑さ対策、エアコンより扇風機派です。×3です。…

関連記事

  1. Azure

    Azureの無料枠ためしてみた。
  2. Azure

    Azure FilesをLinuxからマウントする記事
  3. Azure

    Azure Virtual Machineのリージョン間複製
  4. Azure

    strongSwanを使ってP2S接続をする記事~CentOS編~
  5. Azure

    Azure 資格試験の更新(2020年版)AZ-203編
PAGE TOP