Logic Apps使ったAzure VMの開始(起動)、割り当て解除(停止)のスケジュール化方法
Azure Logic Apps(ロジックアプリ)を使った、仮想マシン(Azure VM)の開始(起動)、割り当て解除(停止)のスケジュール化手順です。
仮想マシンに自動シャットダウンのメニューはありますが、自動で開始するメニューはありません。
Logic AppsにはAzure VMのコネクタが用意されています。
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コネクタのRecurenceトリガーで実行するスケジュールを設定します。
Azure VMコネクタのアクションで仮想マシンを開始、割り当て解除します。
併せてワークフロー実行にあたって必要な権限付与をマネージドIDで実施します。
Logic Appsのリソース作成手順についてはこちらに記載しています。
今回は従量課金(マルチテナント)のプランで作成しています。
トリガーやアクションの概要についてもこちらで紹介しています。
マネージドIDを割り当て
ワークフロー実行時に仮想マシンの操作します。
ワークフローから操作に必要な権限を割り当てます。
今回はシステム割り当てマネージドIDを利用します。
リソースグループに対して仮想マシンの共同作成者を割り当てています。
マネージドID割り当て | |
左側のメニューでIDを選択します。 |
|
マネージドIDにロールを割り当てます。 Azureロールの割り当てを選択します。 |
|
ロールの割り当ての追加を選択します。 スコープに対して役割を割り当てます。 今回は仮想マシン共同作成者を割り当てています。 |
※デフォルトロールから役割を選択しています。
スケジュール実行のトリガーを作成
ScheduleコネクタのRecurenceトリガーで実行するスケジュールを設定します。
Recurenceトリガーを利用して毎日定時にワークフローを実行できます。
毎日9時30分(日本時間)にワークフローを開始する設定とします。
スケジュール設定 | |
ロジックアプリデザイナーを選択するとトリガーが表示されます。 Scheduleコネクタを選択します。 Recurenceのトリガーを選択します。 |
|
Frequencyが頻度の設定になります。日を選択します。
|
Logic Appsの日時の扱いについてはこちらで纏めています。
仮想マシン開始のアクションを作成
Azure VMコネクタには"仮想マシンの開始"のアクションが用意されています。
Azure VMコネクタ利用時は接続の作成が必要です。
※接続の認証にはシステム割り当てマネージドIDを利用しています。
ワークフローを保存
作成したワークフローを保存します。
ワークフローの保存 | |
作成したワークフローを保存します。 |
ワークフローを実行して仮想マシンを開始
ワークフローを実行して仮想マシンの開始を確認します。
ワークフローを実行 | |
実行を選択します。 |
|
実行履歴を確認します。 |
|
Azure Resource Managerコネクタを利用した場合
Azure Resource Managerコネクタのリソース操作を呼び出しのアクションを利用しても仮想マシンを起動できます。
ワークフローの作成手順についてはこちらで紹介しています。
仮想マシン割り当て解除の場合のワークフロー
仮想マシンを割り当て解除する場合のワークフローです。
Azure VMコネクタには”仮想マシンの割り当て解除”のアクションが用意されています。
トリガーは仮想マシン開始時のワークフローと同様にRecurenceトリガー(Scheduleコネクタ)を利用します。
”仮想マシンの電源オフ”のアクションもあります。
このアクションのを利用した場合は、OSのシャットダウンのみを行います。
電源オフの場合は割り当て解除はされず仮想マシンの課金は継続します。
仮想マシンの状態と課金の関係についてはこちらで紹介しています。
※接続の認証にはシステム割り当てマネージドIDを利用しています。
仮想マシンの割り当て解除 | |
”仮想マシンの割り当て解除”を選択します。
設定が完了したらワークフローを保存します。 |
|
ワークフローのコピー
Logic Appsの従量課金(マルチテナント)では複製を使ってワークフローをコピーする事ができます。
こちらで手順等を紹介しています。起動と停止を個別にワークフロー作成する場合には便利かと思います。
ワークフローを実行して仮想マシンを割り当て解除
ワークフローを実行して仮想マシンの割り当て解除を確認します。
仮想マシンの割り当て解除 | |
実行履歴を確認します。 グリーンとなっており、正常に完了している事が分かります。 仮想マシンでDeallocate Virtual Machineのアクティビティログが確認できます。 イベント開始者がLogic Appsの名前となっています。 ワークフローにより仮想マシンが割り当て解除された事が確認できます。 |
|
仮想マシンの電源オフのアクションを利用した場合
”仮想マシンの電源オフ”のアクションを利用した場合は、OSのシャットダウンのみを行います。
電源オフの場合は割り当て解除はされず仮想マシンの課金は継続します。
仮想マシンの状態と課金の関係についてはこちらで紹介しています。
仮想マシンのステータスは取得できない
“仮想マシンを取得します"というアクションがあります。
仮想マシンのステータス(StoppedやRunningなど)は取得できません。
仮想マシンの情報のみを取得します。
平日のみワークフローを実行する
平日のみワークフローを実行する方法についてはこちらで紹介しています。
曜日判断させる事で平日のみ仮想マシンを起動させるといった事ができます。
最後に
Logic AppsでAzure VMコネクタを利用した操作を確認してみました。
仮想マシン名を指定するだけで起動停止の操作ができました。
1つのトリガー、1つのアクションだけで仮想マシンの起動、停止のスケジュール化ができます。
仮想マシンを自動起動したい場合にはとても便利じゃないかと思いました。
仮想マシンの起動停止に関しては、こういうソリューションも用意されています。
Automationアカウントに仮想マシンの起動停止のメニューが用意されていたのですが非推奨となっています。
Azure Automationアカウントを利用した、仮想マシン起動停止の方法についてはこちらで紹介しています。
PowerShellを使って仮想マシンを起動停止しています。
Automationアカウントでスケジュール実行するようにしています。
仮想マシンの起動停止を行うAzure CLIコマンドやAzure PowerShellコマンドレットについてはこちらで紹介しています。
Logic AppsワークフローからRunbook(Automationアカウント)呼び出して実行する方法についてはこちらで紹介しています。
例として仮想マシンを起動しています。