【正解】C
【0からの解説】
①前提知識:Apache Airflow は、処理の依存関係を Python コードの DAG(有向非巡回グラフ)として記述し、スケジュール実行・再試行・監視を行うオープンソースのワークフロー オーケストレーション ツールです。Cloud Composer(現 Managed Service for Apache Airflow)は、この Airflow を Google Cloud がフルマネージドで提供するサービスで、Airflow のスケジューラ・ワーカー・Web サーバー・データベースなどの構築・運用・アップグレードを Google 側が担います。Cloud Composer の環境には専用の Cloud Storage バケットが紐づいており、その dags/ フォルダに DAG ファイル(.py)を置くだけで Airflow が自動的に読み込み、スケジュールに従って実行します。
②要件と制約語の整理:(a) 既存資産は 250 個の Airflow DAG、(b) 移行先は Google Cloud の「マネージド サービス」、(c)「最小の労力で(minimal effort)」。つまり、DAG を書き直さずにそのまま動かせ、かつ基盤の運用を自分で持たない選択肢が求められています。
③正解の理由:Cloud Composer は Airflow そのものをマネージドで動かすため、既存の DAG コードを基本的にそのまま dags/ フォルダにコピーするだけで移行できます(接続情報や変数、必要な PyPI パッケージの設定は必要に応じて行います)。250 個の DAG を別の製品向けに作り直す必要がなく、Airflow 基盤の運用も Google に任せられるため、「マネージド」と「最小の労力」の両方を満たします。
【誤りの選択肢】
A:GKE 上に Airflow を自前でデプロイすれば DAG はそのまま動きますが、Airflow のインストール・スケーリング・アップグレード・メタデータ DB の管理などを自分で運用する必要があり、GKE Standard ではノード管理も自分の責任です。「Google Cloud のマネージド サービス」に移行するという要件を満たさず、労力も Cloud Composer より大きくなります。
B:Cloud Data Fusion は GUI でデータ統合(ETL/ELT)パイプラインを構築するサービスで、Airflow DAG をそのまま取り込む機能はありません。250 個の DAG をすべて Data Fusion のパイプラインとして作り直すのは膨大な作業で、「最小の労力」に反します。
D:Workflows(選択肢の Cloud Workflow)はサービスや API の呼び出しを YAML/JSON で順序立てて実行するマネージド オーケストレーション サービスで、Airflow の DAG(Python)とは記述形式がまったく異なります。250 個の DAG を Workflows の定義に書き換える必要があり、Cloud Scheduler の設定も別途必要になるため、労力が大きくなります。
【参考】
Managed Airflow の概要 | Managed Service for Apache Airflow環境のアーキテクチャ | Managed Service for Apache Airflow