Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

BigQueryのコスト急増を、請求の悪夢になる前に捕捉

By Craig LowellJan 8, 20264 min read

このページはEnglishDeutschEspañolFrançaisItalianoPortuguêsでもご覧いただけます。

BigQueryは、規模が大きくコストのかかるクエリでも数秒で実行できます。その反面、ひとたび問題が起きれば、誰も気づかないうちに同じスピードでコストが膨らんでいきます。

Google BigQuery向けのリアルタイムコスト異常検知は、まさにこのギャップを埋めるための機能です。オンデマンドとリザベーション双方のworkloadsを対象に、想定外のBigQueryコスト挙動をほぼリアルタイムで可視化し、問題が手に負えなくなる前に発見・停止できるようにします。

BigQueryのコスト異常を捉えるのが難しい理由

多くのFinOpsツールは、翌日の請求ファイル取り込みに依存しています。たとえば今日の午前10時に問題のあるクエリが走っても、通知が届くのは翌朝。それまでの約24時間、課金は積み上がり続けます。さらにこの遅延が週末や業務時間外をまたげば、財務的な打撃はいっそう大きくなります。

この遅延を解消するため、DoiTのBigQuery向けリアルタイム異常検知は、請求エクスポートを待たず、ライブの利用メタデータを直接分析します。

有効化すると、本機能は次のように動作します。

  • BigQueryの利用パターンを継続的に分析
  • 異常または想定外の挙動を検出
  • コストへの影響をほぼリアルタイムで推定
  • 翌日ではなく1時間以内にSlackまたはメールでアラートを送信

これはBigQueryのオンデマンドとリザベーションの両方に対応しており、すべてのBQ workloadsを横断した可視性をチームに提供します。

実例:深刻化する前に捉えたコスト急増

あるお客様がリアルタイムBigQuery異常アラートを受信し、すぐにP1チケットを起票して、当社と共同で調査にあたりました。通常であれば、この問題に気づくのは早くても翌日——今回のケースでは金曜日の午後遅くになっていたはずです。

異常の見え方

このお客様の通常時のオンデマンドBigQuery利用額は1日あたり最大3,000ドル程度で、異常検知の画面上でもその水準がはっきり確認できます。

ところがアラート発生当日、短時間のアクティビティ急増によってコストが6,000ドルに達し、平常時の最大値の約2倍に跳ね上がりました。スパイク自体は短時間でしたが、DoiTのリアルタイム検知エンジンが捕捉してアラートを発するには十分な規模でした。

以下の動画では、実際のお客様事例を詳しく解説し、リアルタイム異常検知によって高額化しかねないBigQueryインシデントを未然に防いだ流れをご紹介します。

根本原因を数分で特定

調査の結果、122件のBigQueryジョブが同時に実行されていたことが判明しました。いずれもオンデマンドで、各ジョブには「airflow」というプレフィックスが付いており、セルフホスト型のAirflow環境またはGoogle Cloud Composerが使われていることがうかがえました。

これらのジョブには、次の特徴がありました。

  • 想定をはるかに上回る頻度で実行されていた
  • 異常に大量のデータを処理していた
  • 設定ミスにより複数回トリガーされた可能性が高い

根本原因は、Airflowのcronスケジュールに含まれていた入力ミスでした。

これは見落とされがちですが、非常によくある問題です。1日1回のつもりで設定したジョブが、誤って1時間ごと、ひいては1分ごとに走ってしまう。そうなれば、たかが100ドルのクエリでも、実行頻度が増えるだけで1日あたり2,400ドルの支出に膨れ上がります。

今回のジョブはキャッシュも効かないまま繰り返し実行されたため、コストはほぼ瞬時に急騰しました——しかしリアルタイム異常検知も、同じスピードでそれを捉えました。

リアルタイム検知がすべてを変える理由

このインシデントが発生したのは、金曜日の午後4時30分でした。

リアルタイム検知がなければ、お客様はおそらく月曜の朝まで気づけなかったはずです。もしジョブがさらに高頻度(たとえば1時間ごとではなく1分ごと)に組まれていれば、週末の2日間だけで想定外のBigQuery課金が数万ドル規模に達していてもおかしくありません。

実際にはDoiTが1時間以内に異常を検知。お客様はただちにジョブを停止し、大規模な請求トラブルに発展する前に食い止めることができました。

コスト管理にとどまらない価値

リアルタイムBigQuery異常検知は、チームに次のような効果をもたらします。

  1. 暴走するクエリを数分で捕捉。Engineersは、非効率なクエリや誤って実行されたクエリを、深刻なコストに膨らむ前に停止できます。
  2. 運用ミスへの備え。設定ミスや想定外の挙動が支出に影響し始めた時点でアラートを受け取れます。
  3. セキュリティ態勢の強化。急激なコストスパイクは、単なる非効率なクエリではなく、不正アクセスやシステム侵害の兆候である場合があります(昨年、悪意ある攻撃者によって数千ドル規模の不正なEC2課金が発生したAWSお客様の事例もご参照ください)。

昨日の請求書を見てから後追いで動くのではなく、問題が進行している最中に手を打てるようになります。

BigQuery支出をリアルタイムでコントロール

BigQueryは極めて強力なツールですが、わずかなミスがあっという間に大きな出費につながります。リアルタイムコスト異常検知は、財務・データ・プラットフォーム各チームに、コストが手に負えなくなる前にリスクの先手を打つための可視性を提供します。

BigQueryのコスト急増を請求の悪夢になる前に検知