我正在开发一个项目,该项目从 AWS S3 获取一组输入数据,对其进行预处理和分配,启动 10K 批处理容器以在 AWS Batch 上并行处理分配的数据,后聚合数据并推送到S3。
我已经拥有来自其他项目的 Airflow + Batch 的软件模式,但尚未处理 10k 并行任务的缩放因子。 Airflow 很好,因为我可以查看哪些任务失败并在调试后重试任务。但在一个 Airflow EC2 实例上处理这么多任务似乎是一个障碍。另一种选择是让一个任务启动 10k 容器并从那里监视它。
我没有使用 Step Functions 的经验,但听说它是 AWS 的 Airflow。网上似乎有很多 Step Functions + Batch 的模式。 Step Functions 似乎是检查我的用例的好方法吗?对于失败的作业/重试任务的能力,您是否能获得与使用 Airflow 相同的见解?
我曾研究过 Apache Airflow 和 AWS Step Functions,以下是一些见解:
更新(Apache Airflow 服务的 AWS 托管工作流程):