Airflow のアーキテクチャをざっくり学んで
Google Cloud Composer で
マネージド環境をつくって動かしてみた。
2021/06/23
1
みかみ
2
自己紹介
クラスメソッド株式会社 DA事業本部
三上 裕貴(みかみ ゆき)
 生息地
• 沖縄
 趣味
• 海釣り(フカセ)、犬と遊ぶ
 経歴
• 組込開発エンジニア
• Webアプリ開発エンジニア
• データエンジニア
COMPANY PROFILE
クラスメソッドは、アマゾン ウェブ サービス(AWS)を中心に、クラウド、モバイル、データ分析、機械学習、
IoT、モダン開発などの技術を組み合わせたコンサルティングやシステム開発、運用サービスを提供しています。
提供サービス
© Classmethod, Inc.
4
ビッグデータ統合基盤「CSアナリティクス」
6
販売データ(POS)や行動ログなど、企業に存在する多様なデータを集約し、 様々な
角度から顧客理解を深めるビックデータ分析基盤を提供します。 従来、多くの費用と
開発期間を必要としてきたビッグデータの分析基盤をテンプレート化し最短1か月で
導入可能です。
7
CSアナリティクス(JMC)
• ベースは Airflow
8
ここから本題です。
9
おしながき
1. Airflowのアーキテクチャ
2. マネージド Airflow
3. Google Cloud Composer
4. Cloud Composer 環境セットアップ
5. Cloud Composer を使ってみる
6. Cloud Composer の料金
7. まとめ
10
Airflow のアーキテクチャ
11
Airflow のアーキテクチャ
• Web Server
ジョブ管理画面
• Scheduler
ジョブのスケジュール管理
• Worker
ジョブ実行
12
Airflow のアーキテクチャ
13
Airflow のアーキテクチャ
• DAG:
実行単位
• Operator:
具体的な処理
→Pythonで記述
14
マネージド Airflow
15
パブリッククラウドのマネージドAirflow
• Amazon Managed Workflows for
Apache Airflow (MWAA)
• Google Cloud Composer
16
Google Cloud Composer
17
Google Cloud Composer
• Google Cloud の Airflow マネージド環境
• インフラ管理不要(環境作成後のリサイズも可)
• DAG(バッチ処理)実装に集中できる
• 他のデータ系サービス(Dataflow、
DataFusion、Dataproc等)と統合可能
18
Google Cloud Composer
• Google
Kubernetes
Engine
• Cloud Storage
• Cloud SQL
• Cloud Logging
• Cloud
Monitoring
※抜粋:https://cloud.google.com/composer/docs/concepts/architecture
19
Cloud Composer 環境セットアップ
20
Cloud Composer 環境セットアップ
• Google Cloud 管理コン
ソールから、必要項目を
入力してポチるだけ。
(CLI も利用可能)
• ノード数、マシンタイプ、
ディスクサイズも自由に
指定可能。
• IP制限などのセキュリ
ティ設定、ネットワーク
設定もできる。
21
Cloud Composer 環境セットアップ
• Airflowバージョン選択可能(Composerバージョンに依存)
• Pythonバージョン選択可能(Airflowバージョンに依存)
22
Cloud Composer 環境セットアップ
• セクション + キー 指定で config オーバーライド可能
• 環境変数も設定可能
23
Cloud Composer 環境セットアップ
• 約20分でセットアップ完了
• 「Airflow ウェブサーバー」リンクからAirflow管理画面表示
• 「ログ」リンクから Cloud Logging でログ確認可能
24
Cloud Composer 環境セットアップ
• Cloud Storage バケットも自動作成される
25
Cloud Composer を使ってみる
26
Cloud Composer を使ってみる
• 使い心地は通常の Airflow と全く同じ
• DAG ファイルを Cloud Storage に配置するだけ
27
Cloud Composer を使ってみる
1. DAG ファイルを準備
※サンプルコードあり
28
Cloud Composer を使ってみる
2. Cloud Storage の dags 配下にアップロード
29
Cloud Composer を使ってみる
3. 実行(反映されるまで少し時間がかかることも)
30
Cloud Composer を使ってみる
※実行結果確認(Airflow 管理コンソール)
31
Cloud Composer を使ってみる
• Cloud Composer コンソール:ヘルスチェック、ログ
32
Cloud Composer の料金
33
Cloud Composer の料金
• 環境のサイズと使用時間(10分単位)に依存
• デフォルトサイズで1ヶ月に25%稼働の場合、約$75(+α)
※抜粋:
https://cloud.google.com/composer/pricing/?hl=ja#pricing_table
34
Cloud Composer の料金
• 料金計算ツールで利用環境に合わせて試算可能
https://cloud.google.com/products/calculator?hl=ja
35
まとめ
36
まとめ
• OSS なのに リッチな Airflow
• マネージド Airflow で開発に集中
• Google Cloud 環境なら Composer がおすすめ
(Airflow の使用感を試したい場合にも)
37
Appendix
38
参考資料
• Apache Airflow Documentation | Apache Airflow
https:// airflow.apache.org/docs/apache-airflow/stable/index.html
• Cloud Composer | Google Cloud
https://cloud.google.com/composer?hl=ja
• クイックスタート | Cloud Composer
https://cloud.google.com/composer/docs/quickstart?hl=ja
• すべての Cloud Composer のサンプル | Cloud Composer
https://cloud.google.com/composer/docs/samples
• 料金 | Cloud Composer
https://cloud.google.com/composer/pricing/?hl=ja
• Google Cloud Pricing Calculator | Google Cloud
https://cloud.google.com/products/calculator
39
参考資料
• Orchestrating your data workloads in Google Cloud | Google Cloud Blog
https://cloud.google.com/blog/topics/developers-practitioners/orchestrating-your-data-
workloads-google-cloud
• Choosing the right orchestrator in Google Cloud | Google Cloud Blog
https://cloud.google.com/blog/topics/developers-practitioners/choosing-right-orchestrator-
google-cloud
• Scale your Composer environment together with your business | Google Cloud Blog
https://cloud.google.com/blog/products/data-analytics/scale-your-composer-environment-
together-your-business
• Using upstream Apache Airflow Hooks and Operators in Cloud Composer | Google Cloud
Blog
https://cloud.google.com/blog/products/data-analytics/using-upstream-apache-airflow-hooks-
and-operators-in-cloud-composer
• Better together: orchestrating your Data Fusion pipelines with Cloud Composer | Google
Cloud Blog
https://cloud.google.com/blog/products/data-analytics/easier-management-for-cloud-etl-elt-
pipelines
40

Airflow のアーキテクチャをざっくり学んで Google Cloud Composer で マネージド環境をつくって動かしてみた。