状況
某PJにジョインしていた際に、GCPで莫大な1クエリ300ドルもかかってしまいました。。
予防策として、BigQueryで実行するすべてのクエリを監視できる体制を整えたい。
アーキテクチャ
- Cloud Loggingで監査ログを収集。
- BigQueryのログを収集。
- Pub/Subでトピックを作成し、ルーティングする。
- ログエクスプローラーからシンクを作成する。
- Pub/Subのメッセージをトリガーに、Functionsを動かす。
シンク設定内容
ログエクスプローラーの画面で、以下条件で一度クエリを実行する。
- BigQueryのクエリ
- 料金が発生するクエリ(実行完了したクエリ)
実際に叩くクエリは以下。
resource.type="bigquery_resource"
protoPayload.methodName="jobservice.jobcompleted"
protoPayload.serviceData.jobCompletedEvent.eventName="query_job_completed"
シンク設定方法
クエリ実行結果の上部に表示されるメニューから、「シンクを作成」を選択し、名称を設定する。
コメント