Cloud Service
Cloud Billing / Budgets
請求先アカウントを軸にコストを可視化し、予算としきい値アラートで使い過ぎを早期に検知する仕組み。AWS の Cost Explorer と Budgets に相当。
- 1.請求先アカウントにプロジェクトを紐づけてコストを集約・可視化する。
- 2.予算としきい値アラートで超過を通知し、Pub/Sub から自動対処も組める。
- 3.アラートは支払いを止めない。請求データの BigQuery エクスポートで詳細分析する。
解決する課題
クラウドの利用料は使った分だけ後から請求されるため、放置すると気づかないうちに費用が膨らみます。Cloud Billing と Budgets を使うと、課金を組織横断で一元管理し、使い過ぎを事前に検知できます。
- いまどのプロジェクト・サービスに いくらかかっているか を把握したい
- 想定を超えそうなときに 早めに通知 を受け取りたい(予算アラート)
- 部署やプロジェクトごとに コストを按分・配賦 したい
- 月次の請求明細を 詳細に分析 して無駄を削りたい
主要概念と用語
Cloud Billing は支払いと課金管理の土台で、Budgets はその上で予算と通知を担う機能です。
- 請求先アカウント(Billing Account): 支払い方法と請求の単位。複数のプロジェクトを 1 つの請求先アカウントに紐づけて課金を集約する。AWS の支払いアカウント(管理アカウント)に近い
- プロジェクトとのリンク: 各プロジェクトは 1 つの請求先アカウントにリンクして初めて課金サービスを使える。リンクが外れると課金リソースは停止する
- Cloud Billing アカウントの種類: オンライン(自己セルフサービス、クレジットカード等)とオフライン(請求書払い、インボイス)がある
- 予算(Budget): 期間(月次など)に対する金額または使用量の目標。スコープ(請求先アカウント全体/特定プロジェクト/特定サービス/ラベルなど)を絞れる
- しきい値ルール(Threshold Rule): 予算に対する割合(例: 50 パーセント、90 パーセント、100 パーセント)で発火する通知条件。実コストだけでなく予測コストにも設定できる
- 予算アラート: しきい値超過時の通知。既定は請求先アカウントの管理者・ユーザーへのメール、加えて Pub/Sub や Cloud Monitoring 通知チャネルにも連携できる
- ラベル(Label): リソースに付けるキーと値のタグ。コストを部署・環境などの切り口で分類・配賦するのに使う
- 請求データのエクスポート: 詳細な課金明細を BigQuery へ、または CSV/PDF として取得し、深い分析に使う
- コストテーブル / レポート: コンソール上でサービス別・プロジェクト別の内訳を可視化するビュー
- 割引・クレジット: 確約利用割引(Committed Use Discounts、CUD)や継続利用割引(Sustained Use Discounts)など。AWS の Savings Plans / リザーブドに相当する考え方
仕様・制限・クォータ
- 予算は 金額 または 使用量 ベースで作成でき、複数のしきい値ルールを設定できる
- しきい値は 実コスト と 予測コスト(forecasted) の双方に適用できる。予測は月末までの見込み額に対して早期に発火する
- 予算アラートは 支払いやリソースを自動で停止しない。あくまで通知であり、停止したい場合は Pub/Sub 連携で別途自動化が必要
- 通知メールの宛先は既定で請求先アカウントの権限保有者。Monitoring 通知チャネルを使うと Slack 等にも拡張できる
- 1 つの請求先アカウントに作成できる予算の数や、エクスポートの反映遅延などには上限・遅延があるため、最新の公式ドキュメントで確認する
- 請求データの BigQuery エクスポートは設定後のデータから反映され、過去分が遡って入るわけではない点に注意
内部の仕組み
各サービスの利用量は計測され、請求先アカウント単位で集計されてコストデータになります。Budgets はこの集計値を定期的に評価し、設定したしきい値(実コストまたは予測コスト)を超えると通知をトリガーします。
通知はメールだけでなく、Pub/Sub トピック にメッセージとして発行できます。これを Cloud Functions や Cloud Run で受け取れば、しきい値超過時にリソースを停止したり、請求先アカウントのリンクを解除したりといった自動対処を組めます。
コストデータには反映の遅延があり、リアルタイムではなく数時間程度のラグを見込む必要があります。予測コストは過去の利用傾向から月末見込みを推定するため、利用パターンが急変すると見込みも変動します。
予算としきい値アラートは「通知」であり、設定金額に達しても 課金やリソースは自動で止まりません。完全に止めたいなら、Pub/Sub に飛ばした予算メッセージを Cloud Functions で受け、プロジェクトの請求先リンク解除やリソース停止を自前で実装します。「予算を超えたら自動で課金が止まる」と誤解しないことが重要です。
設計パターン / ベストプラクティス
- 予算アラートを Pub/Sub へ送り、Cloud Functions で自動対処(通知集約、リソース停止、リンク解除)を実装する
- しきい値は 複数段階(例: 50 / 90 / 100 パーセント)で設定し、さらに 予測コスト のしきい値で前倒し検知する
- 環境(本番・検証・開発)やチームごとに プロジェクトを分割 し、プロジェクト単位で予算とコストを管理する
- リソースに ラベル を一貫して付与し、部署・環境・コストセンター別にコストを配賦できるようにする
- 詳細分析が必要なら 請求データを BigQuery にエクスポート し、SQL やダッシュボード(Looker Studio 等)で可視化する
- 安定して使い続けるワークロードは 確約利用割引(CUD) を検討し、単価を下げる
運用・監視
- アラートが届かない → 予算のしきい値設定、通知先(請求先アカウント権限者/Monitoring 通知チャネル)、Pub/Sub トピックの権限を確認
- コストが想定より高い → コストテーブルでサービス別・プロジェクト別内訳を確認し、BigQuery エクスポートで明細を深掘り
- プロジェクトが急に動かない → 請求先アカウントとのリンクが外れていないか、請求先アカウントが無効化されていないかを確認
- 配賦できない → リソースにラベルが付いているか、予算スコープがラベルやプロジェクトで適切に絞られているかを確認
コスト
Cloud Billing と Budgets の機能自体(コストの閲覧、予算作成、アラート、コンソールのレポート)は 追加料金なしで利用 できます。課金が発生するのは、請求データを BigQuery にエクスポート した際の BigQuery 側のストレージ/クエリ費用や、Pub/Sub・Cloud Functions など連携先サービスの利用分です。
| 項目 | 課金の考え方 | コストを抑えるコツ |
|---|---|---|
| 予算・アラート機能 | 機能自体は無料 | 気にせず多段しきい値で手厚く設定 |
| コストレポート閲覧 | コンソール機能で無料 | 標準ビューで日々確認する |
| BigQuery エクスポート | BigQuery のストレージとクエリに課金 | 必要なパーティションだけクエリし保持を最適化 |
| Pub/Sub 連携の自動化 | Pub/Sub と関数側の実行に課金 | 発火頻度が低いので影響は小さい |
セキュリティ
- 課金情報は機微なので、閲覧・変更は IAM ロール で最小化する(閲覧は請求先アカウント閲覧者、管理は請求先アカウント管理者など)
- プロジェクトの作成者が自動で課金を変更できないよう、請求先アカウントの権限とプロジェクトの権限を分離 して管理する
- 請求データを BigQuery にエクスポートする場合、そのデータセットへのアクセスも IAM で制御し、必要に応じて CMEK で暗号化する
- 予算アラートを飛ばす Pub/Sub トピックや受信側の関数には、最小権限のサービスアカウントを割り当てる
組織レベルでは、請求先アカウントの管理者ロールを限られた担当者だけに付与し、開発者にはプロジェクト権限のみを与えるのが定石です。これにより、誰でも勝手に高額リソースの課金先を切り替えたり予算を改変したりするのを防げます。
Well-Architected の観点
- コスト最適化(Cost Optimization): 本サービスの中心的な価値。可視化・予算・アラートでコストを継続的に把握し、確約利用割引やラベル配賦で無駄を削る
- 運用上の優秀性(Operational Excellence): 予算アラートを Pub/Sub 経由で自動化に組み込み、人手に頼らないコストガバナンスを実現する
- 信頼性(Reliability): 請求先リンク切れによる予期せぬ停止を避けるため、請求先アカウントの状態とリンクを監視する
試験で問われるポイント
- 予算アラートは 通知のみ で、しきい値に達しても 課金やリソースは自動停止しない。停止には Pub/Sub と Cloud Functions による自動化が必要
- しきい値は 実コスト だけでなく 予測コスト にも設定でき、月末見込みで早期に発火させられる
- 詳細な課金分析には 請求データの BigQuery エクスポート を使い、SQL で深掘りする
- 複数プロジェクトのコストは 1 つの請求先アカウントに集約 して一元管理する
- AWS では Cost Explorer(可視化)+ Budgets(予算・アラート)+ CUR(明細エクスポート) がこの役割に対応する
関連サービス・比較
| 観点 | Cloud Billing / Budgets(GCP) | AWS の相当機能 |
|---|---|---|
| コスト可視化 | コストテーブル / レポート | Cost Explorer |
| 予算とアラート | Budgets(予算 + しきい値ルール) | AWS Budgets |
| 明細エクスポート | BigQuery への請求データエクスポート | Cost and Usage Report(CUR) |
| 請求の集約単位 | 請求先アカウント | 支払い(管理)アカウント / Organizations |
| アラート通知先 | メール / Pub/Sub / Monitoring チャネル | SNS / メール |
| 割引の仕組み | 確約利用割引・継続利用割引 | Savings Plans・リザーブド |
| 異常検知 | 予測コストのしきい値などで検知 | Cost Anomaly Detection |
ハンズオン / CLI例
# 利用可能な請求先アカウントを一覧表示
gcloud billing accounts list
# プロジェクトを請求先アカウントにリンク
gcloud billing projects link PROJECT_ID \
--billing-account=0X0X0X-0X0X0X-0X0X0X
# プロジェクトに紐づく請求先アカウントを確認
gcloud billing projects describe PROJECT_ID
# 月次の予算を作成し、50/90/100 パーセントでアラート(実コスト基準)
# 通知先の Pub/Sub トピックや表示名は環境に合わせて指定する
gcloud billing budgets create \
--billing-account=0X0X0X-0X0X0X-0X0X0X \
--display-name="monthly-budget" \
--budget-amount=1000USD \
--threshold-rule=percent=0.5 \
--threshold-rule=percent=0.9 \
--threshold-rule=percent=1.0
# 作成済みの予算を一覧表示
gcloud billing budgets list \
--billing-account=0X0X0X-0X0X0X-0X0X0X
Google Cloud Service
Cloud Billing / Budgetsを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
管理・ガバナンス
比較で見る軸
クラウド: Google Cloud / カテゴリ: 管理・ガバナンス / 難易度: basic
導入後に効く点
予算としきい値アラートで超過を通知し、Pub/Sub から自動対処も組める。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Google Cloud
- カテゴリ
- 管理・ガバナンス
- 難易度
- basic
- 関連資格
- —
- 設計柱
- cost
判断チェックリスト
- 自社の用途が「管理・ガバナンス / cost」に近いか確認する。
- 強みである「請求先アカウントにプロジェクトを紐づけてコストを集約・可視化する。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。