【正解】D
【0からの解説】
①前提知識
・Workflows:YAML / JSON でステップを定義し、Google Cloud のサービスや HTTP API を順番に(または並列に)呼び出すサーバーレスなオーケストレーション サービスです。コネクタを使うと、Dataflow・BigQuery・Vertex AI(現 Gemini Enterprise Agent Platform)などのジョブを起動し、完了するまで待機する処理(長時間実行オペレーションのポーリング)を組み込みで扱えます。料金は実行したステップ数に応じた従量課金で、待機中のインフラ費用はかかりません。
・Cloud Composer(現 Managed Service for Apache Airflow):Apache Airflow のマネージド環境です。DAG による複雑な依存関係、リトライ、バックフィルなどに強い一方、環境(スケジューラ・ワーカー・Web サーバー・データベース)を常時プロビジョニングするため、パイプラインが動いていない間も費用がかかります。
②問題文の要件の整理
・Dataflow バッチ → BigQuery クエリ → Vertex AI バッチ予測 の順次実行
・軽量でサーバーレス
・運用のオーバーヘッドを最小限にする
③正解の理由
Google のドキュメント「サービス オーケストレーション用の Workflows または Managed Airflow を選択する」では、Workflows はサーバーレスでゼロまでスケールし、実行ステップ単位の課金、ミリ秒単位の低いレイテンシを持つ軽量な選択肢とされています。今回は 3 つのジョブを順番に実行するだけの単純なロジックで、Airflow の高度な DAG 機能は不要です。Workflows ならコネクタで各ジョブの起動と完了待ちを順に記述するだけで済み、Cloud Scheduler からの定期実行も簡単に設定できます。
【誤りの選択肢】
A:Cloud Composer(現 Managed Service for Apache Airflow)でも実現は可能ですが、環境を常時プロビジョニングするため費用と運用(環境のサイズ設定・アップグレード・DAG の管理)がかかります。単純な順次処理に対しては重く、「軽量でサーバーレス」という要件に合いません。
B:Compute Engine の VM を自分で管理(OS のパッチ適用・可用性・監視)する必要があり、サーバーレスではありません。cron は起動時刻を決めるだけなので、各ステップの完了待ち・エラー処理・リトライをすべて自作する必要があります。
C:Dataproc(現 Managed Service for Apache Spark)のクラスタ上で Hadoop 用のワークフロー スケジューラ Apache Oozie を動かす構成は、クラスタの運用が必要でサーバーレスではありません。Oozie は標準のオプション コンポーネントにも含まれておらず、自前で導入する必要があります。そもそも Hadoop ジョブ向けのツールで、Google Cloud の各サービスをまたぐオーケストレーションには不向きです。
【参考】
サービス オーケストレーション用の Workflows または Managed Airflow を選択するコネクタを理解する | Workflowsワークフローの概要 | Workflows