AzureVMを自動起動/停止させる手順書（無料）

Azure　VirtualMachineを決められた時間に、自動的に起動、停止させる手順書です。
Azureから提供されているものだけを使い、無料で設定することができます。

### AzureActiveDirectoryにユーザを追加する
自動起動/停止を行うためにAzureAutomationというサービスを使用するのですが、そのためにAzureポータル上からユーザの作成が必要となります。

1.Azureポータルメニューから、[参照]→ActiveDirectoryを選択
<img width="1156" alt="160324-0001.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/850984dd-0a68-4262-cf93-8c37788e89ba.jpeg">
選択すると、旧Azureポータルに遷移します。  
2. [既定のディレクトリ]画面上部の[ユーザ]メニューを選択し、画面下部のユーザの追加ボタンをクリック
<img width="1984" alt="160324-0002.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/ab12a770-b823-d33e-6d59-7bedc79072c4.jpeg">

3.ユーザ情報を登録します。
<img width="1636" alt="160325-0002.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/c489858a-fbb7-b994-f993-32f2cfe6646f.jpeg">

MULTI-FACTOR AUTHENTICATIONはチェックしない。
<img width="1636" alt="160325-0003.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/9715173b-befc-a07a-c97f-1264cfe8c409.jpeg">

ここで表示されるユーザ名とパスワードをコピーしておくと、のちのち楽になります。
<img width="1636" alt="160325-0004.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/4d1a8c04-a12d-ca9f-d895-940be3c065cd.jpeg">


4.作成したユーザにサブスクリプションを紐付ける
ユーザを作成したら、旧ポータルメニューから[設定]を選択し、上部メニューから[管理者]を選択。
ページ下部の追加ボタンをクリック。
<img width="2398" alt="160325-0008.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/ea667e5e-bd79-cea3-83b1-46af4ee74899.jpeg">

メールアドレスには3で作成した際のユーザ名（XXXXX@XXXX.onmicrosoft.com）を入力し、対象サブスクリプションを選択。
<img width="2366" alt="160325-0007.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/38af22dd-f84b-92de-9aab-cff45dfe332b.jpeg">
ここまででAutomation利用に必要なユーザ登録は完了です。
ここで一度ログアウトし、一時パスワードを変更しておきます。


### Automationアカウントの作成
再び新ポータルに戻り、[参照]メニューからAutomationアカウントを選択
<img width="1124" alt="160325-0009.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/1270d495-1fdb-9e63-2ea8-ccdf9268815d.jpeg">

[Automationアカウント]ページ上部の追加ボタンをクリック
<img width="1058" alt="160325-0010.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/a9763691-3004-ff8c-d605-25cb1fb6a518.jpeg">

任意の値を入力しアカウントを作成。Automationは有料プランもありますが、この時点では無料プランとして作成されます。
<img width="712" alt="160325-0011.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/63324077-03bd-277c-47cb-8f21fd26ff1a.jpeg">

### Automation資産の登録
作成したAutomationパネルから[資産]を選択
<img width="1234" alt="160325-0017.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/b5610847-5cc9-f1c8-96c7-c5055f8c972c.jpeg">


1.資格情報の追加
<img width="1212" alt="160325-0015.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/3467a91c-8484-dccc-0417-12647dcf59bc.jpeg">
任意の名前（あとで使用するのでコピーしておくと楽）、登録したユーザ名（XXXXX@xxx.onmicrosoft.com)、パスワードを入力。
<img width="682" alt="160325-0014.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/27e12e51-0b1a-f62c-4809-c50915ac5cd5.jpeg">

2.変数の追加
今度は[変数]パネルを開き
<img width="1218" alt="160325-0013.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/9fe7668e-403f-0b38-611f-53beea6b702e.jpeg">　　
サブスクリプションIDを表す任意の名前と、ユーザに紐付けたサブスクリプションID(XXXXX-XXXXX-・・）を登録。
<img width="700" alt="160325-0027.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/a67f2b6b-8811-5a17-63c8-a6cabd1229e8.jpeg">

### Runbookの追加
続いて起動/停止の実行スクリプト(Runbook)の設定を行います。
<img width="1218" alt="160325-0012.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/250b4faa-8788-c5d7-5e59-11b7adad2f6f.jpeg">

　　
VMの起動/停止スクリプトはいくつか提供されているものがあります。
[ギャラリーを参照]から[Start Azure ARM VMs]というRunbookをインポートします。
名前の通りVMを起動させるものですが、後述の設定方法は停止スクリプトの[Stop Azure ARM VMs]でも全く同じです。
![160325-0018.jpg](https://qiita-image-store.s3.amazonaws.com/0/118585/86e0f77f-9d6b-ae1b-bede-32214f2dd00f.jpeg)
グラフィックRunbookというのは、powershellを実行経路などをわかりやすく画面上でグラフィカルに編集できるものです。powershellよくわからんという場合は、こちらを選択すればよさげ。
どちらにしろ今回はpowershellをいじくったりはしません。


### Runbookへの変数設定
インポートしたRunbookに対して、先ほどAutomationの[資産]で登録した内容を設定していきます。

グラフィックRunbookの編集パネルから[入力と出力]をクリック
<img width="906" alt="160325-0020.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/90c40c7a-2958-8a9a-9421-fef1ca3c878a.jpeg">

[Start Azure ARM VMs]で設定が必要な項目は４つあります。
リソースグループ名、サブスクリプションID、資格情報名、起動させるVMの名称です。
リソースグループ名と起動VM名は対象のものを入力し、
サブスクリプション名と資格情報名には先ほど[資産]で登録したものをそれぞれ設定してください。
入力する際は[規定値]を[カスタム]にし、[カスタムの規定値]欄に設定してください。
<img width="1308" alt="160325-0021.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/22d9a934-f749-c3e1-82bd-f645156e3541.jpeg">
入力したらRubbookを一度保存し、[テストウィザード]で実行結果を確認してください。

テストが完了すると指定したVMが実際に起動されます。
<img width="1662" alt="160325-0025.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/4b2d2255-d3c4-37e5-41ac-6b77631b9c30.jpeg">

テスト後、Runbookの編集パネルから[発行]ボタンをクリックしてください。
<img width="906" alt="160325-0020.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/95e327c6-d60c-02ee-0878-1f15f69a65b0.jpeg">

これでRunbookから自動的にVMを起動させることができました。
最後にこのRunbookの実行時間を設定し、スケジュールによる自動起動ができるようにします。

### Runbookにスケジュールを設定する
スケジュール設定をおこなうRunbookを選択し、[スケジュール]ボタンをクリック。
<img width="1224" alt="160325-0019.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/46aaff80-63d2-788d-d155-7220f6903907.jpeg">

[スケジュール追加]ボタンを選択
<img width="1224" alt="160325-0028.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/118585/53fecdd2-963b-9432-5e58-81e4f8227c12.jpeg">

[スケジュール]→[新しいスケジュールを作成します]を選択し、任意の時間、繰り返しタイミングを設定します。
![160325-0030.jpg](https://qiita-image-store.s3.amazonaws.com/0/118585/e51f5406-02a7-38c5-32bc-16fd51fa4ca0.jpeg)

これで指定したRunbookを決められた時間に動作させることができるようになりました。
今回は起動Runbookでの設定でしたが、停止も全く同じなので試してみてください。
停止の場合は「停止（割り当て済み）」になるので、停止忘れによる無駄な課金が発生することもなくなります。