全部产品
Search
文档中心

弹性伸缩:快速扩缩容ECI实例

更新时间:Aug 25, 2023

本文描述了如何快速配置弹性伸缩,来自动实现ECI实例的增加或减少,帮助您快速上手弹性伸缩。

背景信息

本文以A公司的业务场景为例,为您展示如何快速配置弹性伸缩。不同业务场景,所需的操作不同,具体如下表所示。如果您想实现下表中所有的业务需求,请依次执行本文操作步骤即可。

业务场景业务需求描述必选操作步骤
日常运行,且业务量无明显波动时,需要2台ECI实例。需求一:最少需要2台ECI实例(CPU为4 vCPU,内存为8 GiB),来满足日常需求。
  1. 步骤一:创建伸缩组
  2. 步骤二:创建伸缩配置
日常运行,但公司可能存在突发的高业务请求量,无法确定此情况下需要的实例数量。
  • 需求二:业务请求量突增时,增加1台ECI实例(CPU为4 vCPU,内存为8 GiB)。
  • 需求三:突增的业务请求量回落,应对突增业务量而增加的ECI实例空闲,需要减少1台ECI实例,节约成本。
  1. 步骤一:创建伸缩组
  2. 步骤二:创建伸缩配置
  3. 步骤三:创建伸缩规则
  4. 步骤四:创建报警任务
每天存在业务高峰期(18:00~22:00),需要新增1台ECI实例。
  • 需求四:高峰期开始前,需要增加1台ECI实例(CPU为4 vCPU,内存为8 GiB),供高峰期使用。
  • 需求五:高峰期结束后,应对高峰期业务而增加的ECI实例空闲,需减少1台ECI实例,节约成本。
  1. 步骤一:创建伸缩组
  2. 步骤二:创建伸缩配置
  3. 步骤三:创建伸缩规则
  4. 步骤五:创建定时任务

准备工作

如果您初次使用弹性伸缩,您需要完成以下准备工作:

  • 已创建服务关联角色AliyunServiceRoleForAutoScaling。

  • 如果您使用RAM用户,您还需要为RAM用户添加AliyunESSFullAccess权限。

    具体操作,请参见管理弹性伸缩服务关联角色

步骤一:创建伸缩组

伸缩组是弹性伸缩的核心单元,用来管理满足该公司业务需求的一组实例。弹性伸缩将会在该伸缩组内自动增加或减少实例。

  1. 登录弹性伸缩控制台
  2. 在左侧导航栏中,单击伸缩组管理
    本步骤中以前往伸缩组列表页面操作为例。如果在当前地域下没有弹性伸缩资源,登录控制台后会显示欢迎页面,您也可以根据页面提示操作。
  3. 在顶部菜单栏处,选择地域。
  4. 在页面左上角,单击创建伸缩组
  5. 完成伸缩组配置,然后单击确认
    创建伸缩组eci

    本示例中采用以下配置,未提及的配置保持默认即可。

    配置项示例描述
    伸缩组名称MyFirstECIScalingGroup
    伸缩组类型ECI伸缩组内的实例类型为ECI实例。
    组内实例配置信息来源从零开始创建伸缩组创建完成后,您需要继续创建伸缩配置。
    组内最小实例数2

    伸缩组内最少有2台ECI实例,才能满足A公司的需求一。

    当伸缩组内ECI实例不足2台时,弹性伸缩会自动创建ECI实例,使伸缩组内的实例数量等于2台。

    组内最大实例数5伸缩组内最多有5台ECI实例,多出的ECI实例会被自动移出,有助于控制成本。
    专有网络vpc-bp1jmxxau0lur929p****伸缩组的专有网络和交换机。如需创建专有网络和交换机,请参见搭建IPv4专有网络
    选择交换机vsw-bp155oak33mqngov2****
  6. 在弹出的创建伸缩组对话框,单击关闭

步骤二:创建伸缩配置

伸缩配置是扩容时ECI实例使用的模板,包括实例规格、存储、公网IP、安全组等配置信息。弹性伸缩使用该伸缩配置创建具有相同配置的ECI实例。

  1. 找到待操作的伸缩组,选择任一种方式打开伸缩组详情页面。
    • 伸缩组名称/ID列,单击伸缩组ID。
    • 操作列,单击查看详情
  2. 在页面上方,单击实例配置来源页签。
  3. 伸缩配置页签下,单击创建伸缩配置
  4. 完成基础配置其他配置(选填)两个页面的参数配置,然后在确认配置页面中,单击确认创建
    伸缩配置eci

    本示例中采用以下配置,未提及的配置保持默认即可。

    配置页面配置项示例描述
    基础配置付费模式按量付费弹性伸缩服务免费,但是加入伸缩组的ECI实例需要按ECI的定价支付费用。更多信息,请参见计费概述
    安全组sg-bp18kz60mefsicfg****选择您提前创建好的安全组。如需创建安全组,请参见创建安全组
    容器组配置
    • CPU:4 vCPU
    • 内存:8 GiB
    • 名称:container-group-a
    容器组中的所有容器共享容器组的资源。
    说明 本示例中默认不开启成本优化功能,更多信息,请参见使用ECI类型伸缩组的成本优化功能
    容器配置
    • 容器名称:container-1
    • 镜像
      • 容器镜像:在常用镜像页签下选择eci_open/centos
      • 镜像版本:7
    • 镜像拉取策略:支持总是拉取按需拉取两种策略。
    • 启动命令
      • 可执行命令:sleep
      • 参数:999999
    容器上运行的镜像及容器的启动命令。
    其他配置(选填)伸缩配置名称MyFirstECIScalingConfiguration
  5. 伸缩配置建立成功对话框,单击启用配置
  6. 选用伸缩配置对话框,单击确定

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

  7. 启用伸缩组对话框,单击确定

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

    说明 此时,弹性伸缩会自动创建2台ECI实例,满足了A公司的需求一。如需查看具体实例,请参见查询实例列表

步骤三:创建伸缩规则

伸缩规则用来指定每次伸缩活动的规则,例如增加或者减少ECI实例的数量,或者智能设置伸缩组的最大或最小实例数。

本示例中,您需要针对两种伸缩场景设置两个伸缩规则:

  • 弹性扩张:增加1台ECI实例。
  • 弹性收缩:减少1台ECI实例。

创建伸缩规则后,您可以结合业务场景,选择方式触发伸缩活动。例如,手动执行伸缩规则,或者通过报警任务或定时任务自动执行伸缩规则。

  1. 在页面上方,单击伸缩规则与报警任务页签。
  2. 伸缩规则页签下,创建一个弹性扩张的伸缩规则。
    1. 在页面左上角,单击创建伸缩规则
    2. 设置伸缩规则的属性,然后单击确认
      规则1

      本示例中采用以下配置,未提及的配置保持默认即可。

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

步骤四:创建报警任务

报警任务通过监控特定的监控指标,对数据指标进行实时的统计,当统计值满足您指定的报警条件时,触发报警并执行您指定的伸缩规则。本示例中,您可以针对需求二和需求三分别设置报警任务,具体如下:

  • 需求二:设置报警任务EventTriggeredECIScalingOut,在伸缩组内CPU使用率不小于70%时,自动执行伸缩规则Add1,增加1台ECI实例。
  • 需求三:设置报警任务EventTriggeredECIScalingIn,在伸缩组内CPU使用率不大于20%时,自动执行伸缩规则Remove1,减少1台ECI实例。
  1. 在页面上方,单击伸缩规则与报警任务页签,再单击定时/报警任务页签。
  2. 单击报警任务(系统)页签。
    本示例中,报警任务使用系统定义好的系统监控项,即监控指标。如果您单击报警任务(自定义)页签,创建报警任务,您需要将自有的监控系统中的自定义监控指标上报至云监控。更多信息,请参见自定义监控报警任务
  3. 创建一个弹性扩张的报警任务。
    1. 单击创建报警任务
    2. 设置报警任务的属性,然后单击确认
      alarm1
      本示例中采用以下配置,未提及的配置保持默认即可。
      配置项示例说明
      任务名称EventTriggeredECIScalingOut
      描述平均CPU使用率不小于70%时添加ECI实例
      监控资源asg-bp1a5rlpy7yrlr1o****伸缩组MyFirstScalingGroup的伸缩组ID,报警任务会监控该伸缩组内的指标。
      监控类型系统监控指云监控为您采集的监控指标,默认为系统监控即可,您无需设置该参数。
      报警指标描述CPU使用率 > Average(平均值) > >= > 70%表示报警规则进入报警状态时需满足的条件。您需要选择一个或多个系统定义的监控项,选择多个系统定义的监控项时,单击添加指标继续选择即可。
      该部分包含的配置项说明如下:
      • 监控项:系统监控支持的监控指标名称。例如,CPU使用率表示监控伸缩组内ECI实例的CPU使用率。
      • 统计办法:即判定云监控指标值超出阈值范围的规则,您可以围绕平均值、最大值或最小值设置规则。例如,Average(平均值)>=70%表示伸缩组内ECI实例的CPU使用率平均值不小于70%触发报警。
      多指标关系当所有指标都符合条件时报警支持当所有指标都符合条件时报警任意一个指标符合条件时报警两种报警规则的选择方式。
      统计周期1分钟弹性伸缩会根据统计周期收集、汇总和比较数据,粒度越小,越容易触发报警。请您根据业务需要选择合理的统计周期,例如1分钟统计1次数据。
      重复几次后报警3次ECI实例的CPU使用率统计结果连续3次不小于70%,则触发相应的报警和伸缩规则。
      生效周期不设置表示报警任务的生效时间范围。在生效周期内,报警任务在报警后会自动执行指定的伸缩规则。否则,报警任务只报警,不执行伸缩规则。
      • 不设置:默认所有时间都生效。
      • Cron表达式:仅在符合表达式的时间范围内生效。Cron表达式的更多信息,请参见Cron表达式
      报警触发规则Add1触发报警后,执行伸缩规则Add1,伸缩组内的ECI实例数量将增加1台。
  4. 创建一个弹性收缩的报警任务。
    1. 单击创建报警任务
    2. 设置报警任务的属性,然后单击确认
      alarm2

      本示例中采用以下配置,未提及的配置保持默认即可。

      配置项示例说明
      任务名称EventTriggeredECIScalingIn
      描述平均CPU使用率不大于20%时移出ECI实例
      监控资源asg-bp1a5rlpy7yrlr1o****伸缩组MyFirstScalingGroup的伸缩组ID,报警任务会监控该伸缩组内的指标。
      监控类型系统监控无指云监控为您采集的监控指标,默认为系统监控即可,您无需设置该参数。
      报警指标描述CPU使用率 > Average(平均值) > <= > 20%表示报警规则进入报警状态时需满足的条件。您需要选择一个或多个系统定义的监控项,选择多个系统定义的监控项时,单击添加指标继续选择即可。
      该部分包含的配置项说明如下:
      • 监控项:系统监控支持的监控指标名称。例如,CPU使用率表示监控伸缩组内ECI实例的CPU使用率。
      • 统计办法:即判定云监控指标值超出阈值范围的规则,您可以围绕平均值、最大值或最小值设置规则。例如,Average(平均值)<=20%表示伸缩组内ECI实例的CPU使用率平均值不大于20%触发报警。
      多指标关系当所有指标都符合条件时报警支持当所有指标都符合条件时报警任意一个指标符合条件时报警两种报警规则的选择方式。
      统计周期1分钟弹性伸缩会根据统计周期收集、汇总和比较数据,粒度越小,越容易触发报警,请根据业务需要选择合理的统计周期。例如1分钟统计1次数据。
      重复几次后报警3次ECI实例的CPU使用率统计结果连续3次不大于20%,则触发相应的报警和伸缩规则。
      生效周期不设置表示报警任务的生效时间范围。在生效周期内,报警任务在报警后会自动执行指定的伸缩规则。否则,报警任务只报警,不执行伸缩规则。
      • 不设置:默认所有时间都生效。
      • Cron表达式:仅在符合表达式的时间范围内生效。Cron表达式的更多信息,请参见Cron表达式
      报警触发规则Remove1触发报警后,执行伸缩规则Remove1,伸缩组内的ECI实例数量将减少1台。

步骤五:创建定时任务

定时任务是一种预设任务,可以在指定时间执行指定伸缩规则。本示例中,您可以针对需求四和需求五分别设置定时任务,具体如下:
  • 需求四:设置定时任务ScheduledECIScalingOut,在高峰期前,实现自动增加1台ECI实例。
  • 需求五:设置定时任务ScheduledECIScalingIn,在高峰期结束后,实现自动减少1台ECI实例。
  1. 在页面上方,单击伸缩规则与报警任务页签。
  2. 单击定时/报警任务页签。
  3. 定时任务页签下,创建一个弹性扩张的定时任务。
    1. 单击创建定时任务
    2. 设置定时任务的属性,然后单击确认
      定时1

      本示例中采用以下配置,未提及的配置保持默认即可。

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

      本示例中采用以下配置,未提及的配置保持默认即可。

      配置项示例说明
      任务名称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实例配置和伸缩配置保持一致。具体操作,请参见查询实例列表

ECI实例