3日目:GCPの基礎/BQの基礎

はじめに

今回はBigQueryとそれを含むGoogle Cloud Platform(以下GCP)のツール面に注目してみていく。具体的には、GCP内で迷子にならないよう、GCPの構成をみていく。また、BigQueryのツール面に関しては、権限・料金を中心に見ていく。

GCPに関して

GCPのイメージ

GCPはいろいろなクラウド系ツールの集合で、BigQueryはGCPのツールの1つ。デジタルマーケター向けでいうと、Google Marketing Platform(以下GMP)とGoogle Analyticsの関係に近い。ただ(GMPと比べると)GCPのツール量は膨大で、全ツール共通の設定(権限・支払いなど)があるため、ナビゲーションの項目が多岐にわたる。基本的にBigQueryしか利用しない場合は、迷子にならないように、BigQueryのURLをブックマークすることを勧める。

GCPの構造

GCPの構造(公式ドキュメント『リソース階層』より抜粋)
GCPの構造(公式ドキュメント『リソース階層』より抜粋)

GCPの構造は「組織(Organization) > フォルダ(Folders) > プロジェクト(Projects) > リソース(Resources)」という形になっている。多くの場合、組織は会社単位で作成され、プロジェクトは名前の通りそのGCPを使って行うプロジェクト単位で作成される。例には入っていないが、BigQueryはリソースに含まれる。また組織内容のプロジェクトが多くない場合、フォルダは作成されていないことも多い。

BigQueryの権限

BigQueryの権限は様々な粒度(リソース・テーブル・列など)で設定可能である。一般的にはリソース単位で管理することになる。この際に利用される仕組みがIAM( Identity and Access Management)という仕組みである。その他のBigQueryの権限は下記のページのスライドで細かく解説されている。

<参考ページ>
2023 年の BigQuery 権限管理
https://speakerdeck.com/na0/2023-nian-no-bigquery-quan-xian-guan-li

IAMについて

IAMの理解では、大きくプリンシパル、権限、ロールの3つを抑えるべきである。プリンシパルはGoogleアカウントやサービスアカウントなどをさす。始めのうちはプリンシパルはGoogleアカウントと同義と捉えてもよい。GCPを活用する中で処理の自動化や別ツールとの連携などで個人に紐づかないアカウントが必要になった際に、サービスアカウントと呼ばれるものを利用することになる。権限はリソース内で可能な処理を決める。ロールはそれら権限を束ねたものである。ここからはデジタルマーケター向けだが、GA4で例えると「権限」が「探索レポートの作成できる」など、「ロール」が「アナリスト」などとなる。BigQueryにおける具体的な権限やロールは下記にまとまっている。GA4と比較して異なる点としては、ツール側から提供されている以外のロールを、自分でカスタマイズすることもできる。

<参考ページ>
IAM の概要
https://cloud.google.com/iam/docs/overview?hl=ja

BigQueryの料金

はじめに料金の肌感を伝えると、ほとんどかからない(月1万ぐらいの予算を確保すれば十分)イメージである。対象外としては、360の有料アカウントを利用している場合や秒単位で滞在時間を飛ばすような変なイベント運用をしている場合は除く。そうはいっても具体的に費用間の目安をつかんでおきたいと思うので、説明を続ける。

BigQueryは料金プランが用意されているが、この記事の対象としている「BigQuery始めてみるか」のレベルのユーザーにとってはデフォルトで十分なので、デフォルトの課金を軸に説明を行う。

BigQueryは大きく「分析料金(Compute pricing)」「ストレージ料金」の2つのコストがかかる。前者はデータの抽出にかかる費用である。後者はBigQueryにデータを保存する際にかかる費用である。次からはそれぞれの無料枠・確認方法・コスト対策を説明していく。

分析料金について

分析料金の無料枠は1TBのクエリ処理である。1TBを上回ると、1TBごとに約5ドルかかる(厳密にはロケーションによって金額が変わる)。

<参考サイト>
BigQuery pricing
https://cloud.google.com/bigquery/pricing#on_demand_pricing

ただこの枠がどれくらいかはイメージしづらいと思う。具体的に実行したクエリでどれくらいのバイト数がかかったかは実行後に「クエリ結果のジョブ情報の課金されるバイト数」をみればわかる。ただし、10MB以下の処理は10MBに繰り上げて計算される仕様となっている。

課金されるバイト数
課金されるバイト数

また実行前に、クエリ前に必要なバイト数の試算を見ることができる。

クエリ前の試算
クエリ前の試算

また、クエリの利用には1日のクエリ上限をかける事ができる。具体的には「IAM と管理 > 割り当て」で設定が可能。詳しくは下記サイトの「割り当て (Quota) の設定」が参考になる。

<参考サイト>
BigQueryのオンデマンドクエリの利用量にフタをする (上限を設ける)
https://blog.g-gen.co.jp/entry/restricting-bigquery-ondemand-queries-with-quota

ストレージ料金について

ストレージ料金も無料枠があり、合計で10GBまでストレージであれば、無料となる。10GBを超えると1GBあたり約0.02ドルかかる(厳密にはストレージしている期間やロケーションで変わる)。厳密な金額は下記の公式サイトを確認いただきたい。また、ストレージの目安としてはGA4の1万イベントあたり6MB~12MBである。

<参考サイト>
BigQuery pricing
https://cloud.google.com/bigquery/pricing#storage


こちらも具体的なストレージ量は下記サイトの「BigQuery INFORMATION_SCHEMAを使う方法」に記載されているクエリを使うことで確認できる。

ストレージ量
ストレージ量

<参考サイト>
BigQueryのストレージ容量を確認する方法
https://techblog.gmo-ap.jp/2022/06/02/bigquery-storage-volume/

おわりに

今回料金でふれたクエリの書き方は4日目に紹介する。
X(旧:Twitter)もよろしくお願いします。