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 とは

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 の管理と実行状況の確認ができます。

注意点

  • 環境の時間課金が常時発生する (最小構成で約 $0.49/時間)。利用頻度が低い場合は Step Functions の方がコスト効率が良い
  • シンプルなワークフローなら Step Functions、複雑な DAG や Airflow エコシステムの活用が必要なら MWAA を選択

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。