本文描述了如何快速配置弹性伸缩,来自动实现ECI实例的增加或减少,帮助您快速上手弹性伸缩。
背景信息
本文以A公司的业务场景为例,为您展示如何快速配置弹性伸缩。不同业务场景,所需的操作不同,具体如下表所示。如果您想实现下表中所有的业务需求,请依次执行本文操作步骤即可。
准备工作
如果您初次使用弹性伸缩,您需要完成以下准备工作:
- 已创建服务关联角色AliyunServiceRoleForAutoScaling。
- 如果您使用RAM用户,您还需要为RAM用户添加AliyunESSFullAccess权限。
具体操作,请参见管理弹性伸缩服务关联角色。
步骤一:创建伸缩组
伸缩组是弹性伸缩的核心单元,用来管理满足该公司业务需求的一组实例。弹性伸缩将会在该伸缩组内自动增加或减少实例。
- 登录弹性伸缩控制台。
- 在左侧导航栏中,单击伸缩组管理。
本步骤中以前往伸缩组列表页面操作为例。如果在当前地域下没有弹性伸缩资源,登录控制台后会显示欢迎页面,您也可以根据页面提示操作。
- 在顶部菜单栏处,选择地域。
- 在页面左上角,单击创建伸缩组。
- 完成伸缩组配置,然后单击确认。

本示例中采用以下配置,未提及的配置保持默认即可。
配置项 |
示例 |
描述 |
伸缩组名称 |
MyFirstECIScalingGroup |
无 |
伸缩组类型 |
ECI |
伸缩组内的实例类型为ECI实例。 |
组内实例配置信息来源 |
从零开始创建 |
伸缩组创建完成后,您需要继续创建伸缩配置。 |
组内最小实例数 |
2 |
伸缩组内最少有2台ECI实例,才能满足A公司的需求一。
当伸缩组内ECI实例不足2台时,弹性伸缩会自动创建ECI实例,使伸缩组内的实例数量等于2台。
|
组内最大实例数 |
5 |
伸缩组内最多有5台ECI实例,多出的ECI实例会被自动移出,有助于控制成本。 |
网络类型 |
专有网络 |
创建伸缩配置时,只能选择支持专有网络的实例规格。 |
专有网络 |
vpc-bp1jmxxau0lur929p**** |
伸缩组的专有网络和交换机。如需创建专有网路和交换机,请参见搭建IPv4专有网络。
|
选择交换机 |
vsw-bp155oak33mqngov2**** |
- 在创建伸缩组对话框,单击关闭。
步骤二:创建伸缩配置
伸缩配置是扩容时ECI实例使用的模板,包括实例规格、存储、公网IP、安全组等配置信息。弹性伸缩使用该伸缩配置创建具有相同配置的ECI实例。
- 找到待操作的伸缩组,选择一种方式打开伸缩组详情页面。
- 在伸缩组名称/ID列,单击伸缩组ID。
- 在操作列,单击查看详情。
- 在页面上方,单击实例配置来源页签。
- 在伸缩配置页面,单击创建伸缩配置。
- 完成前两个页面的配置,然后在确认配置页面中单击确认创建。

本示例中采用以下配置,未提及的配置保持默认即可。
配置页面 |
配置项 |
示例 |
描述 |
基础配置 |
付费模式 |
按量付费 |
弹性伸缩服务免费,但是加入伸缩组的ECI实例需要按ECI的定价支付费用。更多信息,请参见计费概述。
|
安全组 |
sg-bp18kz60mefsicfg**** |
选择您提前创建好的安全组。如需创建安全组,请参见创建安全组。
|
容器组配置 |
- CPU:4 vCPU
- 内存:8 GiB
- 名称:container-group-a
|
容器组中的所有容器共享容器组的资源。 |
容器配置 |
- 容器名称:container-1
- 镜像:
- 容器镜像:在常用镜像页签下选择eci_open/centos
- 镜像版本:7
- 启动命令:
|
容器上运行的镜像及容器的启动命令。 |
其他配置(选填) |
伸缩配置名称 |
MyFirstECIScalingConfiguration |
无 |
- 在伸缩配置建立成功对话框,单击启用配置。
- 在选用伸缩配置对话框,单击确定。
在一个伸缩组内,您必须启用一个伸缩配置。启用伸缩配置后,该伸缩配置处于生效状态。
- 在启用伸缩组对话框,单击确定。
您必须启用伸缩组。启用伸缩组后,弹性伸缩才会按照您的配置实现弹性扩张和收缩。
说明 此时,弹性伸缩会自动创建2台ECI实例,满足了A公司的需求一。如需查看具体实例,请参见
查询ECS实例列表。
步骤三:创建伸缩规则
伸缩规则用来指定每次伸缩活动的规则,如增加或者减少ECI实例的数量,或者智能设置伸缩组的最大或最小实例数。
本示例中,您需要针对两种伸缩场景设置两个伸缩规则:
- 弹性扩张:增加1台ECI实例。
- 弹性收缩:减少1台ECI实例。
创建伸缩规则后,您可以结合业务场景,选择方式触发伸缩活动。比如,手动执行伸缩规则,或者通过报警任务或定时任务自动执行伸缩规则。
- 在页面上方,单击伸缩规则与伸缩活动页签,然后单击伸缩规则页签。
- 创建一个弹性扩张的伸缩规则。
- 在页面左上角,单击创建伸缩规则。
- 设置伸缩规则的属性,然后单击确认。

本示例中采用以下配置,未提及的配置保持默认即可。
配置项 |
示例 |
描述 |
规则名称 |
Add1 |
无 |
伸缩规则类型 |
简单规则 |
支持增加或减少指定数量的实例,或者将实例数量调整至指定值。 |
执行的操作 |
增加1台 |
单次弹性扩张,增加1台ECI实例。 |
- 创建一个弹性收缩的伸缩规则。
- 在页面左上角,单击创建伸缩规则。
- 设置伸缩规则的属性,然后单击确认。

本示例中采用以下配置,未提及的配置保持默认即可。
配置项 |
示例 |
描述 |
规则名称 |
Remove1 |
无 |
伸缩规则类型 |
简单规则 |
支持增加或减少指定数量的实例,或者将实例数量调整至指定值。 |
执行的操作 |
减少1台 |
单次弹性收缩,减少1台ECI实例。 |
步骤四:创建报警任务
报警任务通过监控特定的监控指标,对数据指标进行实时的统计,当统计值满足您指定的报警条件时,触发报警并执行您指定的伸缩规则。本示例中,您可以针对需求二和需求三分别设置报警任务,具体如下:
- 需求二:设置报警任务EventTriggeredECIScalingOut,在伸缩组内CPU使用率不小于70%时,自动执行伸缩规则Add1,增加1台ECI实例。
- 需求三:设置报警任务EventTriggeredECIScalingIn,在伸缩组内CPU使用率不大于20%时,自动执行伸缩规则Remove1,减少1台ECI实例。
- 在页面上方,单击伸缩规则与伸缩活动页签,再单击定时/报警任务页签。
- 单击报警任务(系统)页签。
本示例中,报警任务使用系统定义好的系统监控项,即监控指标。如果您单击
报警任务(自定义)页签,创建报警任务,您需要将自有的监控系统中的自定义监控指标上报至云监控。更多信息,请参见
自定义监控报警任务。
- 创建一个弹性扩张的报警任务。
- 单击创建报警任务。
- 设置报警任务的属性,然后单击提交。

本示例中采用以下配置,未提及的配置保持默认即可。
配置项 |
示例 |
说明 |
任务名称 |
EventTriggeredECIScalingOut |
无 |
描述 |
平均CPU使用率不小于70%时添加ECI实例 |
无 |
监控资源 |
asg-bp1a5rlpy7yrlr1o**** |
伸缩组MyFirstScalingGroup的伸缩组ID,报警任务会监控该伸缩组内的指标。 |
监控类型 |
系统监控 |
报警任务使用系统定义好的系统监控项。 |
监控项 |
CPU使用率 |
监控伸缩组内ECI实例的CPU使用率。 |
统计周期(分钟) |
1分钟 |
1分钟统计1次数据。 |
统计方法 |
Average(平均值) >= 70% |
如果伸缩组内ECI实例的CPU使用率平均值不小于70%,则记录1次。 |
重复几次后报警 |
3次 |
ECI实例的CPU使用率统计结果连续3次不小于70%,则触发报警。 |
报警触发规则 |
Add1 |
触发报警后,执行伸缩规则Add1,将伸缩组内的ECI实例数量增加1台。 |
- 创建一个弹性收缩的报警任务。
- 单击创建报警任务。
- 设置报警任务的属性,然后单击提交。

本示例中采用以下配置,未提及的配置保持默认即可。
配置项 |
示例 |
说明 |
任务名称 |
EventTriggeredECIScalingIn |
无 |
描述 |
平均CPU使用率不大于20%时移出ECI实例 |
无 |
监控资源 |
asg-bp1a5rlpy7yrlr1o**** |
伸缩组MyFirstScalingGroup的伸缩组ID,报警任务会监控该伸缩组内的指标。 |
监控类型 |
系统监控 |
无 |
监控项 |
CPU使用率 |
监控伸缩组内ECI实例的CPU使用率。 |
统计周期(分钟) |
1分钟 |
1分钟统计1次数据。 |
统计方法 |
Average(平均值) <= 20% |
如果伸缩组内ECI实例的CPU使用率平均值不大于20%,则记录1次。 |
重复几次后报警 |
3次 |
ECI实例的CPU使用率统计结果连续3次不大于20%,则触发报警。 |
报警触发规则 |
Remove1 |
触发报警后,执行伸缩规则Remove1,将伸缩组内的ECI实例数量减少1台。 |
步骤五:创建定时任务
定时任务是一种预设任务,可以在指定时间执行指定伸缩规则。本示例中,您可以针对需求四和需求五分别设置定时任务,具体如下:
- 需求四:设置定时任务ScheduledECIScalingOut,在高峰期前,实现自动增加1台ECI实例。
- 需求五:设置定时任务ScheduledECIScalingIn,在高峰期结束后,实现自动减少1台ECI实例。
- 创建一个弹性扩张的定时任务。
- 单击创建定时任务。
- 设置定时任务的属性,然后单击确认。

本示例中采用以下配置,未提及的配置保持默认即可。
配置项 |
示例 |
说明 |
任务名称 |
ScheduledECIScalingOut |
无 |
描述 |
每天17:55添加1台实例 |
无 |
执行时间 |
2021年11月10日 17:55 |
任务的触发时间。本示例中,将时间设置为高峰期前的5分钟,即17:55。 |
伸缩方式 |
选择已有伸缩规则 |
无 |
伸缩规则(简单规则) |
Add1 |
执行伸缩规则Add1,向伸缩组添加1台ECI实例。 |
重复周期 |
按天,每1天执行一次 |
每天执行一次该定时任务。本示例中,每天17:55执行伸缩规则,增加1台ECI实例。 |
- 创建一个弹性收缩的定时任务。
- 单击创建定时任务。
- 设置定时任务的属性,然后单击确认。

本示例中采用以下配置,未提及的配置保持默认即可。
配置项 |
示例 |
说明 |
任务名称 |
ScheduledECIScalingIn |
无 |
描述 |
每天22:05减少1台实例 |
无 |
执行时间 |
2021年11月10日 22:05 |
任务的触发时间。本示例中,将时间设置为高峰期后的5分钟,即22:05。 |
伸缩方式 |
选择已有伸缩规则 |
无 |
伸缩规则(简单规则) |
Remove1 |
执行伸缩规则Remove1,向伸缩组减少1台ECI实例。 |
重复周期 |
按天,每1天执行一次 |
每天执行一次该定时任务。本示例中,每天22:05执行伸缩规则,减少1台ECI实例。 |
执行结果
弹性伸缩会按照您的配置,在以下场景自动扩缩容ECI实例:
- 伸缩组启用后,弹性伸缩自动增加2台ECI实例,满足需求一。
- 如果伸缩组内CPU使用率不小于70%时,增加1台ECI实例,满足需求二。
- 如果伸缩组内CPU使用率不大于20%时,减少1台ECI实例,满足需求三。
- 每天17:55新增1台ECI实例,满足需求四。
- 每天22:05减少一台ECI实例,满足需求五。
您可以在伸缩组的实例列表页签查看实例,自动创建出的ECI实例配置和伸缩配置保持一致。具体操作,请参见查询ECS实例列表。