Azure は Microsoft が提供する様々なクラウドサービスのプラットフォームです。Azure の中には Azure Virtual Machines という仮想マシンを動かすサービスがあります。仮想マシンは用途によっては常に起動している必要はなく、仮想マシンの料金が Azure の計算資源を割り当てられている時間によって定まる都合上、定期的に自動で停止と起動を繰り返したくなります。 Azure Logic Apps というワークフローを自動化、統合するためのサービスを利用してこれを実装する方法を紹介します。
Azure における仮想マシンの概要 – Azure Virtual Machines | Microsoft Learn
概要 – Azure Logic Apps | Microsoft Learn
仮想マシンは既に用意されているものとして話を進めます。
Azure 上でロジックアプリと検索すると目的のサービスが現れます。ここでロジックを持つリソースを作るのがロジックアプリです。今回ロジックアプリを作成する際の設定はとりあえず次のスクリーンショットで十分です。頻度、計算量、可用性などが求められる場合は設定を見直すなり別のロジックアプリを作るなりした方がいいです。
ロジックアプリのリソースを作り、その中に入るとロジックを作る画面に案内されます。ここでロジックを作ります。今回は定期実行なので一般的なトリガーの繰り返しから作り始めます。この後に自動開始と自動停止の二種類を作りますが、どちらも同じく「繰り返し」から作ります。
まずは共通する定期実行部分です。繰り返しのトリガーには繰り返し間隔の他にタイムゾーンが設定できます。タイムゾーンを日本にしてプレビューを見ながら設定したい間隔になるようにパラメーターを追加、設定します。
次に自動起動です。よくある使用方法なのかありがたいことに仮想マシンを操作する一通りの機能がロジックアプリには備わっています。この中にある「仮想マシンの開始」を使うことで仮想マシンの起動を行うようになります。
「仮想マシンの開始」を選ぶと「サインインを使用して接続する」「サービスプリンシバルを使用して接続する」「マネージドIDを使用して接続する」といった選択肢が表示されます。これは権限に関わる部分です。自動起動したい仮想マシンを操作できる権限を持つどれかで接続する必要があります。接続を設定が完了するとどの仮想マシンを対象にするかの選択肢が現れます。ここで仮想マシンを選ぶことで「仮想マシンの開始」が有効になります。完成すると次のようになります。
自動停止も同様にロジックアプリのリソースを作り、次のスクリーンショットのようにロジックを設定します。ここで大事なのは「仮想マシンの割り当て解除」を選ぶことです。Azureの仮想マシンはリソースの割り当てに対しての従量課金となっています。もし不要な時間帯に仮想マシンを動かさないことでお金を節約したいのであれば単に停止するのみでなく割り当てを解除する必要があります。
仮想マシンの課金の仕組み | Microsoft Learn#コンピュート要素について
後は「トリガーの実行」から単発で動作をテストしたり、概要タブの実行ログを見て毎日しっかり動いていることを確認できれば完成です。