弹性伸缩可以根据您设定的策略自动调整计算资源数量(即业务所需的实例数量),帮助您高效应对业务流量波动,提高资源利用率,并节约成本。对于周期性有规律的业务波动,您可以通过定时任务实现在指定的时间点触发伸缩规则,自动增加或减少一定数量的ECS实例。
适用场景
场景描述
业务需求周期性波动,需求量变化有规律,可以根据时间段来判断流量高峰和低谷,按时间点自动增加或减少服务器。
例如:某游戏公司的业务量固定在每晚18点~23点的时间段内增长,需要增加服务器,但在其他时段只需固定数量的服务器保证日常运营。
解决方案
根据业务波动的时间点来设置定时任务,在相应的时间点自动触发伸缩规则,从而实现定时自动扩缩容服务器。
方案优势
零备机成本
弹性伸缩可自动创建和释放ECS实例,实现按需取用,无需备机。您只需针对日常业务流量保有计算资源。
自动扩缩容
通过定时任务实现在指定的时间点自动扩缩容,在满足业务需求的同时节约资源和运维成本。
前提条件
步骤一:创建伸缩组
伸缩组是弹性伸缩的核心单元,用于管理具有相同应用场景的实例集合。弹性伸缩将会在该伸缩组内增加或减少实例。
进入伸缩组管理页面。
登录弹性伸缩控制台。
在左侧导航栏中,单击伸缩组管理。
在顶部菜单栏处,选择地域。
在页面左上角,单击创建伸缩组。
在通过表单创建页签下,完成伸缩组配置,然后单击创建。
本文示例采用以下配置,未提及的配置项保持默认。更多关于伸缩组的配置说明,请参见创建伸缩组。
配置项
示例
描述
伸缩组名称
test
输入伸缩组名称。格式要求请参考界面提示。
伸缩组类型
ECS
选择ECS,表示伸缩组内的实例类型为ECS实例。
组内实例配置信息来源
从零开始创建
先不指定自动创建实例的模板。伸缩组创建完成后,您需要继续创建伸缩配置。
组内最小实例数
1
设置伸缩组内实例数量的下限。当前实例数量低于下限时,伸缩组会自动添加实例,使得伸缩组内的实例数量等于下限。
组内最大实例数
5
设置伸缩组内实例数量的上限。当前实例数量超过上限时,伸缩组会自动移出实例,使得伸缩组内的实例数量等于上限。
专有网络
vpc-bp1jmxxau0lur929p****
选择伸缩组内ECS实例所属的专有网络。
选择交换机
vsw-2zeknnyw2ewufbs4z****
vsw-2zesy03h8eaf9fe0l****
选择伸缩组内ECS实例所属的交换机。建议选择多个交换机来提升扩容成功率。
步骤二:创建伸缩配置并启用伸缩配置和伸缩组
伸缩配置是扩容时所增加的ECS实例的配置模板,包括实例付费模式、规格、存储、网络等配置信息。创建伸缩组配置后,您可以启用伸缩配置,然后启用伸缩组。
找到待操作的伸缩组,选择任一种方式打开伸缩组详情页面。
在伸缩组名称/ID列,单击伸缩组ID。
在操作列,单击查看详情。
在页面上方,单击实例配置来源页签。
在伸缩配置页签下,单击创建伸缩配置。
在创建伸缩配置页面,完成相关参数配置,单击创建。
本示例中采用以下配置,未提及的配置项保持默认。更多关于伸缩配置的配置说明,请参见创建伸缩配置(ECS实例)。
区域
配置项
示例
描述
基础信息
伸缩配置名称
test
输入伸缩配置的名称。格式要求请参考界面提示。
付费模式
按量付费
弹性伸缩服务免费,但您需要为扩容时所增加的ECS实例付费。本文采用按量付费方式作为示例。更多信息,请参见计费概述。
实例和镜像
实例配置方式
指定实例属性
选择指定实例属性方式来配置ECS实例的规格需求。
指定实例属性组合
2 vCPU,4 GiB内存,企业级
设置ECS实例的vCPU和内存需求。
选择镜像
公共镜像Alibaba Cloud Linux 3.2104 LTS 64位
选择用于部署ECS实例的镜像。本文以公共镜像作为示例,实际业务场景请选用您已部署应用的自定义镜像。
存储
系统盘
ESSD云盘,40 Gib,PL0
为ECS实例选择系统盘。
网络和安全组
公网IP
选中分配公网IPv4地址,默认按固定带宽计费,带宽值默认为1 Mbit/s。
按需选择是否为ECS实例分配公网IP地址。按公网出方向实际发生的带宽计费,带宽费用合并在ECS实例中收取。
安全组
sg-bp18kz60mefsicfg****
选择您提前创建好的安全组。如需创建安全组,请参见创建安全组。
管理设置
登录凭证
创建后设置
ECS实例创建完成后,再手动为ECS实例设置密码。
在弹出的伸缩配置预览对话框中,确认配置信息,然后单击确认创建。
在弹出的伸缩配置创建成功对话框中,单击启用配置。
在弹出的选用伸缩配置对话框中,单击确定。
说明在一个伸缩组内,您必须启用一个伸缩配置。启用伸缩配置后,该伸缩配置处于生效状态。
在弹出的启用伸缩组对话框中,单击确定。
启用伸缩组后,弹性伸缩才会按照您的配置实现扩容和缩容。
本示例伸缩组内的最小实例数为1,因此启用伸缩组后,系统会基于伸缩配置自动创建一台ECS实例。您可以在伸缩组详情页面的实例列表页签下,选择自动创建页签,查看实例信息。
步骤三:创建伸缩规则
伸缩规则用来指定每次伸缩活动的规则,如增加或者减少ECS实例的数量。
在伸缩组详情页面,单击伸缩规则与报警任务页签,然后单击伸缩规则页签。
单击创建伸缩规则,完成伸缩规则配置,然后单击确认。
本示例采用简单规则。更多关于伸缩规则的配置说明,请参见配置伸缩规则。
配置项
描述
规则名称
输入规则名称。格式要求请参考界面提示。
伸缩规则类型
本示例采用简单规则。更多关于伸缩规则的介绍,请参见伸缩规则概述。
执行的操作
设置触发规则时,需要增加或减少多少实例。单次伸缩支持的最大实例数为1000台。
冷却时间
可选项,单位为秒。不填写则默认使用伸缩组的冷却时间,更多信息,请参见冷却时间。
请重复该步骤,分别创建扩容规则和缩容规则。配置示例如下:
伸缩规则
配置示例
扩容规则
规则名称:add
伸缩规则类型:简单规则
执行的操作:增加1台
缩容规则
规则名称:remove
伸缩规则类型:简单规则
执行的操作:减少1台
步骤四:创建定时任务
定时任务是一种预设任务,可以在指定时间执行指定伸缩规则。
在伸缩组详情页面,单击伸缩规则与报警任务页签,然后单击定时任务页签。
单击创建定时任务,完成任务配置,然后单击确认。
需要关注的任务配置如下,未提及的配置项保持默认。更多关于定时任务的配置说明,请参见定时任务概述。
配置项
描述
任务名称
输入任务名称。格式要求请参考界面提示。
执行时间
设置任务的触发时间。
伸缩方式
选中选择已有伸缩规则。
伸缩规则(简单规则)
选择要执行的伸缩规则。
重复周期
设置任务的重复周期。例如:按天,每1天执行一次。
请重复该步骤,分别创建触发扩容规则和缩容规则的定时任务。配置示例如下:
定时任务
配置示例
定时扩容
任务名称:scheduled-add
执行时间:2024年5月16日 18:00
伸缩方式:选择已有伸缩规则
伸缩规则(简单规则):add
重复周期:按天,每1天执行一次。
定时缩容
任务名称:scheduled-remove
执行时间:2024年5月16日 23:00
伸缩方式:选择已有伸缩规则
伸缩规则(简单规则):remove
重复周期:按天,每1天执行一次。
验证自动扩缩容效果
定时任务创建后,系统会自动按照任务的时间点来执行伸缩规则。
本示例实现效果为:
每天18点自动增加1台ECS实例
每天23点自动减少1台ECS实例
您可以通过以下方式确认效果:
定时任务触发时,在伸缩组详情页面的实例列表页签下,选择自动创建页签,然后在实例列表中观察实例数量变化。
定时任务触发后,在伸缩组详情页面的伸缩活动页签下,查看是否已按时触发伸缩活动,单击伸缩活动ID可查看详细信息。