Skip to content

Azure VM 長期停止

ルール ID: azure.compute.vm.stoppedカテゴリ: zombie ・ 必要な読み取り: インベントリのみ(初回スキャンで検出) 計画中

「停止したから課金も止まっているはず」— Azure ではそうとは限りません。stopped と deallocated は別物で、stopped のままの VM は compute 課金が続きます。このルールはその取りこぼしを見つけます。

このページは判定規範に従う予定仕様です。閾値・観測窓の根拠(出典)は実装時に付記します。

何を無駄とみなすか

長期間 stopped / deallocated のまま放置された VM。特に stopped(OS のシャットダウンのみ)の VM はコンピュート容量が確保されたままのため、使っていなくても compute 課金が継続します。deallocated なら compute 課金は止まりますが、アタッチされたディスク等の課金は続きます。

判定条件

  • 電源状態が stopped または deallocated のまま長期間経過している VM
  • stopped の VM には deallocate への移行を、長期 deallocated の VM には削除の検討を提案します

必須 facts

  • VM の電源状態(stopped / deallocated の区別)
  • その状態が継続している期間
  • アタッチされているディスク(deallocated でも課金が続く部分)

取得できない facts がある場合は「観測不能」と表示し、候補にしません(候補を捏造しない)。

誤検知・危険になり得る条件

  • 定期的に起動して使うバッチ・検証用の VM
  • 災害復旧(DR)用に待機させている VM
  • ライセンスや構成の保全のため意図的に停止状態で保持している VM

実行前の確認

  • 命名・タグから用途と次回の起動予定を確認する
  • 動的な Public IP を使っている場合、deallocate でアドレスが解放される点を関係者に確認する
  • IaC(Terraform 等)で VM の状態が管理されていないか確認する

非破壊テストとロールバック

Safety Tier: medium(deallocate は再起動で戻せる可逆操作)

  • まず stopped → deallocated への移行で compute 課金を止め、影響がないか観察します
  • 削除まで進める場合は high 相当の手順に切り替え、ディスクのスナップショット取得と観察期間を必須とします
  • ロールバック: deallocate は VM の再起動で戻せます。削除した場合はスナップショット・ディスクからの再作成です

効果検証

削減の確定は、変更前ベースラインと変更後請求の比較で行います(Verify)。deallocate の効果は compute 課金の停止としてすぐに現れます。