AWS EC2 On-Demand、Savings Plans 和 Spot 应该怎么组合?
按灵活性、承诺金额和可中断能力拆分 EC2 工作负载,避免为了折扣锁定过多用量。
- On-Demand 适合未知用量和短期需求
- Savings Plans 只覆盖保守、持续的每小时基线
- Spot 适合可中断、可重试和无状态任务
- Capacity Reservation 与价格折扣不是同一个概念
先把价格优惠和容量保障分开
On-Demand、Savings Plans、Reserved Instances 和 Spot 主要决定计算费用如何结算;Capacity Reservation 解决的是指定可用区是否为你保留容量。购买 Savings Plans 并不自动保证某个可用区随时有实例容量。
如果业务目标是灾备或大促期间确保启动,除了价格模式,还要单独评估容量预留、跨可用区部署和扩容策略。
On-Demand 用来保留决策空间
新项目、迁移验证、短期活动和使用量未知的服务,先使用 On-Demand 更容易调整架构。虽然单价通常更高,但可以避免错误承诺带来的长期浪费。
运行一段时间后,再通过 Cost Explorer 或账单数据确认每小时最低用量,而不是用月度平均值直接购买承诺。平均值会把峰值摊平,容易高估真正稳定的基线。
Savings Plans 应覆盖稳定基线
Compute Savings Plans 的适用范围更灵活;EC2 Instance Savings Plans 约束更具体,但可能提供更高折扣。选择时要结合区域、实例家族、操作系统和未来一年到三年的架构变化。
建议分批购买承诺。先覆盖最确定的一部分,观察利用率和覆盖率,再决定是否追加。承诺之外的用量仍可使用 On-Demand,业务没有必要追求账面上的 100% 覆盖。
Spot 的前提是系统能够被中断
Spot 适合批处理、CI/CD、渲染、数据分析和可水平扩展的无状态服务。应用必须能够处理实例回收通知、自动重试、检查点保存和跨实例恢复。
数据库主节点、单点有状态服务或无法快速恢复的任务,不应仅因为折扣而迁移到 Spot。可以采用 On-Demand 或承诺资源承载核心,Spot 承载弹性任务的组合。
官方资料与更新说明
本文根据下列云厂商官方资料整理。产品可用性、计费和规则会变化,操作前请再次核对目标区域控制台与最新文档。