Appearance
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 課金の停止としてすぐに現れます。