【发布时间】:2019-11-09 12:00:13
【问题描述】:
我的用例如下:
我有一个 python 脚本:
1. reads a file from S3
2. processes the file and outputs a new file
3. saves the output file to S3 (or maybe a database)
python 脚本有一些通过 virtualenv 管理的依赖项。
在 AWS 上并行运行这些脚本的推荐/最简单的方法是什么?
我看到以下选项:
- AWS Batch:看起来很复杂 - 我必须构建自己的 Docker 容器,设置 3 个不同的用户,调试起来并不容易。
- AWS Lambda:设置起来稍微容易一些,但我仍然需要将我的脚本打包成一个 Lambda 函数。调试似乎不太简单
- Slurm 手动启动 EC2 实例 - 从用户的角度来看,这是理想的 - 我所要做的只是创建一个加载 virtualenv 并运行脚本的 jobs.sbatch 文件。主要缺点是我必须安装和配置 slurm。
处理此工作流程的推荐方法是什么?
【问题讨论】:
-
与“并行运行脚本”相比,您是否考虑过在新文件上传到 S3 时触发脚本?这意味着数据将在数据到达时进行处理,而不是稍后分批处理。
-
处理每个文件需要多长时间?您需要在什么时间段内处理多少文件,多久处理一次?
标签: amazon-web-services aws-lambda aws-batch