はじめに
Azure VMのコストを削減します。開発環境やテスト環境など、特定の時間帯のみ稼働すれば良いVMの場合、使わない時間に休止することで大幅なコスト削減が可能です。停止ではなく、作業中の状態に復旧できる休止を使えるのが良い点です。
いくつかの案を検討しましたが、結局、無料枠のVMからazコマンドでコントロールする選択肢にしてみました。
1. Azure AutomationのRunbookを活用する
言葉でいうと簡単ですが、意外と設定が複雑で面倒でしたので、回避してしまいました。
2. ポータルのVMタスク(自動シャットダウン・自動起動)を活用する
Azureのアカウント内ではなく、外側のOutlookのタスクを使っているので、やめました。もっと単純にしたいです。
3. Azure Logic Appsからノーコードで実現する
ノーコードですが、すごく大変な手順のため、見送りました。
4. VM自身からAzure CLIで実施する
狙っていたように、簡単で良かったのですが、休止はできても、起動ができません。
起動するためには、動いているコンピュートリソースがいるはずなので。
5. Azureの外からAzure CLIで実施する
4の仕組みを実現するために、無料のVMから動かせばいいのでは!と
この案を採用しました。特定モデルのVMが750時間無料!これです。
ここで、タスクスケジューラからazコマンドで開始・休止を行うbatを設定すればいい。
batファイル2個と、スケジュールを2個登録するだけ。非常にシンプルです。
しかも、1ヶ月常時起動しても24x31=744Hなので、無料。別に遅くていい。
12 か月間
Azure Virtual Machines—Windows
B1s、B2pts v2 (Arm ベース)、B2ats v2 (AMD ベース) のバースト可能 VM それぞれ 750 時間
このとき、まだ、750時間無料の意味を正しく捉えていませんでした。
(次回に続く)