⚙️

Google Cloudバッチ処理ツールざっくり整理2022

2022/12/28に公開

まえがき

クラウドエース株式会社の亀梨と申します。SIインフラ領域を担当しております。

Batch (Cloud Batchではない)が 2022-10-11にGAとなりました。
Batchとは何なのか?似たような名前のWorkflows、Cloud Composer(こっちはCloudがつく)との関連は…?

そんなことが気になって脳裏にチラついていたため、ざっくり調べてみました。

書いていないこと

  • Pub/Subはバッチ処理の枠に収まらない汎用キューなので除外しています。
  • Dataprocはそれ単体で完結している(Hadoop/Spark環境)サービスなので除外しています。

結論から言うと

単機能サービス、高機能サービス、間を取りもつサーバーレスサービスで分かれている感触です。

各ツールを一言で表現すると

Cloud Composer

  • Apache AirflowをマネージドGKEクラスタ上で実行するサービス
  • GKEクラスタ(Compute Engine)リソース占有時間課金

Cloud Functions

  • 短時間・ステートレス処理限定の汎用コンピュートリソース
  • 関数呼び出し単位課金
    • 安い

Dataflow

  • Apache Beamに沿って実装したプログラムを実行する汎用サービス
  • Compute Engineリソース時間課金

Workflows

  • 複数ステップの API呼び出しをサーバーレスで結合するマネージドサービス
    • ステップ間で変数を渡したり順序を制御したり色々できる
  • ステップ単位課金

Batch

  • コンテナorスクリプトを長時間実行できる汎用サービス
  • Compute Engineリソース時間課金

Cloud Scheduler

  • 時刻指向(crontab)のタスクトリガー(処理の開始元)
  • ジョブ数課金

Cloud Tasks

  • HTTPタスクキュー 処理の非同期化
  • 呼び出し/push回数課金

各ツールの属性分布

各ツールを、役割ごとに3つの属性に主観で分類してみました。

  1. コンピュート
  2. スケジューラー
  3. ワークフロー

コンピュート

入出力、計算などの実際の処理を担当する。

スケジュール

バッチジョブを起動するトリガーを担当する。

フロー

バッチジョブ間の順序制御を担当する。

分布図

Google Cloud Batch services.png

Cloud ComposerはApache Airflowを立てて、その中でスケジュール、DAG、コンピュートまで完結するので3つを兼ねる中心に。

Dataflowも汎用サービスなので、コンピュートとフローを兼ねる位置に。

謎のサービスWorkflowsが、案外わりと色々できる印象だったので、その次あたりに位置しています。

※実はBatchもスケジュール機能があるのですが、Workflowsから呼び出すサンプルが印象的だったためコンピュートに分類しています。

バランスよく分布していますね。

おわりに

来年のProfessional Data Engineer / Cloud Developer認定試験あたりにこの辺の使い分けが出題されそうな気がしますね。
各々のサービス毎に用意されたクイックスタートに個性を感じました。まだ触ったことのない方も、無償枠の範囲で試せますので、是非お試しください。

Discussion