Amazon ec2 让ECS每天创建一个实例

Amazon ec2 让ECS每天创建一个实例,amazon-ec2,autoscaling,amazon-ecs,Amazon Ec2,Autoscaling,Amazon Ecs,因此,基本上我有五项任务需要每天运行一次,而且过程通常很快 我遇到的问题是,我不想让EC2整天都在运行,只为了使用它30分钟。有没有办法让ECS创建实例、运行任务并在第二天之前完成实例?以下是几个选项: 1。使用自动缩放组计划缩放 在自动缩放组中运行实例,并在不需要时使用基于时间的缩放将所需计数设置为0,在有任务要运行时将所需计数设置为1(或任意数字) 2。使用AWS实例调度程序 AWS实例调度程序允许您创建EC2开始-停止调度规则。在这种方法中,在dynamodb表中配置调度,为实例添加适当

因此,基本上我有五项任务需要每天运行一次,而且过程通常很快


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

以下是几个选项:

1。使用自动缩放组计划缩放

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

2。使用AWS实例调度程序

AWS实例调度程序允许您创建EC2开始-停止调度规则。在这种方法中,在dynamodb表中配置调度,为实例添加适当的标记,然后lambda函数将确保遵循调度

3。EC2基于挂起任务计数的启动-停止

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

一些要点:

  • 如果您的任务不需要很长时间来完成,那么(如果可用的话)可能是一个更好、更便宜的解决方案,可以在不担心服务器的情况下运行您的任务

  • 您也可以使用或,但是上面的选项之一可能更简单,并且对于您的用例来说已经足够了


    • 以下是几个选项:

      1。使用自动缩放组计划缩放

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

      2。使用AWS实例调度程序

      AWS实例调度程序允许您创建EC2开始-停止调度规则。在这种方法中,在dynamodb表中配置调度,为实例添加适当的标记,然后lambda函数将确保遵循调度

      3。EC2基于挂起任务计数的启动-停止

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

      一些要点:

      • 如果您的任务不需要很长时间来完成,那么(如果可用的话)可能是一个更好、更便宜的解决方案,可以在不担心服务器的情况下运行您的任务

      • 您也可以使用或,但是上面的选项之一可能更简单,并且对于您的用例来说已经足够了


      这就是您想要的:?@Mahdi否,我希望仅在任务需要运行时自动启动和停止EC2实例,仅此而已。谢谢。你看过AWS CLI了吗?您可以轻松创建脚本来启动和停止EC2实例。启动实例的示例:aws ec2启动实例--实例ID i-1234567890123456。然后,您可以编写SSH命令脚本以在实例中运行,然后停止它。全部来自命令行(或通过调度程序)。需要记住的一项。EC2每小时实例成本和磁盘存储成本(EBS或实例存储)。对于小型EC2实例,存储成本可能大于实例成本。你无法计算存储成本。这就是你想要的吗:?@Mahdi否,我只希望在任务需要运行时自动启动和停止EC2实例,仅此而已。谢谢。你看过AWS CLI了吗?您可以轻松创建脚本来启动和停止EC2实例。启动实例的示例:aws ec2启动实例--实例ID i-1234567890123456。然后,您可以编写SSH命令脚本以在实例中运行,然后停止它。全部来自命令行(或通过调度程序)。需要记住的一项。EC2每小时实例成本和磁盘存储成本(EBS或实例存储)。对于小型EC2实例,存储成本可能大于实例成本。你无法改变存储成本。法尔盖特是一条出路。谢谢法尔盖特是一条出路。谢谢