Amazon MWAA 专业2020年〜
以托管方式运行 Apache Airflow 的工作流编排服务
它能做什么
Amazon MWAA (Managed Workflows for Apache Airflow) 是以全托管方式提供 Apache Airflow 的服务。执行以 DAG (有向无环图) 定义的工作流的计划运行、任务间依赖管理和执行状态监控。Airflow 的 Web UI、CLI 和 API 可直接使用。
使用场景
用于 ETL 管道编排、机器学习管道管理、数据湖数据摄取工作流,以及多 AWS 服务协作的批处理自动化。
日常类比
可以将其比作工厂的生产管理系统。定义各工序 (任务) 的顺序和依赖关系,按计划自动执行。某工序失败则停止后续工序,进行重试或通知。
什么是 MWAA
Amazon MWAA 是 Apache Airflow 的托管服务。Airflow 是用 Python 定义 DAG (工作流) 的开源工作流编排器,在数据工程领域广泛使用。MWAA 由 AWS 管理 Airflow 的基础设施 (Web 服务器、调度器、工作节点、元数据数据库) 的构建和运维。
DAG 与 AWS 服务集成
DAG 文件放置在 S3 存储桶中。MWAA 自动加载 DAG 并按计划执行。通过 Airflow 的 AWS 提供商包,可轻松与 AWS 服务集成,如执行 Glue 作业、启动 EMR 集群、调用 Lambda、运行 ECS 任务等。还可通过 requirements.txt 添加自定义 Python 包。 如需了解 DAG 与 AWS 服务集成的详细信息,可参考 相关书籍 (Amazon)。
如何开始
在 MWAA 控制台创建环境,指定存放 DAG 文件的 S3 存储桶。选择环境类 (mw1.small、mw1.medium、mw1.large) 并设置 VPC 和子网。环境创建约需 25 分钟。创建后可访问 Airflow Web UI 管理 DAG 和查看执行状态。
注意事项
- 环境按时间持续计费 (最小配置约 bash.49/小时)。使用频率低时 Step Functions 更具成本效益
- 简单工作流用 Step Functions,需要复杂 DAG 或利用 Airflow 生态系统时用 MWAA