竞价实例一小时亏损 21 万
背景:
随着公司国际化战略的开展,为了让海外与国内用户提供更好的广告推送服务,因此在美国,德国,新加坡等全球众多的海外站点部署业务服务,为了节约购买设备和组建运维团队,公有云是公司出海的一个更好选择。
而我们公司使用多个云供应商,比如 AWS,ALIYUN,华为云,腾讯云等等,而且每个云的价格不一,那如何有效节约公司的成本呢?为此我们使用 spot 实例,来为公司节约成本
2009 年年底,AWS 发布了 spot 实例,它是原价 On-demand 的一折,相当于白菜价了,目前公司使用相当的广泛
2016 年阿里云推出了抢占式实例,相当于 AWS 的 spot 实例,价格也是原价的一折,但如果使用不当,成本也随之上涨,因此在这分享一下阿里云如何正确使用 spot 实例
成本上涨原因
目前公司内部大部分业务已经使用 AWS/AliYun 的 spot 实例,节约成本达到 65%以上,而在 2021 年 3 月阿里云的机器成本逐渐的攀升,惊动了老大们,作为员工的我,只能去查账单找原因了,一查还发现不少问题。
首先我们来看看 AWS 与 AliYun Spot 的定价历史记录:
一、以下是 AWS 的 spot 定价历史记录,以 m5.4xlange 16vCPU/64GB RAM 为例,各区的价格相当的平稳,都在 $0.2545/h~$0.2575/h 区间
二、以下是 AliYun 的 spot 历史价格,以 ecs.sn2.3xlarge 16vCPU/64GB RAM 为例,各区域的价格抖动相当大,¥0.579/h~¥9.64/h 区间
从上表分析得出:
1、 cn-hangzhou-g 区域的实例价格已经是实例按量原价的价格,一折的白菜价还得看区域,阿里云没有忽悠我们
2、 哪个区域机器库存数量越少,价格上升的越快
我们再看看阿里云伸缩组里的扩容策略:
这里简化一下我的理解:
1、 优先策略:就是在伸缩组配置中,按照实例规格组从头到尾的开出实例
2、 均衡分布策略:伸缩组中,机器均等开出实例,前提是库存有剩余实例
3、 成本优化略:以价格最底的实例首要开出
我们再次分析上面的策略:
1、 选择优先策略:开出的机型的价格就是由我们来排序,但最终的问题是开出的机型越多,某个区域的价格越贵
2、 均衡策略:那就是有部分机型肯定是较贵的机型
3、 成本优化策略:刚开始都是开最低成本的实例,但随着时间的迁移,区域实例库存越来越少,实例成本也会逐渐的攀升,最终达到实例的原价
而我分析一下公司使用的实例:
我们采用 spot 机型有 ecs.sn1.3xlarge 16vCPU/32GB RAM 为例,一天成本 20427 元,一般企业用阿里云原价的实例都有折扣,比如折扣为 0.75,原价格: 20444 * 0.75 = 15333 元,而且 spot 的价格是不能享受原价的折扣,所以多出费用 20427 – 15333 = 5094 元,相当于一台实例,一小时多给: 5094 / 24 = 212.25 元,假设公司规模是 1000 台实例,亏损 21.23W,怪不得老大们都跳出来了
所以阿里云的抢占式实例就是一个套路,天下没有免费的午餐,得想个解决办法
成本优化
针对上述的分析原因,我们迅速的找到解决办法:
优化超过阀值的机型实例
通过设定一个价格比率阀值,比如 0.75,来替换价格超过原价 75%的机型,如果没有库存立刻开出原价实例,享受价格折扣,流程图如下
优点:
保证实例机型不超过原价折扣价格,替换机型频率也不高,对业务相对比较稳定
缺点:
实例价格可能没有达到三折以下,但可以选择多个规格机型,提高库存量,把阀值设置更底,比如 0.3,替换超过高于三折的机型
总结
本文通过对公司公有云的竞价实例实践,因为这些工作复杂,而且需要大量的数据和实践积累,为了降低企业成本,提升企业竞争力,你可以通过相关产品(例如:SpotMax)来实现自动化,实现快速交付,智能弹性。
整体而言,上云涉及的成本方面的优化实在太多了,限于篇幅很难全部讲清,希望本文的一些小分享能帮助到更多上云的团队,少走弯路,为企业节约更多的成本。
评论