使用 Amazon EC2 竞价型最佳实践用于 AWS Batch - AWS Batch

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon EC2 竞价型最佳实践用于 AWS Batch

当您选择 Amazon Elastic Compute Cloud (EC2) 竞价型实例时,您可能可以优化工作流程以节省成本,有时甚至可以显著节省成本。有关更多信息,请参阅 Amazon EC2 竞价型的最佳实践

要优化您的工作流程以节省成本,请考虑以下 AWS Batch 的 Amazon EC2 竞价型最佳实践:

  • 选择 SPOT_CAPACITY_OPTIMIZED 分配策略 – AWS Batch 从最深的 Amazon EC2 竞价型容量池中选择 Amazon EC2 实例。如果您担心中断,这是一个合适的选择。有关更多信息,请参阅 AWS Batch 的实例类型分配策略

  • 多样化实例类型 – 要使您的实例类型多样化,请考虑兼容的大小和系列,然后根据价格或可用性进行 AWS Batch 选择。例如,考虑将 c5.24xlarge 作为 c5.12xlargec5ac5nc5dm5m5d 系列的替代方案。有关更多信息,请参阅灵活选择实例类型和可用区

  • 减少作业运行时或检查点 – 我们建议不要在使用 Amazon EC2 竞价型实例运行需要一小时或更长时间的作业,以免中断。如果将作业分成小部分或设置检查点,时间不超过 30 分钟,则可以显著降低中断的可能性。

  • 使用自动重试 – 为避免 AWS Batch 作业中断,请为作业设置自动重试。批处理作业可能由于以下任何原因而中断:返回非零的退出代码、发生服务错误或发生实例回收。您最多可以设置 10 次自动重试。首先,我们建议您至少设置 1-3 自动重试。有关跟踪 Amazon EC2 竞价型中断的信息,请参阅竞价型中断控制面板

    对于 AWS Batch,如果您设置了重试参数,则作业将放在作业队列的前面。也就是说,作业被优先考虑。在 AWS CLI 中创建作业定义或提交作业时,可以配置重试策略。有关更多信息,请参阅 提交任务

    $ aws batch submit-job --job-name MyJob \ --job-queue MyJQ \ --job-definition MyJD \ --retry-strategy attempts=2
  • 使用自定义重试次数 – 您可以将作业重试策略配置为特定的应用程序退出代码或实例回收。在以下示例中,如果主机导致故障,则作业最多可以重试五次。但是,如果作业由于其他原因失败,则作业将退出并将状态设置为 FAILED

    "retryStrategy": { "attempts": 5, "evaluateOnExit": [{ "onStatusReason" :"Host EC2*", "action": "RETRY" },{ "onReason" : "*" "action": "EXIT" }] }
  • 使用竞价型中断控制面板 – 您可以使用竞价型中断控制面板来跟踪竞价型中断情况。应用程序提供有关已回收的 Amazon EC2 竞价型实例以及竞价型实例所在的可用区的指标。有关更多信息,请参阅竞价型中断控制面板