仮想マシンを自動停止させる

仮想マシンは起動させているだけで使用料を消費し続ける仕様となっており,特に多くの資源を必要とするAIサービスでは数日放置するだけで無料保証枠を使い切る可能性もあります. それを防止するためには利用をしていない間は仮想マシンを停止させておく必要がありますが,うっかり停め忘れると気が付いたら無料保証枠を使い切り,自動停止を無効にし忘れていた場合はサブスクリプションごと全て削除されてしまいます.

ここでは,そのようなことにならないよう,CPU使用率が一定期間一定値以下だった場合に,自動的に仮想マシンをシャットダウンさせる設定例を紹介します.

無料保証枠の約9割を使うと自動的にサブスクリプションを削除する自動停止機能と混同しないようにご注意ください.このページでは,特に明示しない限り仮想マシンの停止はシャットダウンと呼称します.

概要

この設定例では,主に3つのサービスで構成されます.

  • 自動シャットダウンさせる対象.ここではVirtual MachinesAzure Machine LearningAzure AI Studioで作成したVMを想定しています.
  • 自動シャットダウンさせる対象を監視するサービス(Azure Moniter)
  • 仮想マシンのシャットダウンを自動化するサービス(Automation アカウント)

補足

  • 自動シャットダウンさせる仮想マシンのリソースは,以下のものが事前に用意されているものとします.
    • リソースグループ名:testmachine-resource-group
    • リソース名:testmachine
    • デプロイしたOS:ubuntu OS
  • Azure Moniter 及び Automation アカウントも testmachine-resource-group 内に設定しています.

1.自動化の構成(Automation アカウント)

Automation アカウントの作成

  • Azureサービスの一覧の中からAutomation アカウントを選択し,Automation アカウントの作成をクリックします
  • 一覧に無い場合、画面上部にある検索欄で検索するか,一覧の右にあるその他のサービスを選択、左側にあるリストからManagement and governanceを選択すると,右側に表示されるメイン画面のAzure のガバナンスと最適化の中にあります.

各パートの設定

  • 基本パート
    • サブスクリプション:自動シャットダウン対象の仮想マシンが所属しているサブスクリプションを設定してください.
    • リソースグループ:ここでは既存のリソースグループtestmachine-resource-groupを指定します.
    • Automation アカウント名:自由に命名してください.ここではutokyoazure-automationとしています.
    • 地域:どのリージョンに設定するかを指定します.どのリージョンでも構いませんが,仮想マシンと同じリージョンにしておいた方が無難です.

  • 詳細設定ネットワークタグの各パート

    • 初期設定のまま進めますが,以下の設定になっていることを確認ください.
      • 詳細設定:マネージドIDでシステム割り当てにチェックが入っており有効化されること.
      • ネットワーク:パブリックアクセスが選択されていること.
  • 確認及び作成パート

    • 検証に成功と表示され,内容に間違いがなければ作成をクリックしてください.
  • デプロイが正常に成功しましたら、リソースに移動します.

automation アカウントに仮想マシンへのアクセス権限を設定する

  • automationアカウントのトップページで,画面左側にある一覧からアクセス権限>ID を選択する.
  • システム割り当てのアクセス許可からAzureロールの割り当てをクリックする.

  • 遷移した先で,サブスクリプションの選択が正しいことを確認し,+ロール割り当ての追加(プレビュー)をクリックする.
  • 追加された窓で,以下の通り設定する.
    • スコープリソースグループを選択
    • サブスクリプション:現在作業中のサブスクリプションであることを確認
    • リソースグループ:現在作業中のサブスクリプションを選択
    • 役割仮想マシン共同作成者を選択
  • 最後に保存をクリックし,登録されたら完了

パブリックアクセスを有効化する

前項のネットワークパートでパブリックアクセスを選択していた場合,作成された Automation アカウントのパブリックアクセスが無効化されていると実行に失敗するため,有効化します.

  • automationアカウントのトップページで,画面左にある一覧からアカウント設定>ネットワークと選択し,パブリックネットワークアクセスが無効化だった場合,有効化に切り替える.

2.監視の構成(Azure Monitor)

アラートの作成

  • Azureサービスの一覧の中から監視を選択し,画面左側の一覧からアラートを選択,さらに画面上部に表示された中からアラートルール > 作成と進みます.
  • 一覧に無い場合、画面上部にある検索欄で検索するか,一覧の右にあるその他のサービスを選択、左側にあるリストからモニターを選択すると,右側に表示されるメイン画面の監視ツールの中にあります.

アラートルールの作成

  • スコープパート
    • どのスコープが監視対象かを選択します.ここではtestmachineを選択します.
    • 選択されたリソースに監視対象のリソースが選択されていることを確認の上、適用をクリックしてください.

  • 条件パート
    • シグナル名:監視するステータスを選択します.ここではCPU使用率を監視するので、Percentage CPUを選択します.ここで追加の選択肢が表示されます.
    • しきい値の種類Staticを選択します.
    • 集計の種類平均を選択します.
    • 値は次の値より小さいまたは次の値以下を選択します.
    • しきい値:ご自身の環境によって選択してください.ここでは例として5%として設定します.
    • 確認する感覚:監視の間隔を設定します.ここでは5分で設定します.
    • ルックバック期間:判定する期間を設定します.ここで設定した期間の平均がしきい値以下であればアラートがトリガーされます.ここでは1時間とします.
ヘルプ:ルール設定の考え方

仮想マシンはバックグラウンドでも動作しているため,あまり低いCPU使用率を設定するといつまでも条件にヒットしません.かといって高すぎると常時ヒットしてしまい,コンソール作業中等でも問答無用でシャットダウンされるようになってしまいます.条件パート画面では,画面右側に過去6時間(初期設定)の監視結果のグラフが表示されます.また,AI等の計算を実行している場合は常に100%に近いCPU使用率になります.それらを参考にしきい値を決めてください.

この例では 5% 以下が1時間継続した場合としましたが,簡単に自動シャットダウンがかかってほしくない場合はCPU使用率を低く設定するか,継続時間を長めに設定するなどしてください.逆に計算以外の作業はさしえないのでできるだけ節約したい場合は,CPU使用率を数十パーセントに設定し継続時間も短めにすると,CPU使用率が落ち着いたらすぐにシャットダウンするようになります.

  • アクションパート
  • ここで,アラートがトリガーされた場合に何を実行するかを定義するアクショングループ作成がインタラプトされます.
    • 基本パート
      • サブスクリプション:自動シャットダウン対象の仮想マシンが所属しているサブスクリプションを設定してください.
      • リソースグループ:ここでは既存のリソースグループtestmachine-resource-groupを指定します.
      • リージョン:グローバルのままで構いません.
      • アクショングループ名,表示名:自由に設定ください.ここでは両方ともvmstop-cpuとします.

  • 通知パート

    • ここでは初期状態のままで進めます.
    • シャットダウンの際にメール通知も行いたい場合はここで宛先等を設定します.
  • アクションパート

    • アクションタイプ、名前Automation Runbookを選択してください.画面右側に設定項目が表示されるので,以下の通り設定します.名前は自由に設定ください.
      • Runbookソースビルトインを選択します.
      • RunbookStopVMを選択して下さい.
      • サブスクリプション:項目が追加されるので,Runbook を作成した Automation アカウントを作成したサブスクリプションを選択してください.
      • Automation アカウント:項目が追加されるので,Runbook を作成した Automation アカウントを選択してください.

  • 作成と確認パート
    • 検証に成功して内容に問題が無ければ作成をクリックしてください.

ここでアラートルールの作成に戻ります.アクションパートに,今作成したアクショングループがリストされていることを確認ください.

  • 詳細パート
    • 重大度3.情報のままで問題ありません.
    • アラートルール名:監視リソース名になります.ここではidle-cpuとします.
    • アラートルールの説明:必要に応じて説明を記載ください.

  • 確認及び作成パートで内容に問題なければ作成をクリックします.

この時点から監視が有効になり,アラートの条件がそろった場合に Runbook が実行され対象の仮想マシンがシャットダウンされます.

3.動作確認

想定通り動作しない場合は,以下の項目をチェックしてください.

アクティビティログ

  • アラートルール,アクショングループ,Runbook,automationアカウントや仮想マシンの各リソーストップページ画面左側一覧の,およそ上から2番目,概要の下にあります.起動したはずの時間帯にログが残っていることを確認ください.

履歴

  • アラートルールのトップページ画面左側一覧にあります.トリガーされた場合履歴に残るので,トリガーされたはずの時間に履歴が残っていることを確認ください.

手動による動作確認

  • アクショングループはトップページ画面上部にあるテストから,アラートルールに関係なく手動で起動させることができます.実行して仮想マシンがシャットダウンされるかどうか確認ください.
  • Runbook は編集画面でテストウィンドウを選択することで手動起動できます.実行して仮想マシンがシャットダウンされるかどうか確認ください.
arrow_upward
上に戻る
feedback
フィードバック
contact_support
サポート窓口