AWS预留实例理解与使用

AWS预留实例(RI)是节省云费用的利器,但完全掌控它并不容易,甚至适得其反;本文从基本概念、购买、优化等方面,全方位的介绍RI特性,力图让您完整的理解RI,为云费用优化提供参考。

预留实例不仅仅适用于EC2实例,还包括了RDS、DynamoDB、RedShift等实例。

1. 什么是预留实例

预留实例(Reserved Instances)是在某区域(Region)内购买的特定可用区(或可用区灵活)内预留的资源和容量,预留期限为一年或三年。简单来说购买预留实例就相当于和AWS签了一个协议:我承诺为未来一年或三年的费用买单;AWS则保证我在协议期限内任何时间都能使用到足量的资源,并且为这份承诺给予一定的费用折扣。

2. 为什么要购买预留实例

节省费用

与按需计费(On-Demand,用多长时间付多少钱)不同,购买了预留实例,即便实际使用量未达到预留约定的时长,也要为预留实例足额付费;但是只要使用量足够多(超过收支平衡点),购买预留实例就可以明显的节省费用,最高可以得到高达75%的费用节省!

能力预留

上面提到了AWS会为预留实例在特定可用区(Availability Zone)内保留足够的资源能力(计算、存储等),这就很适合具有突发用量的应用,比如遇到电商大促等事件,希望服务器能够在特定可用区内扩容以满足突增的流量需求,在购买了预留实例的情况下,能够保证资源能力如期运行;虽然也可以按需去购买,但如果可用区内某一时段的负荷已满,临时需求很可能无法满足。

容灾冗余

这一点也是利用能力预留的特性,在对服务质量要求比较高的场景下,选择不同AWS服务区域(Region)进行资源预留,是一种可行的容灾方案。比如某公司业务主要部署在美国西海岸的某区域,受飓风影响该区域整体无法提供服务,这就导致有大量的服务同时往其他区域迁移,如果在其他区域提前购买了预留实例,在迁移过程中就可以做到及时响应;虽然可能平时很少使用这些预留,但这也不失为一种廉价的保险策略。

3. 如何合理购买预留实例

小步快走”式购买

对于基础设施这类“重型”云资源的购买,往往会根据具体业务场景进行选择:多数情况下人们会谨慎的计算购买什么类型的资源、购买多少、如何选择区域等等,但对于预留实例的购买却没有特别深入的考虑,或者使用简单粗暴的方式:一次性将现有资源都按照预留的方式购买。对于一般互联网公司,业务场景变化飞快,且无法准确预估,三个月前购买的资源可能无法满足当前的需求。所以,无论是具体资源还是预留实例,小规模、频繁的购买是比较合理的方式。在做好资源规划的前提下,视资源的实际使用情况分批购买预留;当业务发需求生变化,迅速调整购买方式从而减少损失。

关注收支平衡点

与按需付费不同,预留实例需要预付一定费用(除无预付方式之外),在最开始的时候往往要比按需支付更多费用;预留实例每小时的费用远低于按需付费,但是只有保证实例运行足够长的时间才能够最终体现出价格优势。购买预留实例前,不妨根据自身情况,计算出收支平衡点,来协助判断是否能够从预留实例中获取实惠。

如下表中,我们列出某型号预留实例按一年和三年购买的费用情况,如果主机能足够运行收支平衡所需的天数(虚拟机每天运行24小时),那么购买预留实例肯定是划算的。

理解实例大小灵活性
AWS中实例大小灵活性是个比较复杂的概念,这里我们可以简单理解为:在购买预留实例时,选择类型大小并不需要完全匹配正在运行的虚拟机实例。例如我们有一台正在运行的、类型为t2.medium的虚拟机实例,那么我们可以购买两个类型为t2.small的预留实例,AWS会自动将两个“小”的预留实例叠加起来去匹配“大”的虚拟机实例,同样能够享受预留折扣;反之“大”的预留也会拆分匹配“小”的虚拟机实例。所以大小灵活的特性,为资源调整提供了便利,在购买预留实例时也要充分考虑该特性。

5. 如何优化预留实例

  1. 购买更多预留实例:当RI覆盖率比较低,则可以购买更多预留实例以提高覆盖率;
  2. 修改预留实例:预留实例的许多属性都可以修改,包括:区域、可用区、实例大小等;
  3. 转换预留实例:对于可转换(Convertible)的预留实例可以对其进行转换,例如一个RI拆分为多个、将多个合并为一个、转换RI的实例类型等;
  4. 出售预留实例:对于使用率不足的预留实例,可以选择将其在市场中出售;
扫一扫,关注我们轻松上云

————文章部分内容转自  : 郑岳 espin Global