はじめに
担当PJで、GCPのコスト削減担当となったのでその時に実施した施策を書き記そうと思います。
そのPJでは、BigQueryに圧倒的にコストを費やしていたので、BigQueryをメインにコストを抑えようとしてみることにしました。
方法
BigQueryのコスト削減方法については、6つの方法が考えられます。
- リソースの削除
- プロジェクトの削除
- データセットの削除
- テーブルの削除
- BigQuery Compressed Storageの導入
- カスタムコスト管理の導入
- クエリの見直し
作業
リソースの削除
シンプルに、使っていないリソースは削除しようという話ですね。
プロジェクト、データセット、テーブル、ビューなど使用していないものは削除しましょう。
判断基準に迷ったら、最終更新日から○年とか、○ヶ月使用していないなどで切ってしまっても良いかもしれません。
この基準は、チームごとに運用ルールを策定して定期的にリソースの削除を実施するのが吉でしょう。
BigQuery Compressed Storageの導入
2023年3月30日に、新たなBigQuery Editionsが公開されました。
こちらのリンクを参照ください。
端的に言うと、コストを算出対象を論理ストレージから物理ストレージに変更し、物理ストレージを圧縮している、といった内容になります。
単位あたりの単価は、物理ストレージの方が高いですが、圧倒的な圧縮率によりたいていはコストを下がるという結果になります。
詳細は、クラウドエースさんが良記事を出しているのでこちらを参考にしてください。
カスタムコスト管理の導入
プロジェクト単位、またはユーザー単位でBigQueryのコスト上限を設定してしまう方法があります。
上限があれば、想定以上のコストがかかってしまう恐れがなくなります。
カスタムコストの設定、権限については、こちらを参照してください。
ただ、こちらを設定すると、コストが上限以上かかるとエラーが出てしまうので再度設定しなおすか、リセットされるまで待機する必要があることにはご注意ください。
操作についてまとめてあるので、こちらもご参考ください。
クエリの見直し
クエリの内容を見直すことも考えておきましょう。
不必要なカラムをSELECTしていれば、1つ1つのクエリに無駄なコストが割かれている可能性があります。特に、SELECT *
を使用している箇所は、要注意です。
面倒ではありますが、1つ1つのクエリを見直すことも有効かと思います。
終わりに
対応で実際にやってみたことを書き出してみました。
同じような課題に直面した方のお力になれていたら、幸いです。
コメント