株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

Azure Automation と Microsoft Flow で 仮想マシンの起動・停止ボタンを作ってみよう

今回のテーマ

皆さん、こんにちは。Microsoft 担当の津久井です。

 

今回のお話ですが、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 管理ポータルにアクセスし、[リソースの作成]をクリックします。

Image1_7

検索窓でAutomationと入力します

Image3

検索結果から[オートメーション]をクリックします

Image4

[作成]をクリックします

Image5

Automationアカウント名、サブスクリプション、リソースグループ、場所を指定して[作成]を

クリックします。今回はアカウント名は[labo01]としました。

Image7

作成完了後、アカウント一覧から[labo01]をクリックします

Image8

[プロセス オートメーション]-[Runbookギャラリー]をクリックします

Image9_2

ギャラリー一覧の最初に表示される[Start Azure V2 VMs]をクリックします

Image15

[インポート]をクリックします。

Image11

Runbookの名前を入力し、[OK]をクリックします

Image13

Runbook一覧から作成したRunbookを再度クリックします

Image19_3

[編集]をクリックします

Image21

[公開]をクリック後、[はい]をクリックします

※一度[公開]を実行することでRunbookの編集可能な状態となります。

Image23

[リソース]-[Webhook]をクリックします

Image24

[Webhookの追加]をクリックします

Image25

Webhookの名前を入力します。その後、URL欄に表示されるアドレスをメモ帳などにコピー&ペーストしておきます。

※URLの情報はセキュリティのため新規作成時のみ表示される情報となっていますので必ず記録しておいて下さい。

Image28

コピー&ペーストが完了したら[OK]をクリックします。

Image29

続いて[パラメーターと実行設定]の項目を入力します。

Runbookの適用範囲となるリソースグループ名や仮想マシン名を入力し[OK]をクリックします

※今回は特定のリソースグループ内の全ての仮想マシンに適用したいため、リソースグループのみ
 指定しました。

Image32

ここまでの手順で「仮想マシンを起動する」アクションが整いました。

続いて Runbookギャラリーから[Stop Azure V2 VMs]に対しても同様の手順を実行して

[仮想マシンを停止する]アクションを設定します。

Image16_2

Automationアカウントの構成が完了したら次はMicrosoft Flowの設定に移ります。

  • Microsoft FlowでAzure Automation 処理を呼び出すフローを作成

Office365 管理ポータルにアクセスし、Flowを選択します。

 

Image42

[一から作成]をクリックします

Image43

再度[一から作成]をクリックします

Image45

Flowを実行するトリガーを選択します。今回はFlowボタンをトリガーとしたいので一覧から

[モバイルのFlowボタン]を選択します。

Image46

続いて[新しいステップ]-[アクションの追加]をクリックします

Image49

アクション一覧から[HTTP]をクリックします

Image50

[HTTP-HTTP]をクリックします

Image51

[方法]には[POST]を指定します

Image53

[URI]には、Automation アカウントのWebhook作成時にコピーしておいたアドレスを入力し

[保存]をクリックします。

※ここでは[Start Azure V2 VMs]作成時にコピーしたアドレスを貼り付けてます

Image54

仮想マシンの停止」のフローに関しても同様の手順を繰り返します。

ここまでの手順でHTTP POSTリクエストをトリガーに Automationで定義した仮想マシン

起動・停止が発動する仕組みが整いましたので、今回のお題に対する目的は達成出来ました。

 

ただ、これだけでは仮想マシンの起動・停止を発動したのは良いけどちゃんと実行出来ているのか

気になりますよね。

 

 そこで最後のステップとして、Azure Monitor の機能を利用して仮想マシンの状態を確認する

仕組みを作っていきます。

 

  • Azure Monitorのアラートルールを作成

 Azure 管理ポータルにアクセスし、画面左の [モニター] から、[アラート]に移動し、画面上部の

[新しいアラートルール]をクリックします。

Image3_4

[ターゲットの選択]をクリックします

Image4_3

[リソースの種類のフィルター]のドロップダウンリストから[Virtual Machine ]を選択します

Image5_2

仮想マシンのみ表示される状態となりますので、ここで対象となるリソースグループを選択します

※リソースグループを選択することで、リソースグループ内の全ての仮想マシンが対象となります

Image7_2

[アラートの条件]で[条件の追加]をクリックします

Image8_2

[システムロジックの構成]一覧から[仮想マシンの停止(virtualMachine)]をクリックします

Image9_4

[状態]ドロップダウンから[成功]を選択します

Image11_3

[3.アクショングループ]に移動します

Image14_3

[新しいアクショングループ]をクリックします

Image16_3

アクショングループ名、短い名前、サブスクリプション、リソースグループなど入力します

Image17_2

[アクションタイプ]のドロップダウンリストから[電子メール/SNS/プッシュ/音声]を選択します

Image19_4

任意の[名前]を入力し、[電子メール]チェックボックスをオンにします。

最後に通知先となるメールアドレスを入力後、[OK]をクリックします

※複数アドレスの登録は出来ないため、複数人で受信したい場合はグループエイリアスをご準備下さい

※通知先のメールアドレスにはアクショングループに追加された旨の案内メールが届きます

Inkedimage40_li

再度[OK]をクリックします

Image22_2

[アラートルールの作成]をクリックします

Image23_2

作成したアラートルールは画面上部の[アラートルールの管理]から確認出来ます

Image44_2

ここまでの手順と同じ要領で[仮想マシンの割り当て解除 (virtualMachines)]の成功ログを

条件としたアラートルールを作成して設定完了となります。

実際の動作を確認してみる

最後の今回の動作を確認したいと思いますが、Microsoft Flow アプリを初めて利用される場合は

事前に App Store または Google Playからインストールして下さい。

App Storeはこちら

Google Playはこちら

インストールが終わったら、Microsoft Flowを起動し、Office365 アカウントでログインします。

画面下に[ボタン]が表示されますのでこちらをクリックします。

 

Flowで作成した[仮想マシン起動]と[仮想マシン停止]ボタンが表示されますので、今回は

仮想マシンが現在起動している前提で「仮想マシン停止」を実行してみます。

Button_3

Flowボタン実行後まもなく、Azure Monitor アラートルールによって仮想マシンが停止した旨の

メールが通知されている事が確認できました。

Image55 

まとめ

今回のAzure Automation とMicrosoft Flowによる仮想マシン起動・停止してみようという

お話でしたが、如何でしたでしょうか。

Azure といったクラウドサービスは使った分だけ課金されるものです。

水道のように蛇口をひねれば水がすぐに飲めるという利便性がある一方で、使えるからと

言って水を出しっぱなしにしては料金も掛かります。

Azure においても検証環境など短時間で利用するもの、常時起動する必要のないものは

使いたい時だけ起動すればお財布にも優しい使い方だと思います。

皆さんも是非これらの機能を利用して煩雑な手順を自動化などを試して頂ければと思います。

今回も最後まで読んで下さり有難うございました!

記事担当者:津久井