2017.11.02 Azureの仮想サーバーを自動で起動停止

こんにちは、ライジングサン企画のC・Rです。

再びMicrosoft Azureの話です。

パブリッククラウドは従量課金制が基本なので、なるべく効率的な利用をしたいものです。
使っていても使っていなくても、昼でも夜でも、サーバーが稼働してさえいれば料金は増えていきます。

世界のユーザーを対象にしたサービスのバックエンドであれば当然24時間稼働でなければなりませんが、通常のオフィス時間だけ、といった具合に限られた時間だけ利用する場合もあると思います。

・毎朝Azure Portalにログインし、サーバーを起動

・使い終わったらシャットダウン

をすれば良いですが、こんな「忘れたらおしまい」の手運用はもちろんよくないです。
自動化したいですね。

あらゆるサーバーの操作は自動化できるよう、「Azure Automation」というフレームワークが最初からありましたが、これは最初のセットアップ過程と、ある程度のスクリプティングの理解も必要です。

最初はなかったのですが、最近時間が来たら自動で仮想サーバーをシャットダウンしてくれる機能が標準でついてくるようになりました。
これはAzure Automationのセットアップを行わなくても簡単に設定できます。

自動起動+シャットダウンは次回Azure Automationで見てみるとして、今回は自動シャットダウン機能だけ見てみましょう。

仮想マシンのパネルを開きます。

自動シャットダウン機能は「OPERATIONS」の下にある「Auto-shutdown」です。

ちょっと拡大してみましょう。

シャットダウン時間の指定は言うまでもないですが、シャットダウン前に通知を送ることもできます。

WebhookのURLを指定し、カスタムのAPIを叩くこともできますね。
これも試してみたいですが、とりあえずメール通知をやってみますー

通知を設定しておくと、こういうメールが届いていました。

30分後にサーバーがシャットダウンされる旨と、1時間・2時間延期、もしくはシャットダウン自体をスキップさせるためのリンクが親切に載っています。

心遣いはありがたいですが、延期はせずにそのまま時間が来ると、サーバーはシャットダウンされてリソース割り当ても解除されていました。

ちなみに、Azure初心者の方のために一言アドバイス。

OSの中から直接シャットダウンをしても(例えば、Windows Serverをスタートメニューからシャットダウン)、それだけではリソース割り当ては解除されません。
つまり、サーバーは動いていないのに課金は続きます。

割り当てを解除させるためには、Azure PortalもしくはPowerShellコマンドレットでサーバーをシャットダウンさせる必要があります。

では次回にはAzure Automationでちゃんと起動とシャットダウン両方を実現してみたいと思います!

この記事を書いた人

C・R
C・R
韓国生まれ オーストラリア育ち 1979年生まれ
オーストラリアの大学を卒業した後、来日。長年大手金融とインターネットサービス企業を中心にテクニカルサポートとインフラ構築に携わる。近年は主にシステムアーキテクトとして活動中。BIと自動化が大好きで、自宅の家計簿をBIで分析し自己満足に浸っている。