3大クラウドのひとつであるGoogle Cloud。アプリケーション開発やビッグデータ分析などを目的に、昨今多くの企業が利活用しています。利用が拡大する一方で、各企業ではその利用コスト管理が課題となっています。
この記事では、Google Cloudのコスト管理機能であるCloud Billingの紹介に併せ、Cloud Billingの課金データをBigQueryへエクスポートし、分析する方法を紹介します。
Cloud Billingとは
Cloud Billingは、Google Cloudで発生する利用料金を管理・追跡するサービスです。柔軟な予算管理やリアルタイムのコスト分析、請求アカウントの一元管理を行うことができます。
また、コストをより詳細に管理するための機能として、予算設定や支出アラートなどが搭載されています。Google Cloudを利用する企業にとって、Cloud Billingはコスト管理のために欠かせないサービスです。
Cloud BillingのBigQueryエクスポート手順
Google Cloudのコスト管理に便利なCloud Billingですが、コンソール画面で分析できる内容には限りがあります。そこで、同じGoogle CloudのサービスであるBigQueryへCloud Billingデータをエクスポートし、より詳細なコスト分析を実現します。
エクスポートは4つの手順で設定します。
- 手順1. エクスポート先のBigQueryデータセットの作成
- 手順2. 課金の有効化
- 手順3. BigQuery Data Transfer Service APIの有効化
- 手順4. Cloud BillingのBigQueryエクスポートの有効
手順1. エクスポート先のBigQueryデータセットの作成
Cloud BillingデータをBigQueryにエクスポートするには、まずエクスポート先となるBigQueryデータセットを作成する必要があります。
Google CloudコンソールでBigQueryのページを開き、対象のプロジェクトを選びます。次に、「データセットを作成」をクリックして、名前の記入とロケーションの選択をします。その他必要な設定を適用し、最後に「作成」をクリックすると、エクスポート先のBigQueryデータセットが完成します。
手順2. 課金の有効化
Cloud Billingを使用するためには、Google Cloudプロジェクトの課金が有効化されている必要があります。
コンソール画面の左側メニューから「課金」セクションを開き、「お支払いアカウント」を確認します。課金データを分析したい対象プロジェクトが課金アカウントにリンクされていることを確認します。
もし未リンクの場合、「お支払い情報を設定」または「変更」を選択して適切なCloud請求先アカウントをプロジェクトにリンクします。
手順3. BigQuery Data Transfer Service APIの有効化
左側メニューの「APIとサービス」→「ライブラリ」を開きます。検索バーに 「BigQuery Data Transfer Service API」 と入力し、検索結果から該当のAPIを選択します。
「有効にする」ボタンをクリックし、APIを有効化します。すでに有効になっている場合は、そのままで問題ありません。
このAPIを有効化することで、Cloud BillingデータをBigQueryへ自動的に転送できるようになります。
手順4. Cloud BillingのBigQueryエクスポートの有効
左側メニューの「課金」を開き、「課金データのエクスポート」に移動します。
「標準の使用料金」「使用料金の詳細」「価格」の3つのうち、エクスポートしたいデータに対し、保存先のプロジェクト・データセットの設定を行います。
設定後の画面
「標準の使用料金」「使用料金の詳細」「価格」の3つのデータの違いは以下の通りです。
■標準の使用料金
「標準の使用料金」はプロジェクトごとの課金情報をまとめた基本的なレポートです。
主な内容:
- プロジェクトごとの総コスト
- サービス(Compute Engine、Cloud Storageなど)ごとのコスト
- 請求期間ごとの費用
用途:
高レベルなコスト分析や月ごとの支出トレンドの把握に最適
■使用料金の詳細
「使用料金の詳細」は「標準の使用料金」よりも詳細な、リソース単位の課金データです。
主な内容:
- リソース単位(VMインスタンス、ストレージバケットなど)の料金
- 各リソースの利用時間、使用量、適用された割引の詳細
- SKU(商品コード)ごとのコスト
用途:
細かいリソースごとの使用状況を分析したい場合や、最適化のためのコスト削減策を検討する際に有用
■価格
「価格」はGoogle Cloudのサービスごとの料金表データです。
主な内容:
- 各サービス・SKU(商品コード)の価格情報
- 地域ごとの料金差や割引情報
- サステインドユース割引や予約割引の適用価格
用途:
料金の見積もり、コスト予測、将来的なプランニングに活用可能
まずは、「標準の使用料金」をエクスポート設定しておくことを推奨します。
Cloud Billingデータの分析と可視化
さて、ここからは「標準の使用料金」を例にとり、BigQueryへエクスポートしたCloud Billingの分析方法をご紹介します。
Cloud Billingデータの構造
Cloud Billingエクスポートデータは、前述のエクスポート手順4で設定したBigQueryプロジェクト・データセットの、gcp_billing_export_v1_<BILLING_ACCOUNT_ID> というテーブルに読み込まれます。
テーブルスキーマはGoogle Cloud公式ドキュメントに詳細が記載されていますが、アカウント ID、請求書の日付、サービス、SKU、プロジェクト、ラベル、ロケーション、費用、使用量、クレジット、調整、通貨などの使用料金情報が含まれます。
集計例
Google Cloud公式ドキュメントに記載されているSQLクエリサンプルを使って、Cloud Billingデータを集計してみます。
請求月ごとの料金タイプ別詳細を取得する場合
SELECT
invoice.month,
cost_type,
SUM(cost)
+ SUM(IFNULL((SELECT SUM(c.amount)
FROM UNNEST(credits) c), 0))
AS total,
(SUM(CAST(cost * 1000000 AS int64))
+ SUM(IFNULL((SELECT SUM(CAST(c.amount * 1000000 as int64))
FROM UNNEST(credits) c), 0))) / 1000000
AS total_exact
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
GROUP BY 1, 2
ORDER BY 1 ASC, 2 ASC
;
Looker Studioで可視化
サンプルとして出力したデータをBigQueryテーブルとして保存します。Looker Studioから保存したBigQueryテーブルへ接続し、グラフの可視化を行います。
ここでは例として、総費用の月次トレンドを可視化しました。※数字は伏せています。
このようにレポートとして昨年同月比や目標予算を表現することで、各月の課金実績を観測できます。「なぜ費用が高くなったのか」や「どのようにコストを削減するか」のような、コスト改善の議論のきっかけも生まれるのではないでしょうか。
まとめ
この記事では、Cloud Billingの概要、Cloud Billingの課金データをBigQueryへエクスポートする方法、そしてエクスポート後の分析方法を解説しました。
Cloud BillingデータをBigQueryへエクスポートすることで、コンソール画面では不可能な分析・モニタリングが実現できます。Google Cloudのコスト管理でお悩みの方はぜひお試しください。
弊社ではBigQueryを中心としたGoogle Cloud活用、マーケティングデータ分析、ダッシュボード基盤構築などさまざまな支援が可能ですので、お気軽にお問い合わせください。