AWS 竞价实例的生态系统 - 支撑最高 90% 折扣的成熟中断管理
AWS 竞价实例凭借最高 90% 的折扣,以及结合 2 分钟前通知、Spot Placement Score 和 Capacity Rebalancing 的中断管理,已被生产工作负载采用。从中断通知的缓冲时间、Fleet 管理和分配策略的角度比较与 Azure Spot VM 和 GCP Spot VM 的差异。
竞价实例的基础与折扣结构
AWS 竞价实例是以最高 90% 的折扣利用 EC2 剩余容量的购买选项。2009 年推出时采用拍卖形式价格浮动,但 2017 年定价模型改革后,现在采用基于供需的稳定定价。这一变更大幅提升了价格可预测性,加速了生产工作负载的采用。实际折扣率按实例类型、区域和可用区组成的容量池逐一决定,AWS 官方给出的只有最高 90% 这一上限。各池的水平差异很大,因此设计时不应预设特定折扣率,而应通过竞价价格历史确认目标池的当前价格。就官方公布的最高折扣率上限而言,竞价实例高于 Savings Plans 和预留实例,但实际能节省多少取决于容量池和使用方式。
中断管理工具的充实度
AWS 为应对竞价实例中断提供了全面的工具集。EC2 元数据服务的中断通知在实例被回收前 2 分钟发出通知,确保应用有时间优雅关闭。通过与 EventBridge 的集成,可以以中断通知为触发器执行 Lambda 函数,自动化作业转移和检查点保存。Spot Placement Score 在启动前评估特定实例类型和区域组合的容量可用性,帮助选择中断风险较低的配置。Capacity Rebalancing 在检测到中断风险升高时,在现有实例被回收前主动启动替代实例,实现无缝过渡。这些工具的组合使得竞价实例不仅适用于批处理,还可用于 Web 服务器和容器集群等需要持续运行的工作负载。
Fleet 管理与分散策略
EC2 Fleet 和 Spot Fleet 是统一管理组合多种实例类型、可用区和购买选项的舰队的功能。竞价的 allocation strategy 在官方文档(截至 2026 年 8 月)中提供 price-capacity-optimized、capacity-optimized、capacity-optimized-prioritized、diversified、lowest-price 五种。AWS 推荐的是 price-capacity-optimized,它先筛选出容量余量较大的池,再从中选择价格最低的池,因此对无状态容器应用、微服务、数据分析和批处理等许多工作负载而言是默认选项。对中断成本较高的工作负载,可选择优先容量而非价格的 capacity-optimized,或在尽力而为的基础上尊重实例类型优先顺序的 capacity-optimized-prioritized。大规模且长期运行的舰队也可选择 diversified,将实例均匀分散到所有池,以稀释单一池的价格波动或容量枯竭带来的影响。相反,lowest-price 只看价格而不考虑容量,中断风险最高,AWS 不推荐使用。由于 AWS CLI 的默认值仍是 lowest-price,通常做法是显式指定 price-capacity-optimized 加以覆盖。通过在多个实例类型和可用区间分散,即使特定池的容量不足,整体舰队也能维持所需容量。
与 Azure Spot VM 的比较
Azure Spot VM 于 2020 年正式发布。在最高 90% 折扣方面与 AWS 相当,但在应对中断的方式和舰队管理的粒度上存在差异。Azure Spot VM 的驱逐策略只有停止/解除分配或删除两种选择,驱逐通知通过 Scheduled Events 在 30 秒前发出,与 AWS 的 2 分钟前通知相比缓冲时间更短,因此需要将容器的安全排空或大型检查点的写出控制在 30 秒内。舰队管理方面,除传统的 Virtual Machine Scale Sets(VMSS)外,还提供 Azure Compute Fleet。根据官方文档(截至 2026 年 8 月),Compute Fleet 可在单一舰队中混合 Spot 与按量付费 VM,并可分别为 Spot 和 Standard 从最低价格优先、容量优先或二者组合中选择分配策略,因此已能组建接近 AWS EC2 Fleet 的配置。差异在于策略的粒度和事前评估的手段:AWS 侧可选择 capacity-optimized-prioritized 这类带优先顺序的策略,并可通过 Spot Placement Score 以 1 到 10 的分数预先估算各实例配置的获取难易度;Compute Fleet 的强项则是在单一舰队中处理混合购买选项,哪一方更有利取决于工作负载更需要中断预测的精度还是购买选项的打包。Azure 的优势在于与 Azure Batch 和 AKS 的集成。
与 GCP Spot VM 的比较
GCP 于 2022 年将原来的 Preemptible VM 重新品牌化为 Spot VM,取消了 24 小时最大运行时间限制。GCP Spot VM 的中断通知为 30 秒前,与 AWS 的 2 分钟前通知相比应对时间更短。Managed Instance Group(MIG)可以管理竞价实例,但没有提供像 EC2 Fleet 那样选择分配策略的机制。GCP 的优势在于与 GKE 的集成。仅就竞价实例本身的管理机制比较,AWS 可组合使用 2 分钟前的中断通知、Spot Placement Score 的事前评估、Capacity Rebalancing 的提前迁移和五种分配策略;GCP 侧则以 30 秒前的中断通知和 MIG 的重建为主,获取难易度的事前评估和池选择的精细控制交由用户自行设计。
总结
AWS 竞价实例自 2009 年推出以来,中断管理工具、Fleet 管理和分配策略逐步积累完善。2 分钟前的中断通知、以 1 到 10 的分数表示获取难易度的 Spot Placement Score、检测中断风险升高并提前迁移的 Capacity Rebalancing,以及包含 price-capacity-optimized 在内的五种分配策略,这一组合的特点是把在生产工作负载中使用竞价实例所需的机制拆分为单独的功能提供。Azure 以 Compute Fleet 实现购买选项混合和多区域部署,GCP 以无运行时间限制的 Spot VM 和 MIG 的重建为核心,即使同为最高 90% 折扣,设计时需要把握的前提也各不相同。要安全地利用折扣,关键在于理解这些工具的差异,确认目标池的当前价格和中断频率,并设计适当的分散策略。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。