Amazon MWAA のアイコン

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・オンプレミスとの比較

Azure の対応サービス Azure Data Factory (Managed Airflow)
オンプレミスでの対応手段 Apache Airflow (セルフホスト)、Prefect、Dagster

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) で理解を深められます。