BigQuery に課金データをエクスポートして分析する
Google Cloud Japan Team
※この投稿は米国時間 2022 年 9 月 22 日に、Google Cloud blog に投稿されたものの抄訳です。
概要 - 課金データを分析する最適な方法は、BigQuery への課金データのエクスポートを設定することです。このプロセスの全体に対応するためのインタラクティブなチュートリアルをご確認ください。
前回の投稿では、Google Cloud の課金データを分析するためのいくつかの異なるオプションを見ていきました。BigQuery へのエクスポートを有効にすることが、課金データを扱うための最も便利かつ包括的な方法です。この方法の内容と選択すべき理由を詳しく見ていきましょう。
内容
まず最初に、「BigQuery への課金データのエクスポート」とは、文字どおり請求先アカウント(すべての Google Cloud リソースの費用を処理するアカウント)から BigQuery にデータをエクスポートすることです。BigQuery は、データに対してクエリを実行できる、データ分析に最適な選択肢です。BigQuery にこのデータを保存することで、Looker やデータポータルなど、他のツールと統合した場合の可視化もより簡単になります。
BigQuery にエクスポートされる実際のデータは、請求先アカウントが対象とするすべてのサービスの 1 時間ごとの記録であり、SKU、測定されているユニットの種類、課金対象となっているユニットの数などの詳細な情報と一緒にエクスポートされます。
実際には、BigQuery へのデータ エクスポートには 3 つの異なるオプションがあります。
標準エクスポートは、皆様に BigQuery へのエクスポートをおすすめする際に頻繁に言及するオプションです。テーブルの完全なスキーマには、それぞれの行ごとの多くの詳細情報が含まれています。そのため、10 月 17 日の午前 2 時から午前 4 時までの間に本番環境のプロジェクトで費やした Cloud Run の費用を知りたい場合などは、このエクスポートを使用すると便利です
標準エクスポートの他に、詳細エクスポートが追加されました。このオプションでは、標準エクスポートで行えるすべての内容に加えて、特定のサービスに関するさらに詳細なデータを取得できます。このブログ投稿の執筆時点では、Compute Engine と GKE の両方で詳細エクスポートがサポートされており、多数の追加情報の確認が可能です。たとえば、Compute Engine に費やした金額について、個々のインスタンスごとの内訳を確認できます。GKE の場合は、費用をクラスタと名前空間ごとに分類できます。さらに、Pod レベルで詳細を表示することも可能です。
もう一つのエクスポートは課金データを対象とするもので、請求先アカウントですべての Google Cloud サービスに費やされている費用の詳細がエクスポートされます。この機能は、将来のワークロードの見積もりをプログラムで作成するときに使用すると非常に便利です。
このブログ投稿では、標準エクスポートと詳細エクスポートについてご紹介します。
使用すべき理由
クラウドの費用は理解しにくい場合があり、クラウド環境の拡大とともに複雑になっていきます。単一の Web サーバーをホストするプロジェクトに費やしている金額を追跡することと、クラウドでさまざまなレベルの作業を行っている何百ものプロジェクトと何千人もの人々を擁する大規模な組織で分析を試みることとの間には、大きな違いがあります。どのリソースが費用に大きく影響しているかを追跡して理解することは、適切に資金を投入できているかどうかを確認し、将来の費用を予測するために必要不可欠です。
課金データのエクスポートをできるだけ早く有効にするのが重要な理由の一つは、このデータを遡って取得できないことです。したがって、先月の課金データを分析したくてもエクスポートが有効になっていない場合は、残念ながら分析は不可能です。請求先アカウントを作成したら、すぐにエクスポートを有効にすることをおすすめしているのはこのためです。そうすることで、必要なときにデータを使用できます。
次のような質問が何度か寄せられています。「組み込みのレポート作成ツールではなく、BigQuery のエクスポート機能を使ったほうがよいのはなぜですか?」
この組み込みのレポート作成ツールは、迅速な回答を得て費用を把握する際に非常に役立つ手段です。ここで大きく異なってくるのが、規模と粒度です。チームや組織が大きくなるにつれて、各グループが担当しているさまざまな費用の内容を把握することがますます難しくなる可能性があります。組織で費用配賦モデル(1 つのグループがすべてのリソースの支払いを行い、個々のチームやグループがその使用に責任を負うように費用の内訳が作成される仕組み)を使用している場合は、費用を正確に計算するためにより高い粒度が求められる可能性が高くなります。
このような費用の課題に対して、組織でどのように対処できるかについては、FinOps の基礎と学習用リソースをチェックしてみてください。
その他の質問
これまでに寄せられた質問をさらにいくつかご紹介します。
常に詳細エクスポートを使用すればよいというわけではないのですか?
ここで扱うほとんどのデータと同じように、詳細エクスポートは必要な場合にのみ役立ちます。BigQuery では、クエリの費用に加えてストレージ(詳細エクスポートではすべての追加ストレージが対象)の費用が課金データに含まれます。大規模な組織ではこのレベルの詳細情報が必要になる可能性が高いものの、必ずそうなるとは限りません。新しい請求先アカウントを作成したら、まずは標準エクスポートから開始し、その後の数年間に詳細エクスポートを使用する必要があるかどうか判断することをおすすめします。
なお、BigQuery には制限付きの無料枠があり、生成するデータの量によってはそれで十分な場合もあります。
このデータに BigQuery を使用する理由は何ですか?
課金データのエクスポートではすべて、大量のデータが生成されます。BigQuery は、そうしたデータを迅速かつ効率的に分析するのに適しています。これは非常に便利なツールであり、クラウドでの課金のように複雑なデータを把握したい場合は使用することを強くおすすめします。BigQuery は Google Cloud のその他の機能とも統合されているため、エクスポートに慣れた後は、予想外の多額の料金が発生した場合のほぼリアルタイムのレポート作成や機械学習など、追加機能の構築を開始できます。
SQL の知識がありません。それでもエクスポートは便利ですか?
実際のところ、エクスポートを最大限に活用するには、SQL の知識を身に付けるか、データ アナリストとの連携が必要になるでしょう。しかし、エクスポートを有効にすると、最小限の労力で可視化ツールを設定して、少なくとも課金データは扱えるようになります。多くの組織がこのレベルの詳細な分析は必要ないと考えますが、クラウドの使用が拡大すると、やはり必要だったと後悔することが少なくないようです。
SQL について多少は理解していますが、データが大量にあります。どのように対処すればよいでしょうか?
ここで利用できる最適なリソースは、スキーマ リソースとクエリの例です。これらは、データの複雑さに対応して、正しく運用するための詳細なリソースです。覚えておいてください。小規模からスタートして、時間をかけて拡大する方が得策です。組織全体の完全な費用レポート ソリューションをゼロから構築するのは、苛立ちの原因となるほか、課題も次々と発生します。つかまり立ち(プロジェクトごとや月ごとに費用を分類するなど)から始めて歩けるようにし、最終的には走れる(異常を検出したり、チームが担当するリソースで不要な費用が発生しているときに通知したりするなど)ようになることを目指してください。
エクスポートを開始する
これまでの説明を踏まえ、エクスポートをできるだけ早く有効にしてマスターすることをおすすめします。課金データのエクスポートを有効にするための組み込みのチュートリアルをご確認ください。このチュートリアルは、エクスポートの開始や実行だけでなく、サンプルの課金データに対するクエリの実行にも役立ちます。これらの粒度のエクスポート機能は、お客様、お客様のチーム、または組織全体が、クラウドによってもたらされるメリットをよりよく理解し、改善の機会を見つけるのに役立ちます。- Google Cloud デベロッパー アドボケイト Mark Mirchandani