Logic Apps使ったAzure VMの開始(起動)、割り当て解除(停止)のスケジュール化方法
Azure Logic Apps(ロジックアプリ)を利用して、仮想マシン(Azure VM)の開始(起動)や割り当て解除(停止)をスケジュール化する手順です。
仮想マシンには自動シャットダウンの機能が用意されていますが、自動で開始する機能はありません。
Logic AppsにはAzure VM用のコネクタが用意されており、このコネクタには開始、電源オフ、割り当て解除といった操作が含まれています。
今回は、スケジュール実行のトリガーと組み合わせて、仮想マシンを指定した時刻に開始したり、割り当て解除したりするワークフローを作成します。
※本記事内では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。
※本記事内では、ロジックアプリ(Azure Logic Apps)をLogic Appsとして表記しています。
※従量課金(マルチテナント)のLogic Appsリソースを利用しています。
- 1. 仮想マシンを開始、割り当て解除するワークフロー作成から実行まで
- 1.1. 仮想マシンの操作用にAzure VMのコネクタ用意されている
- 1.2. ワークフロー
- 1.3. マネージドIDを割り当て
- 1.4. スケジュール実行のトリガーを作成
- 1.5. 仮想マシン開始のアクションを作成
- 1.6. ワークフローを保存
- 1.7. ワークフローを実行して仮想マシンを開始
- 1.8. Azure Resource Managerコネクタを利用した場合
- 1.9. 仮想マシン割り当て解除する場合のワークフロー
- 1.10. ワークフローのコピー
- 1.11. ワークフローを実行して仮想マシンを割り当て解除
- 1.12. 仮想マシンの電源オフのアクションを利用した場合
- 1.13. 仮想マシンを取得しますのアクションでは状態を取得できない
- 1.14. 平日のみワークフローを実行する
- 2. 最後に
仮想マシンを開始、割り当て解除するワークフロー作成から実行まで
仮想マシンの操作用にAzure VMのコネクタ用意されている
Logic Appsには、Azure VMコネクタが用意されています。
このコネクタは、仮想マシンや仮想マシンスケールセット(VMSS)のリソースに対応しています。
起動、電源オフ(停止)、割り当て解除などの操作を実行できます。
従量課金プラン(シングルテナント)とStandardプラン(マルチテナント)の両方で利用可能です。
Azure VMのコネクタ | |
Azure VMのコネクタです。 仮想マシンや仮想マシンスケールセットに対するアクションが用意されている事がわかります。 |
![]() |
ワークフロー
ScheduleコネクタのRecurrenceトリガーを使用して、実行スケジュールを設定します。
Azure VMコネクタのアクションを利用して、仮想マシンの開始や割り当て解除を行います。
併せて、ワークフローの実行に必要な権限をマネージドIDを使用して付与します。
Logic Appsのリソース作成手順についてはこちらに記載しています。
今回は従量課金(マルチテナント)のプランで作成しています。
トリガーやアクションの概要についてもこちらで紹介しています。
マネージドIDを割り当て
ワークフロー実行時に仮想マシンの操作を行います。
ワークフローから操作に必要な権限を割り当てます。
今回は、システム割り当てマネージドIDを利用します。
リソースグループに対して仮想マシンの共同作成者の権限を割り当てています。
マネージドID割り当て | |
左側のメニューでIDを選択します。 |
![]() |
マネージドIDにロールを割り当てます。 Azureロールの割り当てを選択します。 |
![]() |
ロールの割り当ての追加を選択します。 スコープに対して役割を割り当てます。 今回は仮想マシン共同作成者を割り当てています。 |
![]() |
※デフォルトロールから役割を選択しています。
スケジュール実行のトリガーを作成
ScheduleコネクタのRecurrenceトリガーで、実行するスケジュールを設定します。
Recurrenceトリガーを利用することで、毎日定時にワークフローを実行できます。
今回は、毎日9時30分(日本時間)にワークフローを開始する設定とします。
スケジュール設定 | |
ロジックアプリデザイナーを選択するとトリガーが表示されます。 Scheduleコネクタを選択します。 Recurrenceのトリガーを選択します。 |
![]() |
![]() |
|
Frequencyが頻度の設定になります。日を選択します。
|
Logic Appsの日時の扱いについては、こちらで紹介しています。
仮想マシン開始のアクションを作成
Azure VMコネクタには、"仮想マシンの開始"アクションが用意されています。
Azure VMコネクタを利用する際は、接続を作成する必要があります。
※接続の認証には、システム割り当てマネージドIDを使用しています。
ワークフローを保存
作成したワークフローを保存します。
ワークフローの保存 | |
作成したワークフローを保存します。 |
![]() |
ワークフローを実行して仮想マシンを開始
ワークフローを実行し、仮想マシンが開始されることを確認します。
ワークフローを実行 | |
実行を選択します。 |
![]() |
実行履歴を確認します。 |
![]() |
![]() |
Azure Resource Managerコネクタを利用した場合
Azure Resource Managerコネクタにある、リソース操作を呼び出しのアクションを利用して、仮想マシンを起動することもできます。
Azure Resource Managerコネクタを利用した場合の、ワークフローの作成手順についてはこちらで紹介しています。
仮想マシン割り当て解除する場合のワークフロー
仮想マシンを割り当て解除する場合のワークフローです。
Azure VMコネクタには、"仮想マシンの割り当て解除"アクションが用意されています。
トリガーは、仮想マシン開始時のワークフローと同様にRecurrenceトリガー(Scheduleコネクタ)を利用します。
※接続の認証には、システム割り当てマネージドIDを利用しています。
仮想マシンの割り当て解除 | |
”仮想マシンの割り当て解除”を選択します。
設定が完了したらワークフローを保存します。 |
![]() |
![]() |
|
![]() |
ワークフローのコピー
複製機能を使ってワークフローをコピーすることができます。
Logic Appsの従量課金(マルチテナント)での手順などについては、こちらで紹介しています。
起動と停止をコピーして、ワークフローを作成する場合などに便利かと思います。
ワークフローを実行して仮想マシンを割り当て解除
ワークフローを実行し、仮想マシンが割り当て解除されることを確認します。
仮想マシンの電源オフのアクションを利用した場合
“仮想マシンの電源オフ"アクションもあります。
このアクションを利用した場合、OSのシャットダウンのみを実行します。
電源オフの場合、割り当て解除は行われず、仮想マシンの課金が継続します。
仮想マシンの状態と課金の関係については、こちらで紹介しています。
仮想マシンを取得しますのアクションでは状態を取得できない
“仮想マシンを取得します"というアクションがあります。
このアクションでは、仮想マシンの状態(StoppedやRunningなど)を取得することはできません。
取得できるのは、仮想マシンの情報のみです。
平日のみワークフローを実行する
平日のみワークフローを実行する方法については、こちらで紹介しています。
曜日を判断させることで、平日のみ仮想マシンを起動させることが可能です。
最後に
Logic AppsでAzure VMコネクタを利用した操作を確認してみました。
仮想マシン名を指定するだけで、起動や停止の操作が簡単に行えました。
1つのトリガーと1つのアクションだけで、仮想マシンの起動や停止をスケジュール化することができます。
ワークフローを外部から呼び出すことも可能なので、仮想マシンを自動的に起動したい場合には、とても便利ではないかと思いました。
仮想マシンの起動停止に関しては、こういうソリューションも用意されています。
Automationアカウントに仮想マシンの起動停止のメニューが用意されていたのですが非推奨となっています。
Azure Automationアカウントを利用した、仮想マシン起動停止の方法については、こちらで紹介しています。
PowerShellを使って仮想マシンを起動停止しています。
Automationアカウントでスケジュール実行するようにしています。
仮想マシンの起動停止を行うAzure CLIコマンドやAzure PowerShellコマンドレットについては、こちらで紹介しています。
Logic AppsワークフローからRunbook(Automationアカウント)呼び出して実行する方法については、こちらで紹介しています。
例として仮想マシンを起動しています。