

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

# 亚马逊 EC2 On-Demand 或亚马逊 EC2 现货
<a name="bestpractice5"></a>

大多数 AWS Batch 客户之所以使用 Amazon EC2 竞价型实例，是因为与 On-Demand 实例相比可以节省开支。但是，如果您的工作负载运行多个小时且无法中断，则 On-Demand 实例可能更适合您。您可以随时先试用 Spot 实例， On-Demand 必要时切换到。

如果您有以下要求和期望，请使用 Amazon EC2 On-Demand 实例：
+ 作业的运行时超过一个小时，您不能容忍工作负载中断。
+ 您的总体工作负载有严格的 SLO（服务级别目标），并且不能增加计算时间。
+ 您需要的实例更有可能出现中断。

如果您有以下要求和期望，请使用 Amazon EC2 竞价型实例：
+ 作业的运行时通常为 30 分钟或更短。
+ 您可以容忍潜在的中断，以及作业重新安排作为工作负载的一部分。有关更多信息，请参阅[竞价型实例](https://aws.amazon.com/ec2/spot/instance-advisor/)。
+ 如果中断，可以从检查点重新启动长时间运行的作业。

您可以混合使用两种购买模式，方法是先在 Spot 实例上提交，然后使用 On-Demand 实例作为备用选项。例如，在与 Amazon EC2 竞价型实例上运行的计算环境相连的队列上提交您的作业。如果任务被中断，请从 Amazon EventBridge 捕获事件并将其与竞价型实例回收相关联。然后，使用 AWS Lambda 函数或 AWS Step Functions将任务重新提交到 On-Demand 队列。有关更多信息[教程：针对作业失败事件发送 Amazon Simple Notification Service 警报](batch_sns_tutorial.md)，请参阅[处理 Amazon EC2 竞价型实例中断的最佳实践](https://aws.amazon.com/blogs/compute/best-practices-for-handling-ec2-spot-instance-interruptions/)和使用 [Step Function AWS Batch s 进行管理](https://docs.aws.amazon.com/step-functions/latest/dg/connect-batch.html)。

**重要**  
为您的 On-Demand 计算环境使用不同的实例类型、大小和可用区，以维持 Amazon EC2 Spot 实例池的可用性并降低中断率。