Appearance
Cloud SQL idle
ルール ID: gcp.cloudsql.instance.idle ・ カテゴリ: zombie ・ 必要な読み取り: インベントリ + 利用メトリクス 計画中
誰も接続していない Cloud SQL インスタンスは、稼働しているだけでコンピュート料金が発生し続けます。このルールは、接続が途絶えたまま動き続けている DB を見つけます。
このページは判定規範に従う予定仕様です。判定ロジックの実装とテストは先行して存在しますが、実データ接続からの本番実行経路はまだありません(それまで計画中表示)。
何を無駄とみなすか
30 日間、一度もクライアント接続がないまま稼働している Cloud SQL インスタンス。使われていなくても vCPU・メモリ分の課金が続きます。
判定条件
- 30 日間の接続数が 0(窓内の最大接続数がゼロ)
- 30 日間の最大 CPU 使用率が 5% 以下(接続がゼロでもバックグラウンド処理で CPU を使うインスタンスは候補にしません)
- 提案するアクションは停止であり、削除ではありません(データ保全のため)
- 単発の観測では open にしません。作成から 15 日未満のインスタンスは判定しません(経過ゲート)
- 接続数・CPU のどちらかが観測できない場合は判定しません(候補を捏造しない)
必須 facts
- インスタンスの状態・起動ポリシー
- 30 日窓の最大接続数
- 30 日窓の最大 CPU 使用率
- 作成からの経過日数
- 取得できない facts がある場合は「観測不能」と表示し、候補にしません(候補を捏造しない)。
誤検知・危険になり得る条件
- 月次・四半期処理など、観測窓より長い周期でだけ接続される DB
- フェイルオーバーや切り戻し用に温存しているインスタンス
- 移行作業の途中で一時的に接続を切っている DB
いずれの場合も、提案が可逆な「停止」であることが緩和策になります。
実行前の確認
- インスタンス名・ラベル・データベース名から用途を確認する
- 接続元になり得るアプリケーション・バッチの構成を関係チームに確認する
- IaC(Terraform 等)での参照有無を確認する
非破壊テストとロールバック
Safety Tier: medium(停止は可逆操作。データは保持される)
- インスタンスを停止する(削除しない)
- 一定期間、接続エラーの報告や依存アプリの異常がないか観察する
- 問題がなければ停止を恒久化し、不要と確定した時点で別途削除を検討する
ロールバック: インスタンスを再起動するだけで、データごと元の状態に戻ります。
なお、停止中もストレージとバックアップの課金は継続するため、削減されるのはコンピュート分です。
効果検証
削減の確定は、変更前ベースラインと変更後請求の比較で行います(Verify)。