Good Bye Composer~BigQuery のデータ処理ワークフロー管理に Cloud Composer を使っていたが別構成に変えた話~

目次

はじめに

こんにちは。私はRSSでデータ分析基盤のエンジニアをしているY.R.です。

私の所属するチームではデータ分析基盤を運用しています。
チームとしては2024年10月に以下の記事を出しています。

データ分析基盤チームの紹介と取り組み内容

この記事の最後に以下のような記述があります。

「Cloud Composer」をETLプロセスの実行ツールとして活用しているものがあります。これは学習コストを最小限に抑えることを重視した結果ですが、Cloud Composerはあくまでもオーケストレーションツールであり、本来はETLジョブを構成するタスクを管理するのに適したサービスであるため、当該用途での使用は適切ではありません。」

今回はこの技術的負債解消のお話です。

課題

改修に至った背景には、いくつかの理由があります。 主な課題として、以下の3点が挙げられます。

  • 1. 運用負荷が高い
  • 2. 利用頻度と依存関係の単純さの割には高いコスト
  • 3. スケーラビリティへの備えが難しい

課題1. 運用負荷が高い

従来はスパイク状の負荷の発生によってAirflowサーバーがダウンすることがあり、その復旧に手間がかかるため、処理を安心して任せられない状態でした。
Cloud Composerは、裏側で複数のGoogle Cloudサービスが連携しています。
具体的にはGKE、Cloud SQL、App Engineなどが利用されています。それゆえ、エラーの原因特定と復旧が毎回困難でした。
復旧するまで、Cloud Composerによる200を超えるデータ処理がすべて停止しました。

課題2. 利用頻度と依存関係の単純さの割には高コスト

Cloud Composerはデータパイプライン用途でのみ使用していました。
しかし、BigQuery全体のコストとCloud Composer単体のコストは同程度でした。
Composerで管理するテーブルは300前後です。
一方、BigQuery全体のテーブル数は6000以上でした。この差を考慮すると、局所的にコストがかかりすぎていることがわかります。
複雑なパイプライン処理や高い利用頻度であれば許容できます。しかし、私たちの利用状況はそこまでではありませんでした。
にもかかわらず、インスタンスを常時起動する必要があり、費用が高止まりしていました。

課題3. スケーラビリティへの備えが難しい

スパイク状の負荷への対策は必要でした。また、今後のデータパイプラインの増加も考慮する必要がありました。
そのため、スケールアウトやスケールアップが求められます。しかし、コストの問題でそのような対処がしづらい状況にありました。

解決

設計

結論として、構成を以下のように変更しました。 この変更により、①運用負荷、②コスト、③スケーラビリティの課題を解決しました。

Before

After

この設計の利点

利点1. シンプルなサーバレスサービス採用による運用負荷低減

構成をシンプルなサーバレスサービスの組み合わせに変更しました。
これにより、エラー発生時でもデータ取り込みの処理が復旧しやすくなりました。
この結果、「課題1. 運用負荷が高い」を解消しました。

利点2. コスト低減

月20万円程度かかっていた処理を月1,000円未満に抑えることができました。
これにより、「課題2. 利用頻度と依存関係の単純さの割には高コスト」を解消しました。

利点3. スケーラビリティ向上

コストのネックが解消され、データパイプラインを増やしやすくなりました。
これにより、「課題3. スケーラビリティへの備えが難しい」を解消しました。

展望

今後は、自然言語でBigQueryのデータが分析可能な状態を目指します。
そのためにAI-agentの検証を進め、データ分析基盤の品質を向上させます。

参考資料

Google Cloud Scheduler の料金
https://cloud.google.com/scheduler/pricing?hl=ja

Cloud Scheduler について
https://cloud.google.com/scheduler/docs/overview?hl=ja

Workflows overview
https://cloud.google.com/workflows/docs/overview

Dataform の概要
https://cloud.google.com/dataform/docs/overview?hl=ja

プライベート IP 環境のアーキテクチャ
https://cloud.google.com/composer/docs/concepts/architecture?hl=ja#private-ip

Google Cloud のデータ パイプライン サービスの紹介と選び方 
https://lp.cloudplatformonline.com/rs/808-GJW-314/images/Data_Analytics_%20OnAir_q1_0212_Session.pdf

レイスシステムソリューションズ株式会社のソフトウェア開発や、
採用に関するお問い合わせについては、下記のリンクにてお問い合わせください。

お問い合わせ