本文へ移動
Step 10 · Observability

Monitoring + Alert + BillingObservability & budget

本番運用で「異常があれば気付ける」状態を整えました。Cloud Monitoring(Google Cloud 標準の監視基盤)で通知チャネル・アラートポリシーを、Cloud Billing(請求)で月予算と段階通知を、Cloud Error Reporting(エラー自動集約)で新規エラー時のメール通知を設定しました。

本構築時点では「箱(通知チャネル + 代表アラート + 月予算)」のみを先に整えています。詳細な閾値(5xx の比率が一定以上になった場合等)は本物のアプリイメージがデプロイされた後の Step 99 で詳細化します。

所要時間: 30 分 前提条件: Step 00 本構築の最終手順
01

通知チャネルとアラートChannel & alert policy

メールアドレス system-admin@example.com を通知チャネルに登録し、最初のアラートとして「Cloud Run の 5xx エラー検出」を作成しました。

項目値
通知チャネルメール · system-admin@example.com
アラートポリシー名Cloud Run 5xx 検出
指標Cloud Run Revision · Request count
フィルタresponse_code_class = "5xx"
集計一定時間のウィンドウの sum、複数リビジョン合算
しきい値一定時間内に一定件数以上 → メール通知(仮値)
本番値(Step 99)リクエスト総数に対する比率ベースに詳細化予定

本構築時点での閾値は仮置きです。本物のアプリイメージが動き始めると、件数だけを基準にした低いしきい値では誤発火が頻発するため、Step 99 で「総リクエストに対する比率」のように比率ベースに修正します。先に「箱」を作っておくことで、後から指標を追加する際の作業を最小化しています。

02

月予算と 4 段階通知Monthly budget

異常コスト(攻撃による DDoS や、無限ループのバッチによる暴走など)を早期に検知するため、月予算を設定し、4 段階で通知を出します。これは強制停止ではなく通知のみで、運用者が判断する材料を提供する設計です。

1
2
3
4

1 近づいたとき · 2 さらに近づいたとき · 3 達したとき · 4 超えたとき(警告)/ 月予算 matsuba-budget-monthly · プロジェクト Matsuba(<project-id>)

設定項目値
予算名matsuba-budget-monthly
対象プロジェクト Matsuba · 全サービス
目標金額指定額方式(金額は非掲載)
通知しきい値4 段階(予算に近づいたとき〜超えたとき)
通知先請求管理者・請求ユーザ + system-admin@example.com
アクション通知のみ(自動停止は しない)

「自動停止しない」設計の理由: 月末にちょうど超過した場合、自動停止だと本番サービスが落ちて利用者に影響が出ます。予算を超えた段階の通知を運用者が見て、影響範囲を判断した上で対処する方が安全です。一方、構造的な暴走防止は別レイヤで担保しています(Cloud Run の max-instances 上限、Cloud Armor のレート制限、min=0 ジョブのアイドル課金 0 円、等)。

03

Cloud Error ReportingError auto-aggregation

アプリが構造化エラーログ(severity: ERROR または CRITICAL)を Cloud Logging に出力すると、Error Reporting が自動でグルーピングし、新しいエラー種別が出た瞬間にメールが飛びます。「同じエラーが大量に出ても 1 通だけ」のため、運用者の通知疲労を防げます。

項目値
新規エラー通知ON
通知先§1 で作成した通知チャネル
連動するログCloud Run 全 4 サービス + Jobs の構造化ログ
本構築時点の状態「エラーがありません」(空デプロイのため)
04

Cloud Logging の保持期間Log retention

バケット保持期間用途
_Default30 日(既定)アプリの操作ログ・エラーログ
_Required400 日(固定)監査関連の必須ログ(変更不可)

業務監査ログ(audit_logs テーブル)は別系統です。Postgres 上で月次パーティション分割し、25 ヶ月超のデータを Cloud Storage に退避する audit-log-partition-rotator バッチで 20 年運用を見据えた長期保管を担保します(Step 4b で実装予定)。

05

本構築の総括と次のステップWrap-up & next

手順 00 から 10 まで、松葉 / Matsuba の本番クラウド基盤を構築しました。本手順以降は、各 Cloud Run サービスに本物のアプリイメージを順次デプロイしながら、機能タスクごとに必要な Pub/Sub サブスクリプション・Cloud Scheduler ジョブを追加していきます。

次フェーズ概要
共通基盤タスク T01〜T11モノレポ枠 + 共通パッケージ + Better Auth 基盤 + scanner スタブ等
Step 1 認証 / Box / ファイル基盤業務機能の中核(サインイン・Box 作成・アップロード)
Step 99 T01 監視詳細化本ページの「箱」に本番閾値を設定(5xx 比率 / scan_status 滞留 / DLQ 件数 等)

本構築の意義: 本日完成した基盤は、20 年運用を見据えた長期前提・本番 = テスト・ステージング兼用の 1 環境運用・キーレス認証・多層防御 を初期構築の段階から組み込んでいます。後から「セキュリティを足す」「監視を足す」のではなく、最初から組み込まれている状態でアプリ実装フェーズに入れます。