Amazon MWAA

全托管提供 Apache Airflow,通过 DAG 执行数据管道编排的服务

概述

Amazon MWAA (Managed Workflows for Apache Airflow) 是一项全托管提供 Apache Airflow 的工作流编排服务。无需管理 Airflow 的调度器、Worker 和 Web 服务器基础设施,可专注于 DAG (有向无环图) 开发和数据管道运维。与 Glue、EMR、Lambda、Athena、ECS 等 AWS 服务原生集成,可编排复杂的 ETL 工作流。

环境类与 Worker 扩缩容

MWAA 环境分为 mw1.small、mw1.medium、mw1.large 三个类,决定调度器和 Web 服务器的规格。Worker 数量可设置最小/最大值,根据排队任务数自动扩缩。Worker 类型与环境类相同。环境类的选择基于并发任务数和 DAG 复杂度:small 适合 50 个以下并发任务,large 适合数百个并发任务。调度器数量可设为 2 (高可用) 或 5 (大规模)。

DAG 部署与 S3 同步机制

MWAA 的 DAG 文件存储在指定的 S3 存储桶中。将 Python DAG 文件上传到 S3 的 dags/ 前缀后,MWAA 自动同步到调度器和 Worker (同步间隔约 30 秒)。requirements.txt 定义 Python 依赖包,plugins.zip 包含自定义 Airflow 插件。依赖包更新需要环境更新操作 (约 10-20 分钟)。DAG 的版本管理推荐通过 CI/CD 管道将 Git 仓库的变更自动同步到 S3。

插件管理与 VPC 网络设计

MWAA 环境部署在客户 VPC 的私有子网中,可访问 VPC 内的资源 (RDSRedshiftEMR 等)。Web 服务器的访问模式可选公开 (通过互联网) 或私有 (仅 VPC 内)。NAT 网关是必需的,用于 Worker 访问 AWS API 和 PyPI。自定义插件通过 plugins.zip 部署,可包含自定义 Operator、Hook、Sensor。与 Step Functions 的选型:MWAA 适合数据工程团队熟悉 Python/Airflow 生态的场景,Step Functions 适合 AWS 原生无服务器架构。MWAA 的优势是丰富的社区 Provider (数百个连接器) 和 Python 的灵活性。

共有するXB!