Google Cloud(GCP)の請求の仕組みを分かりやすく解説してみた

記事タイトルとURLをコピーする

こんにちは。G-genの杉村です。

Google Cloud (GCP) の 請求の仕組み 、また 請求アカウント という言葉って、初めて聞くと分かりづらいですよね。

Google Cloud の請求の仕組みや概念は Amazon Web Services (以下、AWS) などとは結構違うので、他のパブリッククラウドに慣れている人ほど混乱するかもしれません。
大事なところなので、解き明かしていきましょう。

基本的な概念

概念と用語

請求アカウントの仕組み、概念を図示してみます。

f:id:ggen-sugimura:20211006122743p:plain
請求の概念

まず、以下の言葉が存在していることを理解します。

  • 請求アカウント : 請求先を示す設定。プロジェクトと紐づける
  • お支払いプロファイル : クレジットカード番号など、支払い情報を持つ設定。請求アカウントと紐づける
  • プロジェクト : Google Cloud のリソースが入るいわば "テナント"

請求先アカウントとは

Google Cloud を利用するために プロジェクト を作ると、プロジェクトごとに請求先を設定する必要があります。 その請求先を示す設定が、 請求先アカウント です。
請求先アカウントごとに以下のようなことを管理できます。

  • 請求先 (お支払いプロファイル)
  • 請求書の表示・ダウンロード
  • 課金の分析
  • 予算アラート
  • 誰がその請求先アカウントとプロジェクトを紐づける権限 / 紐づけ解除する権限を持つか

請求先アカウントを一つ作ると、その請求先アカウントは再利用ができ、複数のプロジェクトから利用することができます。
つまり、請求先アカウントとプロジェクトは 1:n の関係です。

お支払いプロファイル

お支払いプロファイル には、クレジットカード情報や請求書送付先など、具体的な支払い情報が含まれています。
お支払いプロファイルを表示/編集する権限は、請求先アカウントの権限とは独立して設定可能です。

お支払いプロファイルは一度設定すると、編集したり閲覧したりする頻度は非常に低いと思いますので、権限を持っている人は請求先アカウントよりもごく少なくなるはずです。
クレジットカード番号などの情報が入っていますので、より厳密に権限管理しましょう。

複数のプロジェクトと請求

なお、以下のように組織の中に複数の請求先アカウントを作成することもできます。
プロジェクトごとに違う請求先アカウントを設定できます。

f:id:ggen-sugimura:20211006122349p:plain
請求の概念 (複数請求アカウント)

ただし管理が煩雑になるので、 "請求書を厳密に分けたい", "プロジェクトごとにクレジットカードを分けたい" などの理由がなければ あまり複数の請求先アカウントを利用しなくてもよい でしょう。

一つの請求先アカウントに複数のプロジェクトが紐づいていても、 コンソールの費用内訳画面で「プロジェクトごと」「サービスごと」など詳細に課金の内訳を分析することは十分可能 です。
部署ごと / システムごとにどれくらいの課金が発生しているかを知りたいときは、まずはその方法を検討します。

Google Cloud パートナーによる請求代行 (課金代行)

Google Cloud パートナーによる請求代行サービスを利用することで、 Google Cloud を割引料金で利用できるなどのメリットがあります。
そういったパートナー経由で Google Cloud を利用する場合、請求の仕組みはどうなっているのでしょうか。

手法はパートナーごとに様々ですが、ここでは Google Cloud 専業パートナーである G-gen (ジージェン) の場合で見てみます。

f:id:ggen-sugimura:20211006124052p:plain
G-gen 請求代行サービスの仕組み

この図のようになっています。
G-gen の請求代行サービスに申し込むと、 G-gen から利用者に対して 顧客専用の請求先アカウントが払い出され ます。
利用者はこの請求先アカウントをプロジェクトに紐づけて使用することができます。

こうすれば、 Google Cloud の利用料金は Google から G-gen に請求されることになります。
G-gen は利用者の代わりに Google に料金を支払い、その後で G-gen から利用者に割引料金で請求をすることになります。

このような仕組みですから、すでに Google Cloud を自社のクレジットカード等で利用していても、プロジェクトの紐づけ先を G-gen の請求先アカウントに切り替えればいいだけなので、 特にシステムの中断やこれまでと使える機能の差などはなく、 G-gen 経由の支払いに切り替えて割引の恩恵を受けられる というわけです。

※パートナーによっては仕組みが異なる場合がありますのでご了承ください

その他、便利な機能

課金の分析

Google Cloudコンソールで お支払い>レポート の画面を見ることで、請求先アカウントごとに詳細に課金の内容を分析することができます。

f:id:ggen-sugimura:20211013112013p:plain
課金レポート

  • プロジェクトごと
  • サービスごと
  • SKU (課金単位) ごと
  • リソースに付与したラベルごと
  • リージョンごと
  • これらの掛け合わせ

など、かなり詳細に課金の内訳を調査し、グラフィカルに表示することができます。

予算アラート

請求先アカウントに対して指定金額を "予算" として設定できます。
その金額に n % 達したらメール通知する、などのアラート設定が可能です。
予算の粒度も、月ごと、四半期ごと、年間など任意の期間にできますし、予算の適用範囲プロジェクトやサービスも細かく選択できます。

例えば 「1ヶ月でXXXプロジェクトとYYYプロジェクトの合計予算を ¥2,000,000 とする。この予算に対し 50% に達したときと 75% に達したときにメールを発報する」 などの設定が可能です。

BigQuery へのエクスポート

請求先アカウントに対して設定することで、課金データを BigQuery へ自動エクスポートできます。
BigQuery により課金データの詳細な分析を行いたいときに活用できます。

エクスポート内容は以下の3つから選択でき、それぞれ出力されるデータの粒度が違います。

  • 標準の使用料金 (Standard usage cost data)
  • 詳細な使用料金 (Detailed usage cost data)
  • 料金 (Pricing data)

標準の使用料金 (Standard usage cost data) は最も基本的で、請求月、サービス、 SKU 、プロジェクト、ラベル、リージョン、費用、使用量、クレジット (割引) などが含まれます。

詳細な使用料金 (Detailed usage cost data) は "標準の使用料金" に含まれる情報に加えて、その料金を発生させたリソース名など個別リソースの情報が含まれます。リソースレベルでの分析が必要な場合に利用できます。

料金 (Pricing data) では Google Cloud の最新料金表がエクスポートされます。 Google Cloud の利用料金は変更されることがあるので、ここから現在の正しい料金を取得することで分析に活用できます。

なお、原則としてエクスポートを有効化した時点より後の情報が BigQuery のデータセットに反映されますが、標準と詳細で異なります。
詳細は ドキュメント をご確認ください。

またデータの出力頻度も こちらのドキュメント をご参照ください。

これらの機能によって生成されたテーブルは自動的に取り込み日付によるパーティションが切られています。
BigQuery ではテーブルあたりのパーティションの最大数は 4,000 となっており、これは日単位でのパーティションではおよそ11年で枯渇してしまうことを意味しています。
これを超えた場合エクスポートが失敗することが考えられますので、長期利用が想定される場合はパーティションに10年等の期限を設定することが望ましいでしょう。

AWS との違い

Google Cloud と Amazon Web Services (AWS) の請求の仕組み・概念の違いも、簡単に押さえておきましょう。

AWS では、クレジットカード等の請求先情報は AWS アカウントに設定します
"AWS アカウント" とは一つのテナントであり、 Google Cloud で最も近い概念は プロジェクト です。 AWS では AWS アカウント ごと に請求情報を入力するのが基本です。

複数の AWS アカウントの請求をまとめるには Consolidated Billing という機能を利用します。
ある一つの AWS アカウントを 管理アカウント (旧称マスターアカウント) として設定することで、請求を管理アカウントにまとめることができます。
この場合でも、請求先情報はあくまで AWS アカウントの持つ設定情報であることが分かります。

f:id:ggen-sugimura:20211006182656p:plain
AWSの請求の概念

Google Cloud は請求先情報の設定が 請求先アカウント として独立していて再利用可能なのに対し、 AWS では請求先情報の設定は AWS アカウントの持つ属性である、というのが大きな違いですね。

f:id:ggen-sugimura:20211006182946p:plain
Google Cloudの請求の概念

杉村 勇馬 (記事一覧)

クラウドソリューション部 部長

クラウド管理運用やネットワークに知見あり。AWSの全12資格をコンプリートしたので、次はGoogle Cloudの認定資格を狙っている。現在、Google Cloud認定資格は3冠。

2021年12月現在、ハマっているものはマーベル (遅い)