有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
文档中心 > 弹性伸缩 > 最佳实践 > 五分钟节省30%成本(集群版)

操作场景

说明
本文中提供的方案适用于集群式部署的网站或 App。
如果您的业务满足以下条件,可花5分钟配置这个方案,节省30%成本:
网站使用集群的方式,且集群拥有超过1台以上的云服务器(CVM)。
网站有较长时间的空闲。根据腾讯云的统计,90%的集群在凌晨00:00 - 早上09:00这9个小时的负载低于30%。
可以看出,大部分网站的高峰时间不超过8个小时,剩下的16个小时的时间,完全可以把闲置的服务器作缩容处理,这种方式能帮助您节约大量成本。
本文以某休闲类网站为例,假设该网站20:00 - 24:00是访问高峰时段。

方案简述

按非高峰时段的负载部署固定资源,可采用包年包月 CVM。
高峰时段的不足部分采用按量计费的 CVM,并通过定时任务在20:00扩容1台,24:00缩容回去。
新旧方案的对比:



收益

假设原方案需要两台4核4GB的 CVM,改成一台4核4GB的 CVM + 每天4个小时临时 CVM,能节省30%左右开支。 示例中的小网站每年可以节省1500元:



具体操作

示例网站的结构比较简单,只有应用服务器一个集群。如果复杂的网站,会有应用服务器集群、前端服务器集群、缓存服务器集群等,每个集群都可进行类似操作,每个集群对应一个伸缩组。如下图所示:



步骤1:创建集群机器的自定义镜像

请参考 创建自定义镜像,并基于一台现有的集群机器进行制作。
说明
您需要提前部署好镜像中的环境,确保镜像里的应用能随操作系统启动,这样扩容出来的机器就能直接工作,无需人工介入。

步骤2:创建启动配置

扩容时 AS 以启动配置为模板创建机器,因此我们需先通过创建启动配置时指定地域、机型、镜像。
1. 登录弹性伸缩控制台,选择左侧导航栏中的 启动配置
2. 启动配置列表页面上方,选择 Web 应用所在的项目和地域。
3. 单击新建进入“创建启动配置”页面,根据指引完成启动配置的创建。 请注意在镜像中,需指定您刚创建的自定义镜像。

步骤3:为机器创建伸缩组

1. 登录弹性伸缩控制台,选择左侧导航栏中的 伸缩组
2. 单击新建,根据以下信息创建伸缩组,并单击下一步。如下图所示:


名称:按需起一个名字,本文以应用服务器集群为例。
最小伸缩数:集群服务器数量的下限,示例网站填0即可。
起始实例数:伸缩组刚创建时,自动创建的机器数量。一般不会刚创建伸缩组就自动创建机器,建议填0。
最大伸缩数:集群服务器数量的上限,请按需填写。本文最大伸缩数以5为例,即伸缩组最多有5台机器。
启动配置:选择刚才您创建的启动配置。
支持网络:会话服务器的网络环境,一般选基础网络即可。
支持子网:会话服务器所在子网,您可选择多个子网,自动扩容的机器随机地从您勾选的子网创建,达到跨子网容灾的效果。
3. (可选)在“负载均衡配置”中,选择集群所使用的负载均衡,并单击下一步:竞价实例分配


4. (可选)在“竞价实例分配”中,配置竞价实例分配策略,并单击下一步:其他配置。 如需使用竞价实例,则请开启“使用竞价实例”开关。相关参数说明如下:
按量基础实例数:伸缩组内按量计费实例必须满足的最小数量。当伸缩组扩容时,首先扩容此部分的实例。
按量实例百分比:除按量计费基础实例数外,按量实例所占的比例。可以指定0到100间的任意比例。
竞价实例创建策略:启动配置配置多机型时,竞价实例创建的策略。
容量优化策略:优先选择最可用的竞价实例机型,以这种方式扩容可帮助您最好的利用竞价实例资源。
成本优化策略:优先选择单核价格最低的竞价实例机型,将从您指定的可用区中分配您的实例,以这种方式扩容可帮助您最大限度节约成本。
竞价实例回收监测:开启后,弹性伸缩会尝试使用新的实例主动替换伸缩组中即将被回收的竞价实例,从而帮助您保持伸缩组内的实例数量及按量实例的比例。
按量实例补充竞价容量:开启后,当您配置的机型竞价实例库存不足时为您尝试创建按量计费实例。
5. (可选)在“其他步骤”中,进行伸缩组其他相关配置,您也可单击完成跳过此步骤。
移出策略:当伸缩组要减少实例且有多个选择时,将根据移出策略来选择移出哪个实例。可选择:
移出最旧的实例:删除最旧自动增加的机器。自动增加的机器删除完后,删除最早手动增加的机器。通常选择该项。
移出最新的实例:删除最新自动增加的机器。自动增加的机器删除完后,删除最新手动增加的机器。
实例创建策略:当伸缩组需增加实例且指定多个子网所在不同可用区时,将根据该策略增加实例。可选择:
首选可用区(子网)优先:根据您配置的可用区(子网)顺序,优先选择靠前的配置项,失败后自动按顺序重试(适合以某个可用区为主,其他可用区为辅的架构)。
多可用区(子网)打散:系统将根据扩容时伸缩组内实例在不同可用区(子网)的分布情况,选择相对较少的可用区(子网)创建新的实例(适合需要均匀分布实例的架构)。
标签配置:可通过标签来进行资源的分类管理,详情请参见 标签
6. 单击完成,即可创建伸缩组。

步骤4:添加现有机器进伸缩组

1. 伸缩组列表页面中,选择伸缩组 ID,进入伸缩组管理页。
2. 选择关联实例页签,并单击添加实例。如下图所示:


3. 在弹出的添加实例窗口中,选择集群已有的云服务器加入伸缩组。如下图所示: 如果现在是非高峰时期,集群中未充分利用的云服务器可以退还,节约成本。本文中两台名为 use 的云服务器,一台加入伸缩组,另一台可退还。


4. 成功添加后,对该云服务器设置免于缩容。 选择云服务器所在行右侧的设置移出保护,并在弹出框中单击确定。如下图所示:

已设置移出保护的云服务器在缩容活动中,伸缩组不会选择该云服务器缩容。此机器将永久保留在集群中进行服务,AS 不会更改它。

步骤5:设置扩缩容策略(重点)

AS 支持定时扩容及基于告警动态扩容、接收扩缩容通知、查看历史扩缩容详情等功能。您可结合实际情况进行使用,如下图所示:


1. 在“伸缩组管理”页面,选择定时任务页签,并单击新建
2. 在“新建定时任务”窗口中,根据以下信息设置一个20:00的定时扩容任务,20:00云服务器数量增加至2台。如下图所示:


名称:输入任务名称,本文以“20:00扩容”为例。
伸缩组活动
更改最小实例数:伸缩组最小实例数,保持为0不更改。
更改期望实例数:根据执行开始时间每天执行一次,本文中即为每日20:00都调整到2台云服务器。
更改最大实例数:伸缩组最大实例数,保持为5不变,您可按需设置。
重复周期:伸缩组活动的周期,本文设置每天执行一次。
执行开始时间:伸缩组活动重复开始时间,即 2019-12-14 20:00 开始活动,并按照重复周期执行。
重复结束时间:伸缩组活动重复结束时间,即 2020-12-14 20:00 后不再重复。
注意
腾讯云的 CVM 需要1分钟左右创建,如果自定义镜像较大,可能需要更多时间。您可以将执行开始时间提早5分钟。
3. 参考以上步骤,再设置一个24:00的缩容任务,24:00云服务器数量减少至1台。如下图所示:

至此已完成配置。 网站的后台集群变为“1台固定应用服务器+1台高峰时定时创建的应用服务器”。 没加入伸缩组的其他集群机器,大部分时间未充分利用,可以退还掉节约成本。