Amazon MWAA
Apache Airflow をマネージドに実行するワークフローオーケストレーションサービス
何ができるか
Amazon MWAA (Managed Workflows for Apache Airflow) は、Apache Airflow をフルマネージドで提供するサービスです。DAG (Directed Acyclic Graph) で定義したワークフローのスケジュール実行、タスク間の依存関係管理、実行状況のモニタリングを行います。Airflow の Web UI、CLI、API がそのまま利用可能です。
どのような場面で使うか
ETL パイプラインのオーケストレーション、機械学習パイプラインの管理、データレイクへのデータ取り込みワークフロー、複数の AWS サービスを連携させるバッチ処理の自動化に利用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
工場の生産管理システムに例えられます。各工程 (タスク) の順序と依存関係を定義し、スケジュールに従って自動実行します。ある工程が失敗したら後続工程を停止し、リトライや通知を行います。
MWAA とは
この記事は約 2 分で読めます。 Amazon MWAA は、Apache Airflow のマネージドサービスです。Airflow は Python で DAG (ワークフロー) を定義するオープンソースのワークフローオーケストレーターで、データエンジニアリングの分野で広く使われています。MWAA は Airflow のインフラ (Web サーバー、スケジューラー、ワーカー、メタデータ DB) の構築・運用を AWS が管理します。
DAG と AWS サービス連携
DAG ファイルは S3 バケットに配置します。MWAA が自動的に DAG を読み込み、スケジュールに従って実行します。Airflow の AWS プロバイダーパッケージで、Glue ジョブの実行、EMR クラスターの起動、Lambda の呼び出し、ECS タスクの実行など、AWS サービスとの連携が容易です。カスタム Python パッケージも requirements.txt で追加できます。
はじめかた
MWAA コンソールで環境を作成し、DAG ファイルを格納する S3 バケットを指定します。環境クラス (mw1.small、mw1.medium、mw1.large) を選択し、VPC とサブネットを設定します。環境の作成には約 25 分かかります。作成後、Airflow Web UI にアクセスして DAG の管理と実行状況の確認ができます。
Azure・オンプレミスとの比較
AWS の優位点
- Airflow のインフラ管理が不要で、Web サーバー、スケジューラー、ワーカー、メタデータ DB を AWS が運用
- 既存の Airflow DAG をそのまま移行可能。Airflow の Web UI、CLI、API がフル機能で利用可能
- AWS プロバイダーパッケージで Glue、EMR、Lambda、ECS など AWS サービスとの連携が容易
注意点
- 環境の時間課金が常時発生する (最小構成で約 $0.49/時間)。利用頻度が低い場合は Step Functions の方がコスト効率が良い
- シンプルなワークフローなら Step Functions、複雑な DAG や Airflow エコシステムの活用が必要なら MWAA を選択
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。