本来计划写一篇专门关于竞价实例的文章,不过我们的合作伙伴更进一步发表了一篇《云资源中的低成本战斗机——竞价实例,AWS、阿里云等六家云厂商完全用户使用指南》对于市场主流玩家的竞价实例价格作了一番对比分析,推荐作为云算力低成本入门阅读,本文从 AWS 官方白皮书(2018年更新)《How AWS Pricing Works》出发,解答大家对于 AWS 的成本模式和云计算算力市场(计算相关服务)常见困惑,作为《你真的了解AWS 实例“经济学”吗?》的续集。


零门槛体验学习:一年免费套餐
好消息是不仅仅是 AWS 海外区域,中国宁夏区域也提供免费套餐了,对于所有新注册的和已经有宁夏账号的客户都会享受该 1年的免费额度;免费套餐覆盖 60+ 种云服务能干啥?比如 EC2 实例,提供每月 750 小时免费时长,相当于一个月送你一台免费的虚机,送一年,足够学习和体验了;另外,同样 RDS 托管数据库也每月送 750小时,Amazon DynamoDB 送25WCU/RCU 的 25GB 存储免费用量,Amazon Lambda 每月100万免费请求数,等等;不信可以查看官方说明:https://www.amazonaws.cn/free/;
没有任何满多少才能用的套路,永久免费(不是每年间歇性促销),新用户提供 12个 月之久的免费用量,我想不到还有谁能比这个更厚道!

AWS不断发展和用户成本不断降低的大趋势
61 次降价:从网上搜索 AWS 的降价相关的新闻非常之多,从 AWS 成立2006 年 统计到 2017年 底,AWS 总共有 61次 降价;当然不同服务的降价消息会更多,大家可以参考(https://aws.amazon.com/cn/blogs/aws/category/price-reduction/),最新的降价消息包括 Cloudfront,GPU P3 实例,数据传输价格等等。
Nitro系统:软硬一体的虚拟化技术进步带来的性价比提升;最新的第五代Amazon EC2 实例架构,经过几年的探索,优化了虚拟化本身对主机的性能损耗(第三方测试在 1% 以下),Nitro 卡加速了磁盘和网络性能,内网单机带宽进入 100Gbps 时代,同时对比同等型号的 4系列机器,单价降低的同时性能也提升,因此客户的同等性能需求的总体成本进一步降低。
多样性选择,不仅仅是 Intel 的 CPU:为了提供客户更多样的选择以及成本优化,对于算力资源,AWS 在最新的 Intel 的 CPU 的基础上,提供了NVIDIA、AMD、FPGA 以及自研的 ARM 架构的 Graviton Processor CPU;今年的 reinvent 大会我们的客户会分享如何利用 AWS Graviton 进一步大幅降低总体成本的分享,敬请期待。
成熟的竞价实例市场:竞价实例市场相对的是 EC2 现货市场,是一种购买方式的创新,2009年 12月 份 AWS 开始推出竞价实例购买方式,初衷是随着AWS规模的不断壮大和硬件更新升级换代,云中很多算力未能充分利用,如何将这部分闲置算力提供给客户,为了区分 EC2 现货市场,推出了竞价市场,客户可以以非常低的价格竞价抢占使用;直到 2017年 底,AWS 宣布推出全新的、更加简化实用的定价模型,并且将竞价实例的启动方式和普通现货的 EC2 实例统一一致,这两项举措大大促进了竞价实例的繁荣和广泛应用。我想不需要任何额外的商务条款即可最低以现货按需实例价格的 10% 的低折扣使用云计算算力资源,任何客户都无法拒绝!

AWS成本优化和资源使用正确打开方式
很多客户反馈为什么上云之后成本不降反升?其中很大的原因来自我们还是用传统数据中心的思路和方法在使用云服务,必然成本无法优化,AWS 更重视帮助客户持续优化架构、技术和思路,合理利用各种公开透明的商务和技术手段优化成本;
云服务的成本的第一个原则:按使用付费,即开即用,用多少付多少;按资源类型来分,大概分为按使用时间计费比如 EC2 实例的按秒计费,按使用量(流量,存储大小等)以及按调用次数比如 Lambda 函数的调用次数;这是云服务最自然的一种用法,用户不需要承诺任何长期的比如包月包年等协议,就可获得各种优质的云服务,那这种方式是不是代表成本最高呢?答案是否定的,比如竞价实例就是优化客户这样的计算需求,业务需求长期来看不明确,无法承诺固定的使用期限,但成本又比较敏感,从我们的客户实践来看,用好竞价实例整体成本降低 70% 以上的案例比比皆是,尤其是容器,数据分析,持续集成和 HPC 等场景;另外,很多客户采用越来越多的无服务器云服务,比如 AWS Lambda,Athena,Fargate 等等,虽然客户自己的服务都已经部署上线,但只要没有用户调用,资源使用可以缩容到零,无服务器架构真正帮到客户节约了大量的资源浪费成本,做到按真实使用付费;
云服务成本的第二个原则:包年价更优;计算相关的服务,相对于按需使用价格,采用包年购买也就是 AWS 预留实例方式,可获得最高 75% 的折扣,这部分特别适合有稳定使用率的工作负载;对于专用主机(云中裸金属机器)包年最高可以节约 70% 成本;这个月 AWS 刚刚推出了预留实例的升级版 SavingsPlans 新定价模型,它允许客户在承诺恒定的计算使用量的前提下,节省最多 72% 的 AmazonEC2 和 AWS Fargate 费用,该新定价模型扩大了“预留”的灵活性,最大的特点是该计划可以覆盖所有类型的计算资源,客户不用分别购买 EC2,EMR,RDS 等预留用量,另外一个亮点是该定价模型,允许客户的预留折扣覆盖 AWS 全球所有区域的计算资源使用量,具体详情请联系你们对应的客户经理。
云服务成本第三个原则:用的越多,价格越优;对于数据传输,CDN 以及对象存储 S3 的成本,有公开的按不同用量的阶梯递减的价格,计算资源的大户可获得额外的最高 10% 的折扣。

竞价实例适不适合所有客户?
AWS 的竞价实例从 2009年发布到现在已经摸索和实践了 10年的时间,也有很多专业的合作伙伴协助客户从技术上无缝采用竞价实例;从我了解到的客户案例和竞价实例的技术发展,我建议客户从第一天就考虑和尝试竞价实例。

第一个原因,当然是竞价实例有着天然的价格优势,最多可以节约90% 的成本。
第二个原因,用 Amazon CTO 沃纳博士的一句非常经典的话来说“故障总是在意料之外,情理之中发生”尤其是对于 EC2 实例,官方的服务水平协议定义的每月保障至少 99.99% 正常运行时间,也就是说一个月还有可能有 4.464分钟不能正常运行,因此基于虚机的应用架构高可用中,至少采用2台分布在不同可用区的 EC2 实例;那回到竞价实例,由于竞价实例是受市场供需影响,通常官方通过竞价顾问页面统计出来,每种机型的市场池子是独立的,而且通常被中断的概率小于 5%,也就是说无论是 EC2 现货市场(按需和预留实例)还是竞价市场,单个 EC2 主机都会有“故障”不可用概率,线上服务一定要考虑这种故障发生的处理,健壮的系统都有足够强的自愈能力;越来越多的客户已经能接受混沌工程哲学和实践方法来测试验证整个系统的健壮性和自愈能力。
第三个原因,竞价实例在很多场景下 AWS 平台技术及合作伙伴能力已经非常成熟;(1)容器和竞价实例的结合已经有大规模客户成功案例,很多客户已经采用了基于竞价实例的容器服务,而 AWS 托管的容器服务 ECS 和EKS 已经无缝集成竞价实例中断信号的自动监听、容器实例节点的自动耗尽处理以及容器编排相关的自动化协作,底层 Spot Fleet 和弹性扩展组可以混合使用按需和竞价实例,并且利用多个竞价市场缓解客户对于目标计算容量的保障;(2)批处理任务及高性能计算场景等通用密集计算场景,竞价实例的应用也非常的广泛;Novartis 一家创新药物研发企业在 2013年跑了 10600个竞价实例集群用于一个针对癌症靶标的 1000万个混合物的筛选项目,仅仅花费了四千多美金;(3)大数据处理,如 AWS EMR 内置支持竞价实例;业界论文《Cost-Effective Cloud Server Provisioning forPredictable Performance of Big Data Analytics》(4)持续集成和持续部署流水线场景,Lyft 技术团队仅仅修改了 4行 Salt 模块代码就用上了竞价实例,并成功把他们跑 Jenkins 的持续集成测试流水线的成本降低了 75%。
第四个原因,利用机器学习预测竞价实例的中断发生,从而提前更换高危实例到更稳定的竞价市场资源池;大家如果好奇的话,可以在线申请试用下我们的合作伙伴 https://spotinst.com/ 的关于 AWS 竞价实例的 ML 增强能力,通过预测和主动更换或预热计算资源,从而保障应用整体的容量波动在一个可接受范围内;那客户自己是否可以做类似这样的预测呢?业界有非常多的论文大家可以借鉴参考《ProbabilisticGuarantees of Execution Duration for Amazon Spot Instances》,Southern Methodist University的《AWSEC2 Instance Spot Price Forecasting Using LSTM Networks》;很多客户可能问,AWS 原厂就没有支持类似的预测机制吗?当然不会缺席,AWS 最新推出的一个“容量优化”的分配策略,支持根据可用的竞价容量选择最佳的竞价实例资源池来满足客户的竞价实例请求,也就是中断概率低的资源池优先使用的策略从而降低 EC2 实例被中断的概率。

竞价实例动手训练营预告
一直以来,竞价实例的使用被当成一个非常高阶的云服务使用技能,但AWS 在竞价实例的技术发展进步,我相信该技能目前是一个亲民的人人都可以掌握的通用能力,从基础的 Web 站点,持续集成流水线,数据分析和机器学习,甚至 HPC 和有状态的应用,第一时间都可以尝试竞价实例来优化成本结构。
近期我们将围绕基础的竞价实例原理,混沌工程在竞价场景的应用,和我们的客户一起探讨和动手实践:
竞价实例在容器平台的应用实践
o 应用无感的带竞价实例容器平台的最佳实践
o 中断信号的自动化监听
o 2分钟中断时间窗口,容器编排相关的自动化处理
o 竞价实例和按需实例在服务编排方面的考量
o 竞价中断的模拟测试
o 容器和竞价融合的成功案例分享
竞价实例在Amazon EMR & SageMaker 机器学习平台上的应用
o 竞价实例在Spark & Hive 等大数据处理应用的最佳实践
o 如何在机器学习任务中使用竞价实例
o 客户案例分享
o 动手实践
竞价实例在游戏行业的运用实践
竞价实例在其他通用场景的应用实践(Web应用,持续集成等)
参考资料:
How AWS Price Works:
https://d0.awsstatic.com/whitepapers/aws_pricing_overview.pdf




