Start/Stop VMs during off-hours の概要
注意
2023 年 9 月 30 日までに廃止されるため、オフ時間バージョン 1 の VM の起動/停止は現在、マーケットプレースで使用できません。 一般公開された バージョン 2 の使用を開始することをお勧めします。 新しいバージョンでは、既存のすべての機能を提供し、1 つの Start/Stop インスタンスから複数のサブスクリプションをサポートするなどの新しい機能も提供します。 バージョン 1 のソリューションが既にデプロイされている場合でも、この機能を使用できます。2023 年 9 月 30 日までサポートが提供されます。 お知らせの詳細は近日中に共有される予定です。
Start/Stop VMs during off-hours 機能は、有効になっている Azure VM を開始または停止するものです。 ユーザー定義のスケジュールでマシンを開始または停止し、Azure Monitor ログを介して分析情報を取得し、アクション グループを使用してオプションのメールを送信することができます。 この機能は、ほとんどのシナリオにおいて、Azure Resource Manager とクラシック VM の両方で有効にできます。
この機能では、Start-AzVm コマンドレットを使用して VM を開始します。 VM を停止するためには、Stop-AzVM を使用します。
Note
Start/Stop VMs during off-hours は、利用可能な最新バージョンの Azure モジュールをサポートするように更新されています。 AzureRM から Az モジュールに移行したため、この機能の更新版 (Marketplace から入手可能) では、AzureRM モジュールはサポートされません。 Runbook は、新しい Azure Az モジュール コマンドレットを使用するように更新されていますが、AzureRM プレフィックス エイリアスを使用します。
この機能は、VM のコストを最適化する必要があるユーザー向けに、分散型で低コストの自動化オプションを提供します。 この機能は次の目的で使用できます。
- VM の起動と停止をスケジュールする。
- Azure タグを使用し、VM の起動と停止を昇順でスケジュールします。 クラシック VM の場合、このアクティビティはサポートされていません。
- CPU 使用率の低さに基づいて VM を自動停止する。
現在の機能での制限を次に示します。
- 任意のリージョンの VM が管理されますが、Azure Automation アカウントと同じサブスクリプションでのみ使用できます。
- Log Analytics ワークスペース、Azure Automation アカウント、Alerts がサポートされているリージョンの Azure と Azure Government で利用できます。 現在、Azure Government の各リージョンでは電子メール機能はサポートされていません。
アクセス許可
VM の Start/Stop VMs during off-hours 機能を有効にするには、特定のアクセス許可が必要です。 そのアクセス許可は、事前に作成した Automation アカウントと Log Analytics ワークスペースをこの機能で使用するのか、新しいアカウントとワークスペースを作成するのかによって異なります。
サブスクリプションの共同作成者であり、かつ Azure Active Directory (AD) テナントの全体管理者である場合は、アクセス許可を構成する必要はありません。 これらの権限がない場合、またはカスタム ロールを構成する必要がない場合は、以下で説明するアクセス許可を持っていることを確認してください。
既存の Automation アカウントと Log Analytics ワークスペースのアクセス許可
既存の Automation アカウントと Log Analytics ワークスペースを使用して VM の Start/Stop VMs during off-hours 機能を有効にするには、リソース グループ スコープで次のアクセス許可が必要になります。 ロールの詳細については、「Azure カスタム ロール」をご覧ください。
権限 | Scope |
---|---|
Microsoft.Automation/automationAccounts/read | リソース グループ |
Microsoft.Automation/automationAccounts/variables/write | リソース グループ |
Microsoft.Automation/automationAccounts/schedules/write | リソース グループ |
Microsoft.Automation/automationAccounts/runbooks/write | リソース グループ |
Microsoft.Automation/automationAccounts/connections/write | リソース グループ |
Microsoft.Automation/automationAccounts/certificates/write | リソース グループ |
Microsoft.Automation/automationAccounts/modules/write | リソース グループ |
Microsoft.Automation/automationAccounts/modules/read | リソース グループ |
Microsoft.automation/automationAccounts/jobSchedules/write | リソース グループ |
Microsoft.Automation/automationAccounts/jobs/write | リソース グループ |
Microsoft.Automation/automationAccounts/jobs/read | リソース グループ |
Microsoft.OperationsManagement/solutions/write | リソース グループ |
Microsoft.OperationalInsights/workspaces/* | リソース グループ |
Microsoft.Insights/diagnosticSettings/write | リソース グループ |
Microsoft.Insights/ActionGroups/Write | リソース グループ |
Microsoft.Insights/ActionGroups/read | リソース グループ |
Microsoft.Resources/subscriptions/resourceGroups/read | リソース グループ |
Microsoft.Resources/deployments/* | リソース グループ |
バージョン 1 のコンポーネント
Start/Stop VMs during off-hours 機能には、構成済みの Runbook、スケジュール、Azure Monitor ログとの統合が含まれています。 これらの要素を使用して、ビジネス ニーズに合わせて VM のスタートアップとシャットダウンを調整できます。
バージョン 1 の Runbook
機能によって Automation アカウントにデプロイされる Runbook の一覧を次の表に示します。 Runbook のコードは変更しないでください。 新しい機能が必要なときは、独自の Runbook を記述してください。
重要
名前の末尾に child が付いている Runbook を直接実行しないでください。
すべての親 Runbook には WhatIf
パラメーターがあります。 このパラメーターを True に設定すると、パラメーターなしで実行されたときの Runbook の実行内容を詳細に指定し、正しい VM が対象になっていることを検証することができます。 WhatIf
パラメーターが False に設定されている場合、Runbook では定義されているアクションのみが実行されます。
Runbook | パラメーター | 説明 |
---|---|---|
AutoStop_CreateAlert_Child | VMObject AlertAction WebHookURI |
親 Runbook から呼び出されます。 この Runbook は、Auto-Stop シナリオでリソースごとにアラートを作成します。 |
AutoStop_CreateAlert_Parent | VMList WhatIf: True または False |
対象となるサブスクリプションまたはリソース グループ内の VM 上で、Azure アラート ルールを作成または更新します。 VMList は、コンマ区切りの (空白なしの) VM の一覧です (例: vm1,vm2,vm3 )。WhatIf を使用すると、Runbook ロジックを実行せずに検証できます。 |
AutoStop_Disable | なし | Auto-Stop アラートと既定のスケジュールを無効にします。 |
AutoStop_VM_Child | WebHookData | 親 Runbook から呼び出されます。 アラート ルールによってこの Runbook が呼び出され、クラシック VM が停止されます。 |
AutoStop_VM_Child_ARM | WebHookData | 親 Runbook から呼び出されます。 アラート ルールによってこの Runbook が呼び出され、VM が停止されます。 |
ScheduledStartStop_Base_Classic | CloudServiceName アクション:開始または停止 VMList |
Cloud Services によるクラシック VM グループでのアクションの開始または停止を実行します。 |
ScheduledStartStop_Child | VMName アクション:開始または停止 ResourceGroupName |
親 Runbook から呼び出されます。 停止スケジュールの起動または停止アクションを実行します。 |
ScheduledStartStop_Child_Classic | VMName アクション:開始または停止 ResourceGroupName |
親 Runbook から呼び出されます。 クラシック VM に対して、スケジュールに従って開始または停止アクションを実行します。 |
ScheduledStartStop_Parent | アクション:開始または停止 VMList WhatIf: True または False |
サブスクリプション内のすべての VM を開始または停止します。 これらの対象のリソース グループに対してのみ実行するように変数 External_Start_ResourceGroupNames および External_Stop_ResourceGroupNames を編集します。 External_ExcludeVMNames 変数を更新することで、特定の VM を除外することもできます。 |
SequencedStartStop_Parent | アクション:開始または停止 WhatIf: True または False VMList |
開始または停止アクティビティのシーケンスを指定する各 VM に、sequencestart および sequencestop という名前のタグを作成します。 これらのタグ名では、大文字と小文字が区別されます。 タグの値は、起動または停止する順序に対応する正の整数の一覧にする必要があります (例: 1,2,3 )。 注:VM は、 External_Start_ResourceGroupNames 、External_Stop_ResourceGroupNames 、および External_ExcludeVMNames 変数で定義されたリソース グループ内にある必要があります。 アクションを有効にするための適切なタグが必要です。 |
バージョン 1 の変数
次の表は、Automation アカウント内に作成される変数の一覧です。 External
のプレフィックスが付いた変数のみを変更します。 Internal
プレフィックスが付いた変数を変更すると、望ましくない影響が生じます。
Note
VM 名とリソース グループの制限は、主に可変サイズの結果です。 「Azure Automation での変数アセット」を参照してください。
Note
変数 External_WaitTimeForVMRetryInSeconds
の場合、既定値は 600 から 2100 に更新されています。
すべてのシナリオで、変数 External_Start_ResourceGroupNames
、External_Stop_ResourceGroupNames
、External_ExcludeVMNames
は、VM のターゲット設定に必要です。ただし、AutoStop_CreateAlert_Parent、SequencedStartStop_Parent、ScheduledStartStop_Parent Runbook のコンマ区切りの VM リストは除きます。 つまり、開始および停止アクションを発生させるには、対象のリソース グループに VM が属している必要があります。 このロジックは Azure Policy に似ています。サブスクリプションまたはリソース グループを対象にすることができ、アクションは新しく作成された VM に継承されます。 この方法により、VM ごとに個別のスケジュールを保持したり、スケールで起動および停止を管理したりする必要がなくなります。
バージョン 1 のスケジュール
注意
この記事は最近、Log Analytics ではなく Azure Monitor ログという用語を使うように更新されました。 ログ データは引き続き Log Analytics ワークスペースに格納され、同じ Log Analytics サービスによって収集されて分析されます。 Azure Monitor のログの役割をより適切に反映させるために、用語を更新しています。 詳しくは、Azure Monitor の用語の変更に関するページをご覧ください。
バージョン 1 の機能を表示する
有効にした機能にアクセスするには、次のいずれかのメカニズムを使用します。
Automation アカウントから、 [関連リソース] の [VM の開始/停止] を選択します。 [VM の起動/停止] ページで、 [VM ソリューションの開始/停止] の下にある [ソリューションの管理] を選択します。
Automation アカウントにリンクされている Log Analytics ワークスペースに移動します。 ワークスペースを選択した後、左側のペインから [ソリューション] を選択します。 [ソリューション] ページで、一覧から Start-Stop-VM[ワークスペース] を選択します。
機能を選択すると、Start-Stop-VM[ワークスペース] ページが表示されます。 ここでは、StartStopVM タイルの情報など、重要な詳細を確認できます。 Log Analytics ワークスペースと同様、このタイルには、その機能に関して開始された Runbook ジョブの数と、正常に終了した Runbook ジョブの数、およびそのグラフが表示されます。
ジョブ レコードの詳細な分析を実行するには、ドーナツ タイルをクリックします。 ダッシュボードに、ジョブ履歴と定義済みのログ検索クエリが表示されます。 Log Analytics Advanced ポータルに切り替えて、検索クエリに基づいて検索を実行します。
次のステップ
お使いの環境に含まれる VM でこの機能を有効にするには、「Start/Stop VMs during off-hours を有効にする」を参照してください。