弹性伸缩可以根据设定的策略自动调整计算资源数量(即业务所需的实例数量),帮助您高效应对业务流量波动,提高资源利用率,并节约成本。对于无规律的业务波动,您可以通过报警任务来监控业务负载,在监控指标(如CPU使用率)达到报警阈值时执行弹性伸缩,自动增加或减少一定数量的ECS实例。
适用场景
场景描述
业务需求动态波动,无法预估所需的服务器数量和时间点,期望根据业务负载实时调整服务器数量。
例如:某新闻网站的流量难以预测,出现热点新闻时,访问量突增,新闻时效性降低后,访问量回落。
解决方案
通过报警任务联动云监控,在指定的监控指标满足条件时执行伸缩规则,从而实现根据业务负载自动扩缩容服务器。
方案优势
- 零备机成本 - 弹性伸缩可自动创建和释放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台 
 
步骤四:创建报警任务
报警任务通过监控特定的监控指标,对数据指标进行实时的统计,当统计值满足报警条件时,触发报警并执行伸缩规则。
- 在伸缩组详情页面,单击伸缩规则和报警任务页签,然后单击报警任务页签。 
- 在报警任务(系统)页签,单击创建报警任务,完成任务配置,然后单击确认。 说明- 本示例使用系统提供的指标创建报警任务,您也可以上报自有业务指标并创建报警任务。更多信息,请参见报警任务概述。 - 需要关注的任务配置如下,未提及的配置项保持默认。更多关于报警任务的配置说明,请参见配置报警任务。 - 配置项 - 描述 - 名称 - 输入任务名称。格式要求请参考界面提示。 - 报警指标描述 - 设置监控指标达到什么条件时触发报警。您需要选择一个或多个系统定义的监控项,选择多个系统定义的监控项时,单击添加指标继续选择即可。 - 该部分包含的配置项说明如下: - 监控项:系统监控支持的监控指标名称。例如,(ECS)CPU使用率表示监控伸缩组内ECS实例的CPU使用率。 
- 统计办法:即判定云监控指标值超出阈值范围的规则,您可以围绕平均值、最大值或最小值设置规则。例如,Average(平均值)>=70%表示伸缩组内ECS实例的CPU使用率平均值不小于70%触发报警。 
 - 报警后执行规则 - 选择报警后执行的伸缩规则。 - 请重复该步骤,分别创建触发扩容规则和缩容规则的报警任务。配置示例如下: - 报警任务 - 配置示例 - 报警执行扩容 - 名称:alarm-add 
- 报警指标描述:(ECS)CPU使用率>Average(平均值)>70% 
- 报警后执行规则:add 
 - 报警执行缩容 - 名称:alarm-remove 
- 报警指标描述:(ECS)CPU使用率>Average(平均值)<20% 
- 报警后执行规则:remove 
 
验证自动扩缩容效果
报警任务创建后,系统会实时监控伸缩组内的指标数据,在指标数据满足条件时执行弹性伸缩。
本示例实现效果为:
- 伸缩组内ECS实例的CPU使用率大于70%时,自动增加1台ECS实例。 
- 伸缩组内ECS实例的CPU使用率小于20%时,自动减少1台ECS实例。 
您可以通过压测工具来模拟测试,通过以下方式确认效果:
- 报警任务执行时,在伸缩组详情页面的实例列表页签下,选择自动创建页签,然后在实例列表中观察实例数量变化。 
- 报警任务执行后,在伸缩组详情页面的伸缩活动页签下,查看是否已按时执行伸缩活动,单击伸缩活动ID可查看详细信息。