本教程介绍了如何利用弹性伸缩组合购买按量付费ECS实例和抢占式实例,应对周期性业务波动的同时降低使用成本。
业务场景
某在线教育平台的上课高峰为每天下午5点至晚上10点,其他时间段业务流量较低。为保证顺利承载上课高峰带来的流量,运维人员需要长期保有上课高峰期的计算资源,但计算资源在其余时间段处于闲置状态,导致资源成本浪费。如果上课高峰时间段流量超出预估,仍需要临时手动创建ECS实例。
假设您的应用具有以下特征,也可以采用类似解决方案:
采用集群方式部署,并且集群拥有1台以上的服务器。
业务具有高容错性,可以接受随时被打断的风险。例如,采用抢占式实例的测试业务。
业务具有明显的周期性波峰波谷变化,例如,每天下午5点至晚上10点是业务高峰(波峰)时间段,其他时间段资源闲置。
解决方案
弹性伸缩支持组合使用按量实例和抢占式实例,以更低成本来满足业务周期性波动时间段流量的要求。
您可以采用以下方案:
对于非波峰波谷时间段的业务,建议您购买包年包月ECS实例。
对于波峰波谷时间段的业务,您可以采用定时任务功能添加和释放对应的ECS实例。具体说明如下:
业务高峰(波峰)期间,伸缩组采用定时任务方式,将临时自动添加需要的ECS实例,该实例可以指定多种实例规格,即组合使用按量实例和抢占式实例,进一步降低成本。伸缩组会按照vCPU的单位价格从低到高进行排序,优先选择vCPU单位价格更低的实例规格。
业务低谷(波谷)期间,伸缩组采用定时任务方式,将自动释放不需要的ECS实例。
业务收益
利用弹性伸缩降低成本,您可以获得以下收益:
零备机成本
弹性伸缩可自动创建和释放ECS实例,实现按需取用,无需备机。您只需针对非波峰波谷时间段的流量保有计算资源。
零运维成本
您只需提前配置扩容策略。负载增加时,弹性伸缩自动创建ECS实例,并将ECS实例添加到RDS实例的白名单和SLB实例的后端服务器组。整个过程自动触发和完成,无需人工干预。
超高性价比
弹性伸缩支持组合使用按量实例和抢占式实例,抢占式实例最低能以一折的价格购得ECS实例。如果抢占式实例库存不足,也会以按量实例的方式交付,保证交付结果。成本优化策略还支持抢占式实例补偿,在已有抢占式实例被释放前5分钟,会自动尝试创建当前较低价格的新抢占式实例,性价比超高。
以使用ecs.g5.xlarge实例规格为例计算三种方案的成本差距。
表中价格仅为示例,实际计算时请以售卖页中的价格为准。另外,抢占式实例的价格随库存、时间等因素波动,更多说明请参见什么是抢占式实例。
对比项目 | 传统方案 | 成本优化方案(按量实例) | 成本优化方案(抢占式实例) |
实例数量 | 包年包月ECS实例:10台 |
|
|
使用时间 | 包年包月ECS实例:1个月 |
|
|
成本计算 | 510元/月*10台 |
|
|
每月总成本 | 5100元 | 3388.5元 | 1579.99元 |
节省成本 | 0% | 33.6% | 69% |
操作步骤
请根据您的业务架构评估业务模块,并执行以下操作为有需要的业务模块降低成本:
本操作前,请您提前为应用的ECS实例创建自定义镜像,具体操作,请参见使用实例创建自定义镜像。
步骤一:使用自定义镜像创建包年包月ECS实例
创建指定数量的包年包月ECS实例,用于添加到伸缩组,满足业务模块的非波峰波谷时间段要求。
步骤二:创建并启用伸缩组
为需要降低成本的业务模块创建伸缩组,并为伸缩配置选择应用实例的自定义镜像,确保自动创建出的ECS实例符合应用的要求。
- 登录弹性伸缩控制台。
- 在左侧导航栏中,单击伸缩组管理。
- 在顶部菜单栏处,选择地域。
单击创建伸缩组,完成配置项参数并创建一个伸缩组。
伸缩组名称设置为您的自定义名称(例如testname)。
组内实例配置信息来源选择为从零开始创建。
组内最小实例数设置为0。
组内最大实例数设置为10。
默认冷却时间(秒)默认为300。
网络类型选择为专有网络。
扩缩容策略选择为成本优化策略。
组内最小按量实例数(台)设置为0。
按量实例所占比例(%)设置为30。
最低价的多个实例规格(个)设置为3。
开启抢占式实例补偿设置为开启状态。
使用按量实例补充抢占式容量默认为开启状态。
实例回收模式选择为释放模式。
选择已创建的专有网络和相应的交换机。
关联当前业务模块所使用的传统型负载均衡CLB(原SLB)、负载均衡ALB、NLB服务器组以及RDS实例。
请根据需要配置其他信息,具体操作,请参见配置伸缩组。
找到已创建好的伸缩组,在对应操作列下,单击查看详情。
- 在页面上方,单击实例配置来源页签。
单击创建伸缩配置,完成配置项参数并创建一个伸缩配置。
付费模式设置为抢占式实例。
实例配置选择3个或以上的实例规格。
选择镜像设置为您的自定义镜像。
请根据需要配置其他信息,具体操作,请参见创建伸缩配置(ECS实例)。
启用伸缩配置和伸缩组。
步骤三:添加包年包月ECS实例并设置自动伸缩策略
将包年包月ECS实例添加至伸缩组,并创建定时任务,实现根据业务峰谷自动平滑伸缩,结合抢占式实例最大程度地降低成本。
前往实例列表页签,将创建好的包年包月ECS实例添加至伸缩组。
将包年包月ECS实例转为保护状态,保证业务在非波峰波谷时间段正常运行。
前往伸缩组管理界面,根据业务需求,修改伸缩组的最小实例数和最大实例数。
关于如何修改伸缩组内最大最小实例数的具体操作,请参见修改伸缩组。
在伸缩组详情页,选择 ,创建2条简单规则。
需要配置的主要参数项如下所示:
伸缩规则类型选择为简单规则。
执行的操作设置的规则如下:
简单规则1:当伸缩组需要弹性扩容时,增加5台。
简单规则2:当伸缩组需要弹性缩容时,减少5台。
请根据需要配置其他信息,具体操作,请参见配置伸缩规则。
在伸缩组详情页,选择,创建2条定时任务。
执行时间设置的规则如下:
定时任务1:当业务高峰期(例如下午5点)即将到来时需要进行扩容时,设置为2021年11月20日16:59。
定时任务2:当业务低谷期(例如晚上10点)即将到来时需要进行缩容时,设置为2021年11月20日21:59。
伸缩组设置为已添加包年包月ECS实例的伸缩组。
伸缩方式设置为选择已有伸缩规则。
伸缩规则(简单规则)设置的规则如下所示:
定时任务1:当业务高峰期(例如下午5点)即将到来时需要进行弹性扩容时,选择简单规则1。
定时任务2:当业务低谷期(例如晚上10点)即将到来时需要进行弹性缩容时,选择简单规则2。
请根据需要配置其他信息,具体操作,请参见配置定时任务。
执行结果
您可以在伸缩活动页面,查看伸缩活动详情,看伸缩组内的实例是否正常扩容和缩容,具体操作,请参见查看伸缩活动详情。
如果伸缩活动存在异常,您可以根据提示进行排查,更多信息,请参见排查伸缩活动异常。
包年包月ECS实例已被转为保护状态,用于在非波峰波谷时间段承载业务。处于保护中状态的ECS实例不会被移除伸缩组,而且负载均衡权重不受影响。
在业务高峰(波峰)时间段,伸缩组采用定时任务方式,将自动创建相应数量的ECS实例,过程更加平滑。由于采用了成本优化策略且开启了抢占式实例补偿,购买ECS实例时的价格更低,性价比较高。
在业务低谷(波谷)时间段,伸缩组采用定时任务方式,将自动释放不需要的ECS实例。