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

    Managed InstanceへのDB移行・アプリとの連携時の注意Point

    そがひろです。今回は、OnPremiseからAzure Manage…

  2. Azure

    Azure Bastion の紹介

    2019年11月6日更新Azure Bastion …

  3. Azure

    Azure ポイント対サイトの証明書作成

    ポイント対サイト VPN 接続を構成する際の証明書生成につい…

  4. Application Gateway

    L7 負荷分散 Azure Application Gateway について:3回目

    こんにちは。ヤモトです。今回はApplication Gat…

  5. Azure

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

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

  6. Appサービス

    Azure App Serviceを使ってみる

    1.はじめにこんにちは、Cloud Engineerの曽我で…

関連記事

  1. Azure

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

    AzureMonitorで作成できるアラートの種類と制限
  3. 未分類

    「Azure Functions」をC#で触ってみました。#2
  4. Application Gateway

    L7負荷分散 Azure Application Gateway について:1回…
  5. VDI

    WindowsVirtualDesktopのARM
PAGE TOP