Spot 实例最佳实践
您的实例类型要求、预算要求和应用程序设计决定了如何针对您的应用程序应用以下最佳实践:
-
灵活使用实例类型。 Spot 实例池是一组具有相同实例类型(如 m5.large)和可用区(如 us-east-1a)的未使用 EC2 实例。您应该灵活地选择请求哪些实例类型,以及可以在哪些可用区中部署工作负载。这为 Spot 提供了更好的机会以查找和分配所需数量的计算容量。例如,如果您要使用 c4、m5 和 m4 系列中的大型实例,则不要仅请求 c5.large。
-
使用容量经过优化的分配策略。 EC2 Auto Scaling 组中的分配策略可以帮助您预置目标容量,而无需手动查找具有备用容量的 Spot 实例池。我们建议使用容量经过优化的策略,因为该策略会自动从可用性最高的 Spot 实例池中预置实例。由于 Spot 实例容量源自具有最佳容量的池,因此这会降低中断 Spot 实例的可能性。有关分配策略的更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南中的 Spot 实例。
-
使用主动容量再平衡。 容量再平衡功能可在运行中的 Spot 实例提前两分钟收到中断通知时,主动使用新的 Spot 实例扩展您的 Auto Scaling 组,从而帮助您维护工作负载的可用性。启用容量再平衡功能后,Auto Scaling 将尝试主动替换已收到再平衡建议的 Spot 实例,从而使您有机会将工作负载再平衡到不处于较高中断风险的新 Spot 实例。
-
使用集成的 AWS 服务管理 Spot 实例。 其他 AWS 服务与 Spot 集成在一起可降低总体计算成本,而无需管理各个实例或机群。我们建议您为适用的工作负载考虑以下解决方案:Amazon EMR、Amazon ECS、AWS Batch、Amazon EKS、SageMaker、AWS Elastic Beanstalk 和 Amazon GameLift。要了解这些服务的 Spot 最佳实践的更多信息,请参阅 Amazon EC2 Spot 实例研讨会网站
。 -
为 Spot 实例选择正确的现代启动工具。 如果某个 AWS 集成服务不适合您的工作负载,并且您仍然需要在构建应用程序时控制 Spot 实例的启动,请使用正确的工具。对于大多数工作负载,您应该使用 EC2 Auto Scaling,因为它为广泛的工作负载(如 ELB 支持的应用程序、容器化工作负载和队列处理作业)提供了更全面的功能集。如果您需要对各个请求进行更多控制,并且正在寻找“仅限启动”工具,请使用即时模式下的 EC2 机群直接替代 RunInstances,它具有更广泛的功能,例如实例类型多样化和分配策略。