让ECS一天创建一个实例

Making ECS create instances ones a day

所以基本上我有五项任务需要每天 运行 完成一次,而且过程通常很快。

我遇到的问题是,我不想让 EC2 一整天都在运行,只是为了使用它 30 分钟。有没有办法让 ECS 创建一个实例,运行 任务并在第二天完成实例?

这些是几个选项:

1.使用自动缩放组进行计划缩放

您 运行 您在自动缩放组中的实例,并使用基于时间的缩放在不需要时将所需计数设置为 0,在有任务时将所需计数设置为 1(或任何您想要的数字) 运行.

https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html

2。使用 AWS Instance Scheduler

AWS Instance Scheduler 允许您创建 EC2 启停调度规则。在这种方法中,您在 dynamodb table 中配置时间表,为您的实例添加适当的标签,然后 lambda 函数将确保遵循时间表。

https://aws.amazon.com/answers/infrastructure-management/instance-scheduler/

3。 EC2 Start Stop based on pending task count

定期将 lambda 函数安排到 运行 以检测集群的待处理任务数。如果它不为零,则启动实例。当没有挂起或 运行ning 任务时,lambda 也应该停止实例。您需要使用 DescribeTasks API 来过滤具有 lastStatus=PENDING

的任务

几点:

  • 如果您的任务不需要很长时间即可完成,Fargate(如果可用)可能是 运行 您的任务的更好、更便宜的解决方案,无需担心服务器。

  • 您也可以使用 Cloudwatch alarm actions or AWS Batch,但上述选项之一可能更简单并且足以满足您的用例。