让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,但上述选项之一可能更简单并且足以满足您的用例。
所以基本上我有五项任务需要每天 运行 完成一次,而且过程通常很快。
我遇到的问题是,我不想让 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,但上述选项之一可能更简单并且足以满足您的用例。