第15章: ログ転送とデータ分析基盤連携
15.1 エッジログを蓄積・可視化する重要性
サービスが成長すると、「どの国・地域からアクセスが多いか」「どのAPIエンドポイントでエラー頻発しているか」「Botによる不正アクセス傾向」などを詳細に追跡したくなります。
Cloudflareの標準ダッシュボードでも概要は把握できますが、BigQuery に蓄積することで、SQLを用いた高度なユーザー行動分析や機械学習への連携が可能になります。
15.2 個人開発における2つのログ転送アプローチ
アプローチ1: Workers から非同期送信(無料〜格安)
軽量なアクセスログや特定イベントを、Workersのバックグラウンド処理(ctx.waitUntil)を使ってGCP Cloud Pub/Sub または BigQuery Streaming Insert API に直接送信します。
// クライアントへのレスポンスを待たせずに非同期でBigQuery等へログ送信ctx.waitUntil(sendAuditLogToGcp(logData));return response;アプローチ2: Cloudflare Logpush(上位プラン向け)
Cloudflare Logpushを有効化し、数分おきに圧縮JSONログを Google Cloud Storage (GCS) バケットへ自動書き出しします。GCSに置かれたデータはBigQueryの外部テーブルとして即座にクエリ可能です。
15.3 個人開発ハイブリッド構成のまとめ
- Cloudflare: グローバル入口、DNS、静的配信、認証ゲートウェイ、高速API(Hono)
- GCP: 高度なコンテナ処理(Cloud Run)、永続データウェアハウス(BigQuery)
この2つをCLIとIaCで連携させることで、個人開発でもエンタープライズ級の拡張性と超低コストを両立できます。
💡 用語解説コラム
[!NOTE] データウェアハウス (DWH)
BigQueryのように、テラバイト〜ペタバイト規模の大規模データを高速にSQL分析するために最適化された専用データベース。
[!NOTE] Streaming Insert
バッチファイル作成を待たずに、発生したログレコードを1行ずつ即座に分析基盤へ書き込むリアルタイムデータ投入技術。