安排 Docker 映像在 AWS ECS 上定期运行?

Sea*_*nka 6 amazon-ec2 amazon-web-services amazon-ecs docker

如何安排使用 ECS 定期(每小时)运行 docker 映像,而无需使用持续运行的 EC2 实例 + cron?我有一个包含第三方二进制文件和 python 项目的 docker 映像。

后一种方法从长远来看并不可行,因为实例 24/7 运行的成本很高,而且只在一天中的一小部分时间使用,因为脚本的调用仅持续约 3 分钟。

Imr*_*ran 5

对于AWS ECS集群,建议至少有1台EC2服务器24x7运行。您是否查看过 AWS Fargate 是否可以运行您的 docker 容器?还有 AWS Batch?如果 Fargate 和 AWS Batch 无法满足您的要求,我会推荐类似的东西,而不需要 ECS。

  1. 使用预构建的 Docker 以及所需的软件和库构建 EC2 AMI。

  2. 让 AWS Instance Scheduler 每小时启动一个 EC2 服务器,并作为用户数据的一部分,使用您提到的映像启动一个 docker 容器。 https://aws.amazon.com/answers/infrastruct-management/instance-scheduler/

  3. 如果你知道你的任务执行时间可能是 5 分钟。8 或 10 分钟后,然后使用调度程序关闭服务器。

上述方法将盲目地启动 EC2 并停止它,而不知道您的 python 工作是否成功完成。我们仍然可以通过 Lambda 和 CloudFormation 模板组合来改进上述内容。让我知道你的想法 :)