竞价实例优化指南

竞价实例优化指南

竞价实例(AWS)、Spot VM(Azure)和 Spot/抢占式 VM(GCP)是以比按需价格低 70% 到 90% 提供的云闲置容量。代价是当底层硬件需求上升时,云厂商可在仅 30 秒警告后回收实例。对于可容忍中断的工作负载 —— 也仅对这些工作负载 —— 竞价是公有云中最便宜的计算方式,且优势明显。

哪些工作负载适合竞价

竞价适用于无状态容错可中断的工作负载:

  • 批处理和 HPC 作业 —— 图像渲染、视频转码、蒙特卡洛模拟。检查点保存进度并在替换实例上恢复。
  • CI/CD runner —— 作业队列可等待替换实例而不会错过发布截止日期。
  • 无状态 Web 层 —— 在带自动伸缩的负载均衡器后,被驱逐的实例在几秒内被替换。
  • 大数据处理 —— 设计为可处理节点丢失的 Spark、Hadoop 和数据仓库集群。
  • 开发和测试环境 —— 可接受 2 分钟中断的非生产工作负载。

竞价适合有状态数据库、无副本的单实例应用、与用户的交互式会话或无法检查点的批处理作业。

厂商对比

厂商最短驱逐通知最长生命周期典型折扣
AWS Spot Instances2 分钟~70% off 按需
Azure Spot VMs30 秒~80% off(Linux)
GCP Spot VMs30 秒~60-91% off
GCP Preemptible VMs(传统)30 秒最长 24 小时~60-80% off

GCP Spot VM(抢占式 VM 的继任者)折扣最深,GCP 在驱逐前 30 秒发送关闭脚本。AWS Spot 提供最宽松的通知(2 分钟),给批处理作业留出检查点时间。Azure 介于两者之间。

为中断设计

使竞价可靠的四种模式:

  1. 检查点和恢复 —— 每隔几分钟将进度写入持久存储(S3、Cloud Storage),并在替换实例上从最后检查点重启。
  2. 分布式工作队列 —— 使用队列(SQS、Pub/Sub、Service Bus)分发工作单元。如果实例被驱逐,工作单元返回队列供另一个实例拾取。
  3. 多实例 + 自动伸缩 —— 在负载均衡器后运行至少 2 个竞价实例,并配置自动伸缩在一个被驱逐时启动替换。
  4. 竞价 + 按需混合 —— 70% 到 90% 的容量运行在竞价上,其余运行在按需或预留上,这样当竞价不可用时工作负载优雅降级而非完全停止。

竞价集群和容量再平衡

AWS Spot Fleet 和 Azure Spot VM Scale Set 允许您跨多种实例类型和可用区请求目标容量,这大大降低了所有竞价容量被同时回收的概率。将集群配置为跨 2 到 3 个区域的 3 到 5 种实例类型,总丢失概率降至每月 1% 以下。

GCP 没有直接的 Spot Fleet 等价物,但带多实例模板和 proactiveRefresh 设置的 MIG(托管实例组)可实现类似效果。

成本跟踪

竞价价格随需求波动,因此今天每小时 $0.029 的工作负载下周可能 $0.058。在滚动 30 天平均值的 110% 处设置账单警报,并将集群配置为当竞价价格超过按需价格时自动回退到按需 —— 此时竞价不提供节省,只增加中断风险。

请参阅我们的 AWS vs Azure 计算对比 了解每实例竞价折扣,以及 预留实例指南 了解应用于混合集群按需部分的承诺策略。

Other languages