使ECS每天创建实例

时间:2018-07-19 13:38:19

标签: amazon-ec2 autoscaling amazon-ecs

所以基本上我每天有五个任务需要运行一次,并且该过程通常很快。

我遇到的问题是,我不想一整天都只用EC2三十分钟。是否可以让ECS创建实例,运行任务并完成实例直到第二天?

1 个答案:

答案 0 :(得分:2)

以下是一些选择:

1。使用自动缩放组进行预定缩放

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

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

2。使用AWS Instance Scheduler

AWS Instance Scheduler允许您创建EC2启停调度规则。通过这种方法,您可以在dynamodb表中配置计划,为您的实例添加适当的标记,然后使用lambda函数将确保遵循计划。

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

3。根据待处理的任务计数,EC2启动停止

安排一个lambda函数定期运行,以检测集群的未决任务计数。如果非零,则启动实例。当没有挂起或正在运行的任务时,lambda还应停止实例。您需要使用DescribeTasks API来过滤带有lastStatus=PENDING的任务

一些要点:

  • 如果您的任务不需要很长时间才能完成,那么Fargate(如果有)可能是一种更好而又便宜的解决方案,无需担心服务器就可以运行任务。

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