はじめに

本来課金されるはずだった BigQuery の課金要素が課金されていない状態であることが 2024/8/1 の release notes に掲載されました。詳細はこちらのお知らせのページに紹介されています。どういった処理に対して当該課金が行われるのか、記載します。

対象

BigQuery で実行された以下の処理に対して課金対象となります。

  • Coldline、Nearline、Archive の class に保存されている Cloud Storage へのデータのクエリ
  • Cloud Storage バケットに対して、別リージョンになる BigQuery を利用してデータを読み取るクエリ

詳細に見ていきます。

Storage Class に依存する課金

Storage Class に関して、既に金額のドキュメントにも記載はあるのですが、Cloud Storage のドキュメントをみると、以下の記載があります。

Standard Class 以外へのクエリ処理する頻度はかなり少ないと思いますが、今後はこの金額がネットワーク料金に上乗せされますので、それを認識したうえで、改めて Class 検討が必要かもしれません。

リージョンをまたいで Cloud Storage へ BigQuery からジョブ実行する際の課金

こちらも、既に金額のドキュメントにも記載はあるのですが、Cloud Storage のドキュメントをベースに考えると、以下の記載があります。

Starting November 01, 2024, for data transfer out to BigQuery datasets, Cloud Storage will consider BigQuery US to be equivalent to us-central1 and BigQuery EU to be equivalent to europe-west4. As an example, no data transfer out charges will be assessed when BigQuery US reads data from a us-central1 Cloud Storage bucket. However, data transfer out charges will apply when BigQuery US reads data from any other Cloud Storage bucket

上記の内容から 2024/11/1 より BigQuery US は us-central1 とみなし、BigQuery EU は europe-west4 とみなすということで、その記載を前提として、リージョンをまたいだ読み込みが課金対象となります。
たとえば、BigQuery US は us-east1 の Cloud Storage から BigQuery を利用してデータを読み取ろうとすると、リージョン跨ぎとなり、ネットワーク転送課金が発生します。どの程度かかるか、はお知らせページ内の SKU よりご確認ください。

回避策

お知らせページに回避策(費用の低減策)が掲載されていますので、その内容をコメント付きでご紹介します。

Storage Class に依存する課金の回避策

  • バケットで Autoclass を有効にし、アクセスされるものは Standard class を維持し、アクセスされないタイミングで移動される仕組みを利用する、という意味合いかと思います。
  • それはそうだろう、という内容ですが、Nearline、Coldline、Archive から Standard class へ移動し、課金されないようにします。

リージョンをまたいで Cloud Storage へ BigQuery からジョブ実行する際の課金の回避策

  • BigQuery で読み込む場合、ローカル読み込みとして扱われるように、対象リージョンへ Cloud Storage のデータを保存することを検討するとあり、データを読み込む頻度がそれなりにあり、容量もある場合には有効かと思います。

纏め

Cloud Storage の削除(復元可能)の記事に続き、お知らせページをベースにした周知記事を纏めさせていただきました。
Cloud Storage や BigQuery は多くの容量を処理することがあると思うので、2024/11以降の金額上昇があるような場合、疑ったほうが良いかもしれません。また、そうならないように予め対応策を検討しておくことをおすすめします。