今回は Azure の節約につながる電源管理を自動化する方法を紹介します。Azure は従量課金制のサービスが多く、中でも多くの場合よく使うのは仮想マシンサービスです。仮想マシンは電源が入っている間コンピュートリソースに対する課金が発生します。電源をオフにしていれば、仮想マシンを利用していないので課金されません。これに加えてストレージやネットワークの料金が発生します。
自動電源管理の仕組み
Azure Automation による電源管理の仕組みは次の通りです。Azure Automation で仮想マシンの電源管理スクリプトをスケジューリングし、仮想マシンの電源操作を行います。実行ログは連携されている Log Analytics に保存されます。電源操作する対象の仮想マシンはリソースグループ単位で指定します。
Azure Automation でのピーク時間外 VM 起動/停止ソリューション
スケーリングの種類
標準で次の3種類のスケーリングが提供されています。今回は1番と2番を紹介します。
- 時間指定でのスケーリング
- 曜日と時間指定でのスケーリング
- リソース使用率に基づくスケーリング
自動電源管理の展開
時間指定でのスケーリングをセットアップ
電源管理のためには Azure Automation の作成が必要です。以下記事などをもとに作成を進めてください。
作成した Automation アカウントのメニューから、[VM の開始/停止] をクリックします。
[詳細を表示して、ソリューションを有効にします] をクリックして展開を始めます。
[ワークスペース] でログを保存する先の Log Analytics ワークスペースを選択します。
[パラメーター] ブレードでは、時間指定でのスケジューリングの設定を行います。設定したら [作成] をします。
- [Target ResourceGroup Names]:電源管理対象とするリソースグループ名を指定
- [VM Exclude List]:電源管理対象外とする仮想マシンリソース名を指定
- [Daily Start Time]:仮想マシン起動時間を指定
- [Daily Stop Time]:仮想マシン停止時間を指定
- [Receive Email Notifications]:スクリプト実行時にメール通知するか選択
- ([Yes] の場合)[Email Address]:通知先のメールアドレスを指定
これで毎日特定の時間に電源を制御することができます。一番簡単な方法ですが、土日も含んで毎日実行されます。
曜日と時間指定でのスケーリング
次はもう少し柔軟に、曜日を指定して実行する方法を紹介します。
Automation アカウントのメニューから [スケジュール] を選択します。まずは[Scheduled-~] と名前のつく2つのスケジュールを [オフ] にし、[Sequenced-〜] と名前のつく2つのスケジュールを [オン] にします。
実行する曜日と時間を指定して、[有効] を [はい] にします。
さらに、電源管理の対象となる仮想マシンリソースにタグを追加します。sequencestart
と sequencestop
のタグを追加し、それぞれに正の値を指定します。この値の順番にしたがって、電源 ON/OFF 操作が各リソースへ実行されます。
あとは指定の時間になると、スクリプトが実行されます。Automation アカウントの [ジョブ] 画面から実行結果ログが確認できます。
コメント