全部产品
Search
文档中心

弹性伸缩:根据业务负载自动扩缩容ECS实例

更新时间:Sep 30, 2024

弹性伸缩可以根据您设定的策略自动调整计算资源数量(即业务所需的实例数量),帮助您高效应对业务流量波动,提高资源利用率,并节约成本。对于无规律的业务波动,您可以通过报警任务来监控业务负载,在监控指标(如CPU使用率)达到报警阈值时触发伸缩规则,自动增加或减少一定数量的ECS实例。

适用场景

场景描述

业务需求动态波动,无法预估所需的服务器数量和时间点,期望根据业务负载实时调整服务器数量。

例如:某新闻网站的流量难以预测,出现热点新闻时,访问量突增,新闻时效性降低后,访问量回落。

image

解决方案

通过报警任务联动云监控,在指定的监控指标满足条件时自动触发伸缩规则,从而实现根据业务负载自动扩缩容服务器。

image

方案优势

  • 零备机成本

    弹性伸缩可自动创建和释放ECS实例,实现按需取用,无需备机。您只需针对日常业务流量保有计算资源。

  • 自动扩缩容

    通过云监控实时监控负载变化,实现自动扩缩容,在满足业务需求的同时节约资源和运维成本。

前提条件

首次使用弹性伸缩时,已完成RAM相关授权操作。

  • 已创建服务关联角色AliyunServiceRoleForAutoScaling。具体操作,请参见服务关联角色

  • 如果使用RAM用户操作,您需要为RAM用户添加AliyunESSFullAccess权限。具体操作,请参见为RAM用户授权

步骤一:创建伸缩组

伸缩组是弹性伸缩的核心单元,用于管理具有相同应用场景的实例集合。弹性伸缩将会在该伸缩组内增加或减少实例。

  1. 进入伸缩组管理页面。

    1. 登录弹性伸缩控制台

    2. 在左侧导航栏中,单击伸缩组管理

    3. 在顶部菜单栏处,选择地域。

  2. 在页面左上角,单击创建伸缩组

  3. 通过表单创建页签下,完成伸缩组配置,然后单击创建

    本文示例采用以下配置,未提及的配置项保持默认。更多关于伸缩组的配置说明,请参见创建伸缩组

    配置项

    示例

    描述

    伸缩组名称

    test

    输入伸缩组名称。格式要求请参考界面提示。

    伸缩组类型

    ECS

    选择ECS,表示伸缩组内的实例类型为ECS实例。

    组内实例配置信息来源

    从零开始创建

    先不指定自动创建实例的模板。伸缩组创建完成后,您需要继续创建伸缩配置。

    组内最小实例数

    1

    设置伸缩组内实例数量的下限。当前实例数量低于下限时,伸缩组会自动添加实例,使得伸缩组内的实例数量等于下限。

    组内最大实例数

    5

    设置伸缩组内实例数量的上限。当前实例数量超过上限时,伸缩组会自动移出实例,使得伸缩组内的实例数量等于上限。

    专有网络

    vpc-bp1jmxxau0lur929p****

    选择伸缩组内ECS实例所属的专有网络。

    选择交换机

    vsw-2zeknnyw2ewufbs4z****

    vsw-2zesy03h8eaf9fe0l****

    选择伸缩组内ECS实例所属的交换机。建议选择多个交换机来提升扩容成功率。

步骤二:创建伸缩配置并启用伸缩配置和伸缩组

伸缩配置是扩容时所增加的ECS实例的配置模板,包括实例付费模式、规格、存储、网络等配置信息。创建伸缩组配置后,您可以启用伸缩配置,然后启用伸缩组。

  1. 找到待操作的伸缩组,选择任一种方式打开伸缩组详情页面。

    • 伸缩组名称/ID列,单击伸缩组ID。

    • 操作列,单击查看详情

  2. 在页面上方,单击实例配置来源页签。

  3. 伸缩配置页签下,单击创建伸缩配置

  4. 创建伸缩配置页面,完成相关参数配置,单击创建

    本示例中采用以下配置,未提及的配置项保持默认。更多关于伸缩配置的配置说明,请参见创建伸缩配置(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实例设置密码。

  5. 在弹出的伸缩配置预览对话框中,确认配置信息,然后单击确认创建

  6. 在弹出的伸缩配置创建成功对话框中,单击启用配置

  7. 在弹出的选用伸缩配置对话框中,单击确定

    说明

    在一个伸缩组内,您必须启用一个伸缩配置。启用伸缩配置后,该伸缩配置处于生效状态。

  8. 在弹出的启用伸缩组对话框中,单击确定

    启用伸缩组后,弹性伸缩才会按照您的配置实现扩容和缩容。

    本示例伸缩组内的最小实例数为1,因此启用伸缩组后,系统会基于伸缩配置自动创建一台ECS实例。您可以在伸缩组详情页面的实例列表页签下,选择自动创建页签,查看实例信息。

    手动1.png

步骤三:创建伸缩规则

伸缩规则用来指定每次伸缩活动的规则,如增加或者减少ECS实例的数量。

  1. 在伸缩组详情页面,单击伸缩规则与报警任务页签,然后单击伸缩规则页签。

  2. 单击创建伸缩规则,完成伸缩规则配置,然后单击确认

    本示例采用简单规则。更多关于伸缩规则的配置说明,请参见配置伸缩规则

    配置项

    描述

    规则名称

    输入规则名称。格式要求请参考界面提示。

    伸缩规则类型

    本示例采用简单规则。更多关于伸缩规则的介绍,请参见伸缩规则概述

    执行的操作

    设置触发规则时,需要增加或减少多少实例。单次伸缩支持的最大实例数为1000台。

    冷却时间

    可选项,单位为秒。不填写则默认使用伸缩组的冷却时间,更多信息,请参见冷却时间

    请重复该步骤,分别创建扩容规则和缩容规则。配置示例如下:

    伸缩规则

    配置示例

    扩容规则

    • 规则名称:add

    • 伸缩规则类型:简单规则

    • 执行的操作:增加1台

    缩容规则

    • 规则名称:remove

    • 伸缩规则类型:简单规则

    • 执行的操作:减少1台

步骤四:创建报警任务

报警任务通过监控特定的监控指标,对数据指标进行实时的统计,当统计值满足您指定的报警条件时,触发报警并执行您指定的伸缩规则。

  1. 在伸缩组详情页面,单击伸缩规则和报警任务页签,然后单击报警任务页签。

  2. 报警任务(系统)页签,单击创建报警任务,完成任务配置,然后单击确认

    说明

    本示例使用系统提供的指标创建报警任务,您也可以上报自有业务指标并创建报警任务。更多信息,请参见报警任务概述

    需要关注的任务配置如下,未提及的配置项保持默认。更多关于报警任务的配置说明,请参见配置报警任务

    配置项

    描述

    名称

    输入任务名称。格式要求请参考界面提示。

    报警指标描述

    设置监控指标达到什么条件时触发报警。您需要选择一个或多个系统定义的监控项,选择多个系统定义的监控项时,单击添加指标继续选择即可。

    该部分包含的配置项说明如下:

    • 监控项:系统监控支持的监控指标名称。例如,(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可查看详细信息。