首页 > 解决方案 > 安排 Docker 映像在 AWS ECS 上定期运行?

问题描述

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

后一种方法长期不可行,因为实例 24/7 运行成本很高,而脚本调用仅持续约 3 分钟,仅用于一天中的一小部分时间。

标签: amazon-web-servicesdockeramazon-ec2amazon-ecs

解决方案


对于 AWS ECS 集群,建议至少有 1 台 24x7 运行的 EC2 服务器。您是否查看过 AWS Fargate 是否可以运行您的 docker 容器?还有 AWS Batch?如果 Fargate 和 AWS Batch 不可行,那么根据您的要求,我建议在没有 ECS 的情况下使用类似的方法。

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

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

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

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


推荐阅读