为了更好的帮助用户在使用DevOps缩短开发周期、提升业务效率的同时,也能让业务保持稳定、安全、可靠,且低成本的持续运营,阿里云弹性计算团队独家出品的【弹性计算技术公开课_CloudOps云上运维季】正式启动。阿里云弹性计算内部13位产品&技术专家共同分享云上运维深度实践,详细阐述如何利用CloudOps工具实现运维提效、弹性降本。该系列共10节直播课程,在阿里云官网、阿里云微信视频号、CSDN官网、阿里云钉钉视频号、阿里云开发者微信视频号同步播出,本次课程由战略合作媒体CSDN独家支持。
CloudOps云上运维系列课程,第二节由阿里云弹性计算技术专家蒋超和樊毅伟主讲,课程涵盖:合适的付费方式选择、合适的资源规格选择、如何提升资源利用率、如何高效并弹性创建ECS、如何高确定性创建ECS等相关内容,点击下方链接进入【CloudOps云上运维】课程专题页即可观看课程回放。
【云上运维:https://developer.aliyun.com/topic/ecs-cloudops】
本篇内容根据蒋超和樊毅伟的课程整理而成,主要分为两个篇章供大家阅览:
1. 云上成本优化:ECS付费方式与资源规格选购
云计算诞生至今已经有十余年的时间了,十余年间,企业从上云、用云、到了如今深度用云的新阶段。随着深入用云,企业云上支出总体也在高速增长,根据Flexera发布的2023年云现状调查报告,云成本管理首次取代了安全性话题,成为目前云使用者面临的首要问题。82%的受访者谈及目前最大的挑战是管理云计算支出,其中有71%的重度云用户将优先考虑优化云的现有使用情况,以降低云资源的使用成本。
云的成本管控主要围绕计费、用法、用量三大要素展开,接下来我也将从这三个方面介绍云上成本优化的方法。
在计费层面,我将介绍ECS提供了哪些付费方式和抵扣类产品,怎样根据业务场景选择合理的付费方式和抵扣类产品打造成本最优。
在用法层面,我将介绍阿里云弹性计算当前的资源规格,以及怎样根据业务场景选取合适的资源规格。
在用量层面,我将介绍怎样提升资源利用率的方法。
1) 选取合适的付费方式
谈到付费方式,我们通常关注经济性、灵活性、确定性这三者的平衡。弹性计算的资源交付有三种基本的付费方式,按量付费、包年包月、抢占式实例。
∙ 按量付费,具有最好的灵活性,因为可以随时创建和释放,根据使用时长按秒计费,但它的经济性相对较差,在单位周期内的价格是最高的。
∙ 包年包月,通过预付费用锁定一段时间的资源,它具有很好的确定性。在购买时长内,资源是完全属于用户的。经济性相比按量付费也有较大优势,购买时长越长,获得的折扣越大。但包年包月的灵活性很差,大量包年包月实例生命周期的维护也相对复杂。
∙ 抢占式实例,它拥有最好的经济性和不错的灵活性,但它的确定性较差,可能面临资源被强制释放的风险。但是当适当的业务场景下,使用抢占式实例可以极大的降低成本。
对于按量付费实例,我们可以通过购买预留实例券或者节省计划,来提升按量付费实例的经济性。还可以购买容量预定来提升按量付费实例的确定性,以确保我们在需要的时候可以开出来对应数量的资源。
下面我将分别讲述在付费方式方面进行成本优化常用的三种方法。
成本优化的第一种方式,抢占式实例。
它是一种按需实例,相比于按量付费最高可以节省90%的成本,具有非常大的价格优势。而抢占式实例的局限在于生命周期的不确定性,抢占式实例的生命周期与市场价格、库存资源强相关。抢占式实例创建后默认有一个小时的保护期,超过保护期后每五分钟会检测一次实例规格的实时市场价格和库存。如果某一时刻的市场价格高于出价,或者实例规格库存不足,抢占式实例就会被释放。
因为抢占式实例生命周期的不确定性,所以抢占式实例有着非常明确的应用场景,那就是适用于无状态任务型的业务场景。应用的分布度、可扩展性和容错能力越高,使用抢占式实例就越节省成本和提升吞吐量。典型的场景比如数据分析、科学计算、图像渲染等等。如果是有状态的应用或者是不能接受中断的应用,就不适合使用抢占式实例了。
成本优化的第二种方式,预留实例券。它是一种具有特定属性的抵扣券,可以对满足匹配条件的按量实例账单进行抵扣。相比于按量付费,预留实例券可以大幅降低按量实例的成本。可用区级的预留实例券还可以为按量实例提供资源预留,相比于包年包月,预留实例券+按量付费的组合可以兼顾灵活性和成本。
此外,预留实例券+按量付费的组合还可以简化包年包月的生命周期管理工作。比如我们通常分批采买资源,如果采用包年包月,每一批实例的到期时间都不相同,就需要我们去维护这些实例的生命周期。如果到期忘记续费,就可能造成机器停服。
使用预留实例券+按量付费,我们就不需要维护实例的生命周期,需要的时候就开通,不需要就释放。只需要维护预留实例券的生命周期就可以了,并且即使预留实例券到期没有续费也不会造成实例的停服,只是对应的实例会继续出按量的账单。
预留实例券支持跨UI折扣共享,支持资源在多账号下统一采买管理。我们借助于用户中心的企业财务功能,在建立了财务托管关系后,可以通过主账号来购买预留实例券,各个子账号来去开通付费资源,这些按量付费资源可以共享主账号中的预留实例券用于账单抵扣。
预留实例券支持0预付、部分预付、全预付三种付费选择,降低资金压力。
∙ 全预付,指购买的时候一次性的付清所有的费用,它享有最高的折扣力度。
∙ 部分预付,指购买的时候付50%的总价费用,剩下的费用平摊到每个小时出账。
∙ 零预付,指下单的时候不用支付任何费用,所有的费用全部分摊到每个小时出账。
预留实例券有两种类型,分别是地域级预留实例券和可用区级预留实例券。
地域级预留实例券具有更大的灵活性,它支持同规格下不同大小规格的自动匹配,在指定实例规格中,可以用小规格券匹配大规格实例,也可以用大规格券匹配小规格实例。比如我购买了g7.xlarge的预留实例券来匹配对应规格的按量付费实例。当我的按量实例分配到g7.2xlarge后,地域级的预留实例券无需任何操作,就可以直接抵扣一半的按量付费账单。
此外,地域级的预留实例券还支持跨可用区的抵扣。当我们的按量资源分属不同可用区的情况,也可以使用同一种地域级预留实例券来进行抵扣。
可用区级的预留实例券要求和按量付费实例的可用区实例规格,操纵系统平台完全匹配。灵活性相比地域级预留实例券较差一些,但它支持底层资源预留,可以提升创建后付费资源的确定性。可用区级预留实例券可以通过拆分、合并的方式来支持同规格族内大小规格的匹配。
还是刚才那个例子,我购买了g7.xlarge的预留实例券来匹配对应规格的按量付费实例,当我的机器升配到g7.2xlarge后,我可以合并两张g7.xlarge的预留实例券,得到一张g7.2xlarge的预留实例券,使用这张券来抵扣升配后的按量付费资源。两种预留实例券提供的折扣力度是相同的,支持随时无限次的相互转换。
下面我们来看一下预留实例券的应用场景。
第一个场景,固定规格族的弹性业务。对于业务存在波动的场景,使用固定数量的包年包月实例,在低峰期会存在资源浪费的问题。因为开的机器数量要能支撑高峰期的业务,但到了低峰期,很多机器资源就闲置了。切换为按量实例+预留实例券,到了高峰期进行动态的扩容多开机器,到了低峰期进行缩容释放掉机器。通过对业务的资源预估,购买一定数量的预留实例券,可以降低整体的资源成本。
预留实例券也非常适合多环境部署的场景。比如第二个场景,蓝绿部署。业务在上线的同时部署新老版本进行灰度测试,确认没有问题之后将流量逐步切换到新版本。全部切换完成后,如果测试正常就可以释放掉老版本的机器。如果使用包年包月实例,我们需要不停的新购,释放。
这样会有两个问题,第一是退款会产生隐形的成本,第二是需要去重新走财务流程。使用预留实例券可以同时对新老版本的资源进行抵扣。
第三个场景,DevOps,也是典型的多环境部署的场景。在项目的不同阶段,研发、测试、部署的算力分布不同,三套环境差别较大,使用预留实地券可以同时对三套环境进行抵扣,动态调整三套环境的资源数量。
成本优化的第三种方式,节省计划。它是一种折扣权益计划,类似于会员卡。我们可以通过承诺每小时消费金额换取较低的按量付费折扣。节省计划生效后会抵扣符合条件的按量付费账单,并且在抵扣的时候享受特有的折扣。
和按量实例相比,节省计划同样可以降低按量付费的成本。和包年包月相比,节省计划具有更好的灵活性,同时支持跨UID的折扣共享,支持零预付、部分预付、全预付三种选择。
更多精彩内容,欢迎观看:
带你读《云上自动化运维宝典》——ECS省钱指南来啦!万字长文教你如何选择与业务形态最匹配的付费方式(2):https://developer.aliyun.com/article/1405382