Skip to content

Spanner idle

ルール ID: gcp.spanner.instance.idleカテゴリ: zombie ・ 必要な読み取り: インベントリ + 利用メトリクス 計画中

Spanner はノード数に対して課金される高単価なデータベースです。検証後に放置されたインスタンスは、クエリがほぼ来なくてもノード課金が続きます。

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

何を無駄とみなすか

長期間、CPU 使用率がバックグラウンドタスク相当の水準に張り付いたままのリージョナルインスタンス。実質的なワークロードが無いのにノード課金が継続している状態です。

判定条件

  • 30 日間の CPU 使用率が 5% 以下である
  • リージョナル構成のみを対象とする(マルチリージョン構成は対象外)

必須 facts

  • インスタンスの状態・構成(リージョナルかどうか)・ノード数
  • オートスケーリング設定の有無
  • 観測窓(30 日)内の CPU 使用率
  • 作成からの経過日数

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

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

  • データの保管自体が目的のデータベース(クエリは少ないがデータには価値がある) — 削除すればデータも失われる
  • リリース前の環境で、利用開始を待っているインスタンス
  • 30 日を超える周期のバッチからのみ参照されるデータベース

実行前の確認

  • 命名・ラベルから用途(本番 / 検証)とデータの要否を確認する
  • 保持しているデータベースとその内容の重要性を確認する
  • IaC(Terraform 等)・アプリケーションの接続設定からの参照有無を確認する
  • 所有チームに利用予定を確認する

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

Safety Tier: high — インスタンスの削除はデータごと失われる、復元に手順が要る操作です。バックアップ取得と観察期間を必須にします。

  1. 削除前に、全データベースをインスタンスの外に残る形で退避する — Cloud Storage へのエクスポート、または削除しない別インスタンスへのバックアップコピー。通常のバックアップは対象インスタンス配下に保存されるため、インスタンスを削除すると一緒に失われ、退避になりません
  2. 退避データからの復元が成立することを確認する
  3. 観察期間を置き、利用の問い合わせがないことを確認してから削除する

ロールバック: インスタンスを再作成し、Cloud Storage のエクスポートまたは別インスタンスへ退避したバックアップから復元する。

効果検証

削減の確定は、変更前ベースラインと変更後請求の比較で行います(Verify)。

その他のルールはルールカタログを参照してください。