本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 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.12xlarge
或c5a
、c5n
、c5d
、m5
和m5d
系列的替代方案。有关更多信息,请参阅灵活选择实例类型和可用区。 -
减少作业运行时或检查点 – 我们建议不要在使用 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 竞价型实例以及竞价型实例所在的可用区的指标。有关更多信息,请参阅竞价型中断控制面板