Cloud Composer3を調べてみた
はじめに
2024/6/20にパブリックプレビューとして公開されたCloud Composer 3ですが、情報もそこまで多く無かったことから違いを調べてまとめてみました。
本記事のスコープ
Cloud Composer 3について、Cloud Composer 2と比較してどのような変化があるのかを書いています。
Cloud Composerとは何か、Airflowとは何かについては書いていません。
更新点
サマリ
- 環境:環境のバージョン更新が不要に
- リソース
- GKEクラスタが非表示に
- DAGプロセッサの分離
- ストレージの最大値が増加
- Executor:CeleryKubernetes Executorの導入
- ネットワーク構成:設定の簡素化
- Monitoring:各コンポーネントにおけるワークロードの把握が容易に
- 料金モデル:DCU(Data Compute Unit)の導入
環境
Cloud Composer 2では「Airflowのバージョン」と「Cloud Composer 2のバージョン」の2つのバージョンを組み合わせたイメージとして管理されてましたが、Cloud Composer 3においては「Airflowのバージョン」に基づくイメージのバージョン管理のみとなります。
下のキャプチャはcomposer versionの一部を抜粋したものですが、Cloud Composer 3におけるイメージリストとしては composer-3-****
と固定されているのがわかります。
リソース
Cluster
GKEクラスタがテナントプロジェクト内に隠され、ユーザープロジェクトでは非表示になっています。
Processor
DAGプロセッサがスケジューラーのコンポーネントから分離されたことにより双方の信頼性向上が見込まれます。
Storage
ストレージの最大値が10GBから100GBに増加したのも地味に嬉しいポイントです。
Executor
Cloud Composer 3からCeleryKubernetes Executorが導入されます。
Cloud Composer 2ではCeleryExecutorのみでしたが、Cloud Composer 3ではCeleryKubernetesExecutor(CeleryとKubernetesの使い分けが可能)となります。
使い方も簡単で、Operatorのparamsに queue = 'kubernetes'
を付けることでKubernetesExecutorを使えるようになります。
リソース消費量の大きいタスクを実行する場合は、k8sのPod単位でタスクを独立して実行させるKubernetesExecutorが有利になります。
一方で軽量のタスクは複数タスクを同じワーカーで実行させるCeleryExecutorの方が効率性の面で有利です。
両方のExecutorをうまく使いこなす事でよりROIの高い状態を作れそうです。
ネットワーク構成
設定でVPCのアタッチをしない場合は、Google Cloudで自動プロビジョニングされたVPCにアタッチされるようになりました。これによりVPCの管理自体も不要になります。
また、プライベートIPの構成設定も不要になり環境作成後のパブリック環境<->プライベート環境の更新も可能になりました。
モニタリング
各コンポーネントにおけるワークロードの最新状況が可視化されるようになりました。
今までも時系列で追えはしたが、現在状況がまとまってるので状況の把握がより容易になりそうです。
料金モデル
DCU(Data Compute Unit)が導入されます。
リソースや環境サイズがまるっとDCUに束ねられる形となりました。
一方で、リソースや環境サイズの変化と時間あたりのDCUの関係が不明確でもあり、執筆時点で料金計算ツールにもCloud Composer 3がまだ存在しなかった事から料金シミュレーションが出来ないとコストが読めないので移行判断が難しいなと感じています。
これは今後のアップデートに期待したい所です。
おわりに
ここまでCloud Composer 3における変化を紹介しました。まとめとしては以下になります。
- 環境の管理コストが大幅に減りそう
- 一方で全く知る機会がなくなる弊害も
- タスク実行環境を独立させることができるのでKubernetesExecutorは歓迎
- コスト周りの計算ロジックは現時点で解像度高くない
- プレビュー版につきSLAや補償の対象ではない為本番環境では使えない。GAになるのを待つ
余談ですが、Google Cloud Next Tokyo '23 で発表があったServerless Composerについては記載されている内容がCloud Composer 3で実現している内容に見受けられましたので、おそらくServerless Composer = Cloud Composer 3 の事と言っても差し支えないのかなと感じております。
引用:https://x.com/kazaneya_pr/status/1697129408853864691?s=46
Discussion