Savings Plans 与 Reserved Instances 的盈亏平衡点 - 用实测数据比较最优承诺策略

用实际费用数据比较 Savings Plans 与 Reserved Instances 的折扣率、灵活性、盈亏平衡点,解析根据工作负载特性选择最优承诺策略的方法。

两种承诺模型的根本区别

AWS 的承诺折扣有 Savings Plans 和 Reserved Instances (RI) 两种,都是通过承诺 1 年或 3 年的使用来获得按需价格折扣的机制。但两者的承诺对象根本不同。RI 是对特定实例类型、区域、租户、操作系统的承诺。例如购买 m5.xlarge 的 RI,折扣仅适用于 m5.xlarge 的使用。而 Savings Plans 是对每小时使用金额 (USD/hour) 的承诺。Compute Savings Plans 的折扣适用于 EC2FargateLambda 的任何使用,可自由变更实例系列、区域、操作系统。这种灵活性差异是两者选择的核心。工作负载稳定且无实例类型变更计划时 RI 折扣率更高。工作负载流动且预计变更实例类型或区域时 Savings Plans 更安全。

用数字比较实际折扣率差异

折扣率差异因承诺期限和支付选项而变。以 us-east-1 的 m6i.xlarge (Linux) 为例用具体数字比较。按需价格为每小时 0.192 USD。1 年全额预付时,Standard RI 为 0.121 USD/hr (37% 折扣),EC2 Instance Savings Plans 为 0.122 USD/hr (36% 折扣),Compute Savings Plans 为 0.131 USD/hr (32% 折扣)。3 年全额预付时,Standard RI 为 0.076 USD/hr (60% 折扣),EC2 Instance Savings Plans 为 0.078 USD/hr (59% 折扣),Compute Savings Plans 为 0.088 USD/hr (54% 折扣)。RI 与 EC2 Instance Savings Plans 的差仅约 1%,但与 Compute Savings Plans 的差为 5~6%。这 5~6% 的差就是灵活性的溢价。月计算费用 10,000 USD 时,选择 Compute Savings Plans 比 RI 每年多支付约 6,000~7,200 USD。这笔额外成本是否值得自由变更实例类型和区域的灵活性,就是判断要点。

盈亏平衡点的计算方法

承诺折扣的盈亏平衡点取决于承诺金额能实际消费多少。Savings Plans 的情况下,如果实际使用低于承诺的每小时金额,差额就会浪费。例如购买 10 USD/hr 的 Compute Savings Plans,实际使用平均 8 USD/hr,则 2 USD/hr (月约 1,440 USD) 浪费。计算盈亏平衡点,首先从过去 3~6 个月的 Cost Explorer 数据确认按时段的计算使用金额分布。重要的不是平均值而是最小值 (谷底)。深夜或周末使用下降的工作负载,应将谷底时段的使用金额作为承诺金额的上限。例如工作日白天 15 USD/hr、深夜 5 USD/hr、周末 3 USD/hr 的使用模式,承诺金额设为 3 USD/hr,其余用按需覆盖。Cost Explorer 的 Savings Plans 推荐功能会从过去使用模式自动计算最优承诺金额,但不考虑未来工作负载变更 (新服务上线、区域迁移等),因此不要直接采用推荐值,而应与业务计划对照后调整。

按工作负载特性选择最优策略

承诺策略根据工作负载的稳定性和变化预期来选择。稳定的生产环境、无实例类型变更计划、确定运行 3 年以上时,Standard RI 的 3 年全额预付成本效率最高。60% 的折扣率高于任何其他选项,年节省可达数万美元。生产环境但计划 1~2 年内迁移到 Graviton 或变更实例系列时,EC2 Instance Savings Plans 的 1 年合约合适。支持系列内变更 (m6i.xlarge → m6i.2xlarge),合约更新时可切换到新实例系列。微服务架构中组合使用 EC2、Fargate、Lambda 且各服务使用比例变动时,Compute Savings Plans 最优。虽然折扣率较低,但折扣自动跨计算服务适用,能跟随架构演进。

实践性承诺管理框架

承诺折扣不是「买了就完」,需要持续管理。每季度审查以下 3 个指标。第一,Savings Plans 的覆盖率。在 Cost Explorer 的 Savings Plans 覆盖率报告中确认承诺折扣覆盖的使用金额比例。覆盖率低于 60% 时应考虑追加购买。第二,Savings Plans 的利用率。表示购买的承诺实际消费了多少。利用率低于 80% 时承诺金额过大,产生浪费。下次更新时应降低承诺金额。第三,RI 的覆盖缺口。RI 绑定特定实例类型,变更实例类型后 RI 变为未使用。未使用的 RI 可在 RI Marketplace 出售,但出售需要时间且无法回收面值的 100%。考虑这个管理成本,Savings Plans 的运维负担比 RI 低。要系统学习云成本管理,可参考相关专业书籍 (Amazon)