はじめに
AWSではCloudWatchEvents + Lambda + SQSなんかを組み合わせて自動化していたのですが、AzureではAzure Automationを使うとインスタンスの自動起動・停止を簡単に行うことができます。
自身で作ったスクリプトを動かすこともできますが、「ギャラリー」という自動化スクリプトが沢山置いてあるところからスクリプトをインポートして手軽に実行することができます。
インスタンスの自動起動・停止は、ネット上にはいくつか記事が出てきます。2018年6月時点ではアカウントの作成周りは簡略化されているようでしたので手順を載せておきます。
Automationアカウントの作成(初回のみ)
必要事項を記入して「作成」をクリック
少し待つとautomation アカウントが作成されます。
起動停止スクリプトを取得します。
Runbook → ギャラリーを参照をクリック
「Start Azure V2 VMs」「Stop Azure V2 VMs」をクリックして「インポート」をクリックします。
インポートするときに名前がつけられるので、今回は「StartAllVm」「StopAllVm」という名前を付けました。
Runbookにスクリプトが保存されています。
StopAllVmの設定(Startの場合も操作は同じです)
StopAllVmをクリックして、「編集」をクリックします。
「公開」をクリックします。
「テストウィンドウ」ではこのスクリプトのテストができます。
スケジュールを設定するには画面上部の「スケジュール」をクリックします。
時間を決めます。ここでは14:30にVMを停止するようにスケジュールしました。
一度きりでもできますし、定期的な繰り返しも設定可能です。
パラメータの設定ができます。予め止めるVMが決まっている場合などは、VMの名前を指定しておくことができますし、
リソースグループ名だけ指定しておけばリソースグループ配下すべてを停止します。
ログの設定
ちゃんと動いたかどうか確認するにはログのトレースを取っておいてください。
動いたか確認する
完了になるまで待ちます。
VMもちゃんと止まりましたね!
さいごに
ギャラリーを覗いてみるとSQLDatabaseやHDInsightなどのサービスの便利スクリプトがたくさんありました。
気軽に自動化できるのはとても良いので作る前にギャラリーを覗いてみてはどうでしょう。