今回のテーマ
今回のお話ですが、Azure 仮想マシン管理に関するトピックとなります。
今回は大きく以下の3つの機能を組み合わせた内容となります。
・Microsoft Flow
・Azure Automation
・Azure Monitor
まずはこちらに関して簡単に概要をご説明したいと思います。
Microsoft Flow とは
Microosft Flow に関しては過去の投稿でもご紹介しておりますのでそちらも併せてご確認頂け
ればと思いますが、端的に言えばOffice 365が提供する自動化ツールとなります。
Microsoft Flowが提供する機能の中で、自動化の処理をキックする手段として「Flowボタン」
というものが用意されています。
Flowはスマホアプリとしても提供されているのですが、スマホアプリからボタンをクリックする
事で自動化処理を開始する事が出来ます。
Azure Automation とは
FlowがOffice 365の自動化ツールで、こちらはAzure自動化ツールといったところでしょうか。
Automation を利用する仮想マシンの状態や起動、停止などAzureのリソースに対する自動化を
実現する機能となっています。
参考URL:Azure Automation の概要
Azure Monitor とは
Azure Monitorは、最新の詳細なパフォーマンスと使用率のデータを取得したり、全てのAPI
呼び出しを追跡するアクティビティログにアクセスしたり、Azure リソースの問題をデバッグ
するための診断ログの取得が可能です。
またアラートルールを構成する事でステータス変更などを管理者に通知する事が出来ます
参考URL:Azure Monitor
今回のゴール
ご紹介したように Azure Automation 機能を利用する事で Azure 仮想マシンの起動、停止を
スケジュール可能となりますが、スケジュールだけでなく自分の好きなタイミングで手軽に起動、
停止する方法は無いかなぁと考えていたら同じように考えてらっしゃる方がやはりいました!
Using Microsoft Flow to Start and Stop a Set of Azure VMs
https://briantjackett.com/2017/10/15/using-microsoft-flow-to-start-and-stop-a-set-of-azure-vms/
今回はこちらの情報を参考にしながら、実際に起動・停止ボタンを作成し Azure Monitorによる
ステータス監視をプラスした内容をお伝えしたいと思います。
導入ステップの流れ
今回は大きく以下の3ステップで進めていきます
- Azure Automationで仮想マシンの起動・停止アクションを定義
- Microsoft FlowでAzure Automation 処理を呼び出すフローを作成
- Azure Monitorのアラートルールを作成
それでは早速見て行きましょう
導入ステップの詳細
-
Azure Automationで仮想マシンの起動・停止アクションを定義
Automation の最初のステップとして、Automation アカウントを作成していきます。
Azure 管理ポータルにアクセスし、[リソースの作成]をクリックします。
検索窓でAutomationと入力します
検索結果から[オートメーション]をクリックします
[作成]をクリックします
Automationアカウント名、サブスクリプション、リソースグループ、場所を指定して[作成]を
クリックします。今回はアカウント名は[labo01]としました。
作成完了後、アカウント一覧から[labo01]をクリックします
[プロセス オートメーション]-[Runbookギャラリー]をクリックします
ギャラリー一覧の最初に表示される[Start Azure V2 VMs]をクリックします
[インポート]をクリックします。
Runbookの名前を入力し、[OK]をクリックします
Runbook一覧から作成したRunbookを再度クリックします
[編集]をクリックします
[公開]をクリック後、[はい]をクリックします
※一度[公開]を実行することでRunbookの編集可能な状態となります。
[リソース]-[Webhook]をクリックします
[Webhookの追加]をクリックします
Webhookの名前を入力します。その後、URL欄に表示されるアドレスをメモ帳などにコピー&ペーストしておきます。
※URLの情報はセキュリティのため新規作成時のみ表示される情報となっていますので必ず記録しておいて下さい。
コピー&ペーストが完了したら[OK]をクリックします。
続いて[パラメーターと実行設定]の項目を入力します。
Runbookの適用範囲となるリソースグループ名や仮想マシン名を入力し[OK]をクリックします
※今回は特定のリソースグループ内の全ての仮想マシンに適用したいため、リソースグループのみ
指定しました。
ここまでの手順で「仮想マシンを起動する」アクションが整いました。
続いて Runbookギャラリーから[Stop Azure V2 VMs]に対しても同様の手順を実行して
[仮想マシンを停止する]アクションを設定します。
Automationアカウントの構成が完了したら次はMicrosoft Flowの設定に移ります。
-
Microsoft FlowでAzure Automation 処理を呼び出すフローを作成
Office365 管理ポータルにアクセスし、Flowを選択します。
[一から作成]をクリックします
再度[一から作成]をクリックします
Flowを実行するトリガーを選択します。今回はFlowボタンをトリガーとしたいので一覧から
[モバイルのFlowボタン]を選択します。
続いて[新しいステップ]-[アクションの追加]をクリックします
アクション一覧から[HTTP]をクリックします
[HTTP-HTTP]をクリックします
[方法]には[POST]を指定します
[URI]には、Automation アカウントのWebhook作成時にコピーしておいたアドレスを入力し
[保存]をクリックします。
※ここでは[Start Azure V2 VMs]作成時にコピーしたアドレスを貼り付けてます
「仮想マシンの停止」のフローに関しても同様の手順を繰り返します。
ここまでの手順でHTTP POSTリクエストをトリガーに Automationで定義した仮想マシンの
起動・停止が発動する仕組みが整いましたので、今回のお題に対する目的は達成出来ました。
ただ、これだけでは仮想マシンの起動・停止を発動したのは良いけどちゃんと実行出来ているのか
気になりますよね。
そこで最後のステップとして、Azure Monitor の機能を利用して仮想マシンの状態を確認する
仕組みを作っていきます。
-
Azure Monitorのアラートルールを作成
Azure 管理ポータルにアクセスし、画面左の [モニター] から、[アラート]に移動し、画面上部の
[新しいアラートルール]をクリックします。
[ターゲットの選択]をクリックします
[リソースの種類のフィルター]のドロップダウンリストから[Virtual Machine ]を選択します
仮想マシンのみ表示される状態となりますので、ここで対象となるリソースグループを選択します
※リソースグループを選択することで、リソースグループ内の全ての仮想マシンが対象となります
[アラートの条件]で[条件の追加]をクリックします
[システムロジックの構成]一覧から[仮想マシンの停止(virtualMachine)]をクリックします
[状態]ドロップダウンから[成功]を選択します
[3.アクショングループ]に移動します
[新しいアクショングループ]をクリックします
アクショングループ名、短い名前、サブスクリプション、リソースグループなど入力します
[アクションタイプ]のドロップダウンリストから[電子メール/SNS/プッシュ/音声]を選択します
任意の[名前]を入力し、[電子メール]チェックボックスをオンにします。
最後に通知先となるメールアドレスを入力後、[OK]をクリックします
※複数アドレスの登録は出来ないため、複数人で受信したい場合はグループエイリアスをご準備下さい
※通知先のメールアドレスにはアクショングループに追加された旨の案内メールが届きます
再度[OK]をクリックします
[アラートルールの作成]をクリックします
作成したアラートルールは画面上部の[アラートルールの管理]から確認出来ます
ここまでの手順と同じ要領で[仮想マシンの割り当て解除 (virtualMachines)]の成功ログを
条件としたアラートルールを作成して設定完了となります。
実際の動作を確認してみる
最後の今回の動作を確認したいと思いますが、Microsoft Flow アプリを初めて利用される場合は
事前に App Store または Google Playからインストールして下さい。
インストールが終わったら、Microsoft Flowを起動し、Office365 アカウントでログインします。
画面下に[ボタン]が表示されますのでこちらをクリックします。
Flowで作成した[仮想マシン起動]と[仮想マシン停止]ボタンが表示されますので、今回は
仮想マシンが現在起動している前提で「仮想マシン停止」を実行してみます。
Flowボタン実行後まもなく、Azure Monitor アラートルールによって仮想マシンが停止した旨の
メールが通知されている事が確認できました。
まとめ
今回のAzure Automation とMicrosoft Flowによる仮想マシン起動・停止してみようという
お話でしたが、如何でしたでしょうか。
Azure といったクラウドサービスは使った分だけ課金されるものです。
水道のように蛇口をひねれば水がすぐに飲めるという利便性がある一方で、使えるからと
言って水を出しっぱなしにしては料金も掛かります。
Azure においても検証環境など短時間で利用するもの、常時起動する必要のないものは
使いたい時だけ起動すればお財布にも優しい使い方だと思います。
皆さんも是非これらの機能を利用して煩雑な手順を自動化などを試して頂ければと思います。
今回も最後まで読んで下さり有難うございました!
記事担当者:津久井