对云计算的价格进行比较是非常复杂的,不同的云提供商有不同的价格模型和折扣选项,同时他们还会经常降价,因此很难进行对等比较。Kim Weins 最近在 rightscale 上发表了一篇文章,介绍了不同云提供商在不同环境下的价格。
不同云提供商的价格策略
云计算费用平均占整个云费用的75% 到80%。在对云计算的价格进行精确比较之前,理解各个云提供商的折扣策略是非常重要的,因为这是决定支付费用的一个重要因素。
AWS 的价格策略
AWS 云计算资源的主要折扣策略是预留实例(RI)。预留实例并不是真正的实例,而是可以应用到满足某些标准的实例上的优惠券。为了获得折扣,用户需要做出一年或者三年的承诺,承诺期越长,折扣越高。如果用户提前支付部分或者全部款项,那么折扣更大。可转换预留实例是一种新型 3 年期预留实例,它的折扣较小,但是在使用期间可以灵活地在不同的实例家族之间移动折扣。
预留实例的折扣范围在 24% 到 75% 之间,具体取决于期限、实例类型和区域。通常情况下,1 年期无预付款的预留实例就非常合适,如果要购买 3 年期的预留实例,一定要经过慎重的考虑,因为使用情况在三年中可能发生重大变化。尽管可转换预留实例允许用户采用新的实例类型,但是通过下面的图表可以看出,可转换预留实例与 1 年期标准预留实例相比只有 5 到 6 个百分点的额外折扣,但期限却是 3 年而不是 1 年。
Azure 的价格策略
在 Azure 上用户的折扣主要取决于微软企业协议(EA)。该企业协议会根据用户的使用水平提供 15% 到 45% 的折扣。
谷歌云的价格策略
谷歌云通过持续使用折扣(SUD)提供了最简单的缩减计算资源费用的方法。SUD 是自动化的,不需要提前做出承诺,谷歌会根据某个家族中实例的月度运行时间对月账单给出折扣。一旦实例的运行时间达到每个月的 25%,就会有 20% 的折扣;当运行时间达到 50% 和 75% 时,就会有另外 20% 的折扣;如果达到 100%,月度花费就会有最高 30% 的折扣。
此外,谷歌云会在条件允许时将相同类型的不同实例结合到一起以最大限度地降低用户费用。
不同方式下的云计算价格
在比较云计算价格的时候,知道要比较的实例在哪些方面相同,哪些方面不同是非常重要的。为了比较,本文选定了 6 个场景,如下表第一列所示。所有场景使用的都是美国东部区域最低价格的实例,操作系统是标准免费、没有额外收费的 Linux 发行版(不是 RHEL)。
虽然每一个场景都会映射到云提供商所提供的合适的实例类型,但是很难进行条件对等的比较:
- 不同云提供商为相似实例提供的内存并不一样。大部分情况下,内存的差异较小(低于 10%),但是 highcpu 场景,AWS 和 Azure 提供的内存是 Google 的两倍还多。
- AWS 为标准场景(m3 和 m4)、highcpu 场景(c3 和 c4)以及 highmem 场景(r3 和最近引入的 r4)都提供了包含和不包含本地 SSD 的实例家族。
- Azure 所有的实例类型始终都包含本地 SSD,因此无论用户是否需要都必须对此付费。
- 谷歌云所有的实例类型都不包含本地 SSD,如果用户要使用 SSD 则需要额外附加 SSD 并付费。附加本地 SSD 最小为 375GB,但这依然非常大;用户可以使用谷歌持久化磁盘替代 SSD,但性能要差一些。
按需计费的云计算价格
下图展示了各个云提供商按小时计费的价格,以及每 GB RAM 每小时的价格。
结果显示:
- 在不使用 SSD 的情况下,谷歌云的价格基本是最低的;在使用 SSD 的情况下,因为增加了 375GB 的本地 SSD,谷歌云的价格基本是最高的。
- highcpu 场景下,谷歌云对每 GB RAM 的收费是最高的,这是因为其内存大小不足 AWS 以及 Azure 的一半。
- 在 2016 年 12 月 1 日 AWS 对价格做出调整之后,Azure 在所有 12 个场景中有 7 个场景的价格与 AWS 相当或者更低。
- 大部分情况下 AWS 的价格介于 Azure 和谷歌云之间,只有在 highcpu 无 SSD 的场景下其按时付费的价格最高。
- 对 Azure 而言,所有的结果都取决于微软企业协议特定的折扣;对 AWS 则取决于用户购买的预留实例类型。
折扣后的云计算价格
折扣后云计算价格的比较使用的是年度费用。这是因为 AWS 预留实例的期限最少为一年,而微软企业协议则是三年的合同。谷歌云比较灵活,SUD 只需要用户使用一个月即可。
下图展示了不同云提供商的年度折扣价格,以及折扣后每 GB RAM 的年度价格。
结果显示:
- 折扣后的价格与上面按需计费的价格非常相近。
- 按需计费时 AWS 和 Azure 费用相同的两个场景在比较折扣价格时,AWS 的价格更低。
- 同样的,对 Azure 而言,所有的结果都取决于微软企业协议特定的折扣;而 AWS 则取决于用户购买的预留实例类型。
按分钟收费对云计算价格的影响
对 AWS 而言,哪怕只用了一分钟,也会按小时收费;Azure 是按分钟计费;谷歌云是每 10 分钟收费一次,每次收取 1/6 小时的费用。如果大部分工作的运行时间都小于 1 小时,那么按分钟计费更省钱,如下图所示:
但是,如果大部分工作的运行时间大于一小时,那么按分钟计费的影响就比较小了,此时决定性的因素在于实例每小时的价格。
区域对云计算价格的影响
不同云提供商对不同区域的定价不同。AWS 和 Azure 在不同的地区有不同的价格。其中亚太区的最高价格比美国的最低价格可能高出 50% 以上。谷歌云在美国所有的地区价格都是一样的,而欧洲和亚洲的价格比美国地区高 10%。
Windows 对云计算价格的影响
为了覆盖 Windows 许可费,每一个云提供商都会对运行 Windows 的实例收取费用。
按需计费时,Azure 的收费比 AWS 高;按折扣计费时,Azure 的收费则比 AWS 低。但无论是哪种方式,谷歌云的收费都是最低的。
总之,云计算的价格取决于特定的用例和折扣方式。如果你现在并没有在使用 AWS 预留实例,同时在 Azure 上也没有微软企业协议折扣,那么大部分场景下谷歌云可能更便宜,因为无论在什么情况下谷歌都会使用 SUD 收费策略。要注意的是,如果需要通过本地 SSD 满足性能要求,那么谷歌云需要额外付费。同时,在 2016 年 12 月 1 日 AWS 对价格作出调整之后,按需计费时 Azure 比 AWS 价格全面占优的局面已不复存在。总体来看,在大部分情况下 AWS 并不是最便宜的,其价格通常介于 Azure 和谷歌云之间。
感谢陈兴璐对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论