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

    AADDSを構築する記事

    ---5/13追記(追記事項は末尾記載)---皆様、こんにちは。在宅…

  2. Azure

    Azureクラシックリソース(Azure Service Management)VMの廃止について

     こんにちは。三醍醐です。 先日、クラシックVMが2023年…

  3. Azure

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

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

  4. Azure

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

    目次1はじめに2Azureの無料枠試してみた2-1前…

  5. Azure

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

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

  6. Azure

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

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

関連記事

  1. Azure

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

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

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

    Azureクラシックリソース(Azure Service Management)…
  5. Azure

    AADDSを構築する記事
PAGE TOP