摘要

  • AWS Savings Plans以一年或三年的每小时货币承诺,换取适用计算用量的较低价格。AWS明确说明,它不提供容量预留,并且在期限内不能取消。
  • EC2 On-Demand Capacity Reservation是在指定可用区内保留属性匹配的容量。无论有实例占用还是空置,都按等同On-Demand的价格计费。
  • 两层可以叠加:Savings Plans或区域级Reserved Instance折扣可用于Capacity Reservation。由此分别锁定价格和位置,但仍没有购买应用健康、数据恢复或跨可用区接管。
  • 承诺利用率、折扣覆盖率、容量占用率、启动成功率和服务可用性是五张不同的收据。

先从每小时十美元说起

Savings Plans的定义不是某一种服务器,而是一项每小时用量承诺。客户选择一笔以货币计量的稳定计算支出,期限为一年或三年,再选择全额预付、部分预付或不预付。AWS在相应期限内,把较低费率应用到符合条件的用量。

Compute Savings Plans之所以灵活,正因为它没有绑定一台机器。折扣可以跨EC2实例家族、规格、操作系统、tenancy和区域流动,也可用于符合条件的Fargate与Lambda用量。EC2 Instance Savings Plans把范围收窄到一个区域内的某个实例家族,换取更深的最高折扣。AWS给出的上限分别为相对On-Demand最高66%和72%;“最高”不是每个客户都会实现的固定收益。

不预付也不意味着随时退出。AWS明确写明,Savings Plans在期限内不可取消。不预付只是改变现金支付节奏,并没有把一年或三年的小时承诺改成月度可退订服务。

如果每小时承诺是10美元,当小时只有9.80美元按Savings Plans费率计算的适用用量,AWS的利用率示例给出98%。这项指标回答的是“承诺价格是否被用掉”。它没有回答指定可用区里是否还有某个实例规格,也没有回答应用能否恢复。

空位置也有价格

On-Demand Capacity Reservation购买的是另一种权利。它在一个指定可用区内,为特定实例类型、平台和tenancy保留EC2容量。处于活动状态但未使用的预留,也会计入账户的On-Demand实例限额。

这份合同的经济成本在空置时最清楚。AWS按等同On-Demand的费率收费,无论容量是否被使用。若预留20个匹配位置、实际运行15个实例,客户为15个运行实例和5个空位置付费。已占用位置不会再额外收取一层预留费,但未占用位置并不免费。

空置不必然等于浪费。一次大型活动、监管要求或灾备切换,可能值得为极少使用的位置持续付费。正确问题不是“为什么没跑满”,而是“这个位置保护了什么失败场景、是否定期验证、替代路径成本是多少”。同样,不能因为名称里有Capacity Reservation,就自动认定它永远值得保留。

AWS允许把价格权叠加在容量权之上。适用的Savings Plans和区域级Reserved Instance折扣可以覆盖Capacity Reservation产生的账单。这一安排反而证明两者不是同一件事:一个决定费率,另一个决定是否为匹配的启动留下位置。

容量必须由正确配置领取

买到容量权并不等于实例已经领取。AWS的启动条件要求实例类型、平台、可用区和tenancy全部匹配,预留处于active状态,而且仍有可用数量。

开放式预留可以自动接收匹配的实例。没有匹配时,部分启动偏好会回到普通On-Demand容量。定向预留则更严格:如果指定的预留没有合适空位,启动可能直接失败。启动模板只要写错可用区、平台或目标ID,账上就可能同时出现一个空置预留和一项在别处寻找容量的请求。

没有容量预留时,Savings Plans也不会提高启动优先级。AWS将InsufficientInstanceCapacity解释为当前没有足够的On-Demand容量满足请求。此前每一小时的折扣都可能正确生效;它从来没有承诺后来这次启动。

即使实例占用了预留,服务也未必完成。实例可以已启动但健康检查失败,依赖不可达,数据副本过旧,或者跨区恢复从未演练。Capacity Reservation证明的是基础设施位置被领取,不是用户可见服务已经恢复。

Reserved Instance的名称也不能替代范围

区域级和可用区级Reserved Instances把命名问题进一步暴露出来。区域级RI不预留容量,折扣可在该区域内跨可用区适用,并可能提供规格灵活性。可用区级RI会在指定可用区预留容量,却失去跨区和相应规格的灵活性。

AWS还说明,两种范围不会改变RI价格。也就是说,同一个Reserved Instance名称、相同价格,可以交付不同的容量权。采购记录如果只写折扣比例,不写region或zone范围,就省略了最重要的运营条款。

因此,云成本比较至少要有三列:货币承诺持续多久、折扣可以跨多少用量移动、容量权精确到什么位置和属性。移动性强的业务可能更需要广泛折扣;必须在固定位置恢复的业务可能更需要容量。最低费率与最强连续性并不天然属于同一产品。

折扣不一定留在最初的项目

AWS按规则自动分配Savings Plans优惠。Reserved Instances先应用,之后是EC2 Instance Savings Plans,再到范围更广的Compute Savings Plans。在适用用量中,AWS先覆盖节省比例最高的项目,直到每小时承诺耗尽;剩余用量按On-Demand计费。

在合并账单体系中,拥有计划的账户先使用,启用共享后,其他账户也可能吸收优惠。于是,一个团队可以因为A应用稳定而购买计划,后来A缩减,B与C仍把利用率维持在高位。组合层面没有浪费,但原始投资理由已经变化。

覆盖率从另一侧观察:适用用量成本中,有多少得到了Savings Plans覆盖。利用率看承诺有没有被消费,覆盖率看用量有没有得到折扣。两者分母不同,也都不统计可用容量。

来源