【问题标题】:Terminate EC2 instance after AWS Batch is succeededAWS Batch 成功后终止 EC2 实例
【发布时间】:2018-11-07 16:19:27
【问题描述】:

我正在使用 AWS Batch 中的 docker 容器运行一个简单的 java HelloWorld 程序。我创建了一个具有以下值的托管计算环境

最少 vCPU 0

所需的 vCPU 0

最大 vCPU 数 256

最佳实例类型

在提交作业时,作业成功执行,即作业被提交到队列,调度程序提供 ec2 实例(使用作业定义中指定的 aws-ecs 代理容器和 java helloworld 容器)并且作业是使用 CloudWatch Stream 中的日志成功完成。

我的问题是,作业成功后,调度程序提供的计算环境(ec2 实例)仍然继续运行而不是终止。

请。建议我是否遗漏任何东西。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-batch


    【解决方案1】:

    从 2017 年 10 月 5 日起

    AWS Batch 更频繁地评估计算资源,并在您的作业队列中没有更多可运行作业时立即缩减任何空闲实例。
    因此,如果您的计算环境实例处于空闲状态,它将立即终止。

    Announcement

    【讨论】:

      【解决方案2】:

      如果您的计算环境在 AWS 计费时间结束时处于空闲状态,它将终止。

      在 AWS Batch 的 Compute Environment Parameters documentation 内,有一个 State 的定义。计算环境处于 Enabled 状态并且可以接受队列中的作业。一旦计算环境处于已禁用并处于空闲状态,在 AWS 计费小时结束时,计算环境将缩减(这将终止您的 EC2 实例)。

      【讨论】:

      • 感谢您的回复。这意味着如果作业在计费时间的第 1 分钟开始并在计费时间的第 2 分钟完成,则配置的 EC2 实例将在接下来的 58 分钟内空闲,直到作业在队列中提交,然后实例将被终止?
      • 我们如何实现自动化?即从队列中完成作业后立即终止实例。
      • 如果您的处理量很小 - 我建议您考虑编写一个 AWS lambda 函数并使用无服务器架构。请花点时间在以下网址进行研究:aws.amazon.com/lambda
      • 我同意对于小型工作 lambda 是最好的选择,但是长时间工作大约需要更少的时间。 5 分钟以上,配置的 EC2 实例将闲置到计费时间结束然后终止?作业执行成功后如何自动禁用计算环境?
      • 检查您的区域 - 如果您位于正确的区域,AWS Batch 将以每秒分辨率缩减 - 请参阅截至 10 月 17 日的公告 - aws.amazon.com/about-aws/whats-new/2017/10/…
      猜你喜欢
      • 2012-05-19
      • 1970-01-01
      • 2020-03-26
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      • 2021-08-25
      相关资源
      最近更新 更多