伸缩组是具有相同应用场景、相同实例类型(即ECS或ECI实例)的一组实例的集合。您可通过伸缩组定义可容纳实例数量的边界值、弹性扩张时使用的实例模板、弹性收缩时移出实例的策略等属性,让伸缩组按照您的需求维护一组实例。本文介绍创建、查看、修改、删除、启用或停用伸缩组的方法。

前提条件

在创建伸缩组时,需提前满足如下条件:

场景描述 条件说明
首次使用弹性伸缩时 您需要参照界面提示开通弹性伸缩权限。具体操作,请参见管理弹性伸缩服务关联角色
选择实例启动模板作为自动创建ECS实例的模板时 您需要提前创建好实例启动模板。具体操作,请参见创建实例启动模板
为伸缩组关联传统型负载均衡CLB(原SLB)实例时
  • 您需要持有一个或多个处于运行中状态的CLB实例。具体操作,请参见创建和管理CLB实例
  • CLB实例和伸缩组必须位于同一地域。
  • 如果CLB实例和伸缩组的网络类型均为专有网络,则必须位于同一专有网络。
  • 当CLB实例的网络类型为经典网络,伸缩组的网络类型为专有网络时,如果CLB实例的后端服务器组中包含专有网络ECS实例,该ECS实例必须与伸缩组位于同一专有网络。
  • CLB实例至少需要配置一个监听。具体操作,请参见监听概述
  • CLB实例必须开启健康检查。具体操作,请参见配置和管理健康检查
为伸缩组关联应用型负载均衡ALB服务器组时
  • 伸缩组的网络类型必须为VPC,且与ALB服务器组处于同一VPC。
  • ALB服务器组必须处于可用状态。
为伸缩组关联RDS实例时
  • 您需要持有一个或多个处于运行中状态的RDS实例。更多信息,请参见云数据库RDS简介
  • RDS实例和伸缩组必须位于同一地域。

创建伸缩组

  • 您在同一地域下拥有的伸缩组数量有限。如需查看或手动申请提升配额值,请前往配额中心
  • 创建伸缩组时,需要配置实例数量的边界值,例如最大实例数、最小实例数,您也可以选择配置期望实例数。
    • 创建伸缩组未配置期望实例数时,如果组内最小实例数大于0,且伸缩组内的默认添加的已有实例数量小于最小实例数,则弹性伸缩会自动触发一次扩容活动。
    • 创建伸缩组配置了期望实例数时,如果组内期望实例数大于0,且与伸缩组内的默认添加的已有实例数量不一致,则弹性伸缩会自动触发一次扩容活动。
    • 如果伸缩组中当前实例数量大于组内最大实例数,则伸缩组会自动移出多余实例,使得伸缩组内的实例数量等于伸缩组最大实例数。
    说明 此次默认触发的扩容活动与伸缩规则并没有任何关系。
  1. 登录弹性伸缩控制台
  2. 在顶部菜单栏处,选择地域。
  3. 在左侧导航栏中,单击伸缩组管理
  4. 在页面左上角,单击创建伸缩组
  5. 完成伸缩组配置,然后单击确认
    伸缩组的配置说明如下表所示。
    配置项 说明
    伸缩组名称 2~64个字符,以大小写字母、数字或中文开头,可包含半角句号(.)、下划线(_)和短划线(-)。
    伸缩组类型 指定伸缩组内提供计算能力的实例的类型,弹性伸缩会根据该配置为伸缩组扩缩容对应的实例。
    • ECS:伸缩组内的实例都为ECS实例。
    • ECI:伸缩组内的实例都为ECI实例。
    组内实例配置信息来源 弹性伸缩使用该配置创建实例。伸缩组支持以下来源类型:
    • 启动模板:包含除了密码以外的任意配置信息,如密钥对、RAM角色、实例类型和网络设置等。仅伸缩组类型ECS时,支持配置该项。

      您需要选择已创建的实例启动模板和实例启动模板版本。为增加模板的灵活性,您还可以通过扩展启动模板配置选择多个实例规格。为实例规格指定权重,请参见使用性能指标作为弹性伸缩的度量单位

    • 选择已有实例:您需要选择已创建的实例,弹性伸缩会自动提取该实例的基础配置信息,创建一个默认伸缩配置。

      伸缩组类型ECS时,从ECS实例提取的伸缩配置包括该ECS实例的实例规格、网络类型、安全组、基础镜像等基础配置,不包括登录密码、标签。其中,基础镜像是已有实例使用的基础镜像,不包括该实例的数据信息,如应用程序。如果您想使伸缩配置包括该实例的所有系统配置和数据信息,请创建该实例的自定义镜像,并使用自定义该镜像更新伸缩配置的镜像。具体操作,请参见更新伸缩配置中的镜像

    • 从零开始创建:先不指定自动创建实例的模板。等伸缩组创建完成后,再继续创建伸缩配置或指定启动模板。伸缩组类型不同,创建伸缩配置的具体操作不同,更多信息,请参见创建伸缩配置(ECS实例)创建伸缩配置(ECI实例)
    说明ECS控制台入口基于实例创建伸缩组时,弹性伸缩自动填入组内实例配置信息来源、网络类型相关的信息,请保持默认,无需修改。
    标签 添加标签便于搜索和聚合伸缩组,更多信息,请参见标签概述
    说明 此处的标签适用于伸缩组,如果您需要为伸缩组内实例添加标签,请在伸缩配置或启动模板中设置。
    扩容时需要传播给实例的标签 为伸缩组添加一个或多个标签后,您可以继续选择扩容时需要传播给伸缩组内实例的一个或多个标签。
    实例移出策略 当需要从伸缩组移出实例并且有多种选择时,按该策略选择需要移出的实例。如果按策略筛选后仍有多台实例满足要求,则随机移出一台。仅伸缩组类型ECS时,支持配置该项。
    该项支持两段设置先筛选再从结果中移出,但不支持为这两段设置相同的选项。各选项的含义如下:
    说明伸缩组类型ECI时,默认先筛选最早伸缩配置对应的实例,再从筛选结果中移出最早创建的实例。
    • 最早伸缩配置对应的实例:筛选添加时间最早的伸缩配置和启动模板对应的实例。手动添加的实例没有关联伸缩配置或启动模板,因此不会首先选出手动添加的实例。如果已移出全部关联的实例,仍需要继续移出实例,则随机移出手动添加的实例。
      说明 最早伸缩配置对应的实例中提到的伸缩配置泛指组内实例配置信息来源,包括伸缩配置和启动模板。

      启动模板的版本号低不代表添加时间早,例如在创建伸缩组时选择实例启动模板lt-foress的版本2,然后修改伸缩组,选择实例启动模板lt-foress的版本1,则对伸缩组来说,启动模板lt-foress的版本2是最早的。

    • 最早创建的实例:筛选创建时间最早的实例。
    • 最新创建的实例:筛选创建时间最新的实例。
    • --无策略--:仅在设置再从结果中移出时可选,表示不进行第二段筛选。
    例如,如果第一段设置为先筛选最早伸缩配置对应的实例,则第二段设置仅支持以下选项:
    • --无策略--:不进行第二段筛选。
    • 最早创建的实例:在第一段筛选出的实例中,再筛选创建时间最早的实例。
    • 最新创建的实例:在第一段筛选出的实例中,再筛选创建时间最新的实例。
    说明 伸缩组移出实例还受伸缩组的扩缩容策略影响。移出ECS实例的更多信息,请参见设置移出实例的组合策略
    暂停的流程 方便您在执行某些操作前主动暂停指定的流程,例如暂停健康检查流程后再去停止实例,避免实例被视为不健康而自动移出伸缩组。支持暂停的流程如下:
    • 扩容流程:伸缩组拒绝所有扩容动作。
    • 缩容流程:伸缩组拒绝所有缩容动作。
    • 健康检查:暂停将实例标记为不健康状态,并暂停移出不健康的实例。
    • 定时任务:到定时任务的执行时间后,不会触发关联的伸缩规则。
    • 报警任务:报警任务进入报警状态后,不会触发关联的伸缩规则。

    更多信息,请参见暂停和恢复伸缩组流程

    开启伸缩组保护 开启伸缩组保护后,您不能在弹性伸缩控制台或者通过API删除该伸缩组,有效避免误删除伸缩组。
    实例的健康检查 开启健康检查后,伸缩组会定期检查实例的运行状态,如果发现一台实例未处于运行中状态,则判定为不健康并移出该实例。更多信息,请参见伸缩组内实例的生命周期
    组内最小实例数 当前实例数量低于下限时,伸缩组会自动添加实例,使得伸缩组内的实例数量等于下限。
    组内最大实例数 当前实例数量超过上限时,伸缩组会自动移出实例,使得伸缩组内的实例数量等于上限。
    组内期望实例数 填写组内期望实例数即可开启期望实例数功能,伸缩组会自动将实例数量维持在期望实例数。更多信息,请参见期望实例数
    说明 只能在新建伸缩组时开启期望实例数功能,不支持通过修改已有伸缩组开启该功能。
    实例最大生命时长(秒) 实例在伸缩组中存活的最大时间,伸缩组中超过最大生命时长的实例将自动创建新实例来替换该实例。

    伸缩组类型ECS时,支持设置该参数。

    默认冷却时间(秒) 单位为秒,伸缩组发生伸缩活动后的默认冷却时间。在冷却时间内,伸缩组会拒绝由报警任务触发的伸缩活动请求,其他类型任务触发的伸缩活动可以绕过冷却时间立即执行,例如手动执行任务、定时任务。
    网络类型 仅专有网络伸缩组支持扩缩容策略实例回收模式关联应用型负载均衡ALB服务器组配置。
    说明ECS控制台入口基于实例创建伸缩组时,弹性伸缩自动填入组内实例配置信息来源、网络类型相关的信息,请保持默认,无需修改。

    伸缩组的网络类型决定了伸缩组内实例的网络类型,即专有网络的伸缩组只能存在专有网络的实例,经典网络的伸缩组只能存在经典网络的实例。

    说明 伸缩组创建完成后,不支持修改网络类型。
    扩缩容策略 伸缩组类型ECS,且网络类型专有网络时,支持配置该项。具体策略如下:
    • 优先级策略:先选择的交换机优先级高。弹性伸缩优先在优先级最高的交换机所在可用区尝试扩缩容,如果无法扩缩容,则自动在下一优先级的交换机所在可用区进行扩缩容。
      说明伸缩组类型ECI时,默认扩缩容策略为优先级策略。
    • 均衡分布策略:在伸缩组关联多个交换机且交换机分布在两个以上可用区时生效,支持在交换机所在的可用区之间均衡分布ECS实例。如果由于库存不足等原因导致可用区之间ECS实例的数量不均衡,您可以执行再均衡分布操作来平衡ECS实例的分布情况。具体操作,请参见ECS实例再均衡分布
    • 成本优化策略:在伸缩配置中指定了多个可选实例规格时生效。扩容时弹性伸缩按vCPU单价从低到高尝试创建ECS实例,缩容时按vCPU单价从高到低尝试移出ECS实例。如果伸缩配置中计费方式选择抢占式实例,优先创建抢占式实例。由于库存等原因无法创建各实例规格的抢占式实例时,再自动尝试创建按量付费实例。
      如果您选择成本优化策略,还可以设置以下属性:
      • 组内最小按量实例数(台):伸缩组所需按量付费ECS实例的最小台数,默认为0台。如果伸缩组内的按量付费ECS实例的台数小于该值,将优先创建按量付费实例。
      • 按量实例所占比例(%):自动创建ECS实例时按量付费实例所占的比例,默认为70%。计算该值时,不包括组内最小按量实例数对应的台数。
      • 最低价的多个实例规格(个):价格最低的实例规格的个数,默认为1个。在伸缩配置中指定了多个可选实例规格时生效。创建抢占式实例时,伸缩组会在价格最低的几个实例规格之间均衡创建ECS实例。
      • 开启抢占式实例补偿:开启抢占式实例补偿后,在抢占式实例被回收前5分钟,伸缩组会主动创建新的抢占式实例,并替换掉将被回收的抢占式实例。
      • 使用按量实例补充抢占式容量:默认为开启状态。如果因价格、库存等原因无法满足所需要的抢占式实例容量时,开启该功能,伸缩组会尝试创建按量付费实例来满足当前抢占式实例的容量。
    • 自定义组合策略:使用组合方式自定义伸缩组内容量分布策略。您可使用该策略调整伸缩组内按量实例和抢占式实例的比例、均衡可用区间的容量以及选择满足需求的实例规格。
    实例回收模式 伸缩组类型ECS,且网络类型专有网络时,支持配置该项。具体回收模式如下:
    • 释放模式:移出的实例被释放,无资源被保留。在弹性扩张时,弹性伸缩创建新的实例加入伸缩组。
      说明伸缩组类型ECI时,默认回收模式为释放模式。
    • 停机回收模式:移出的ECS实例被停用,并触发节省停机效果,部分资源被保留并计费。在弹性扩张时,弹性伸缩优先将停用的ECS实例加入伸缩组,再根据扩张数量决定是否创建新的ECS实例加入伸缩组。该模式可以提高扩缩容的效率,更多信息,请参见选择节省停机模式提高扩缩容效率
      重要
      • 请不要在实例中保留应用数据、日志等,避免实例回收后数据丢失的风险。
      • 停用的实例可能会被释放:
        • 如果您手动减少伸缩组的最大实例数,使现最大实例数比伸缩组内各状态(包括停用中)的实例总数小,弹性伸缩优先释放停用的ECS实例。
        • 因为库存不足或者账号欠费等原因,停用的实例在加入伸缩组时可能会失败,失败后该实例会被释放。
      • 停机回收模式的作用受按量付费实例节省停机模式的影响,更多信息,请参见按量付费实例节省停机模式的“启用条件”、“适用资源”和“触发效果”部分。
    专有网络 选择已创建的专有网络。
    说明ECS控制台入口基于实例创建伸缩组时,弹性伸缩自动填入组内实例配置信息来源、网络类型相关的信息,请保持默认,无需修改。
    选择交换机 选择专有网络后必须选择交换机。一个交换机只能属于一个可用区,您可以指定多个属于不同可用区的交换机,从而达到多可用区的效果。多可用区可以规避单可用区库存不足的风险,提高扩容成功率。
    说明ECS控制台入口基于实例创建伸缩组时,弹性伸缩自动填入组内实例配置信息来源、网络类型相关的信息,请保持默认,无需修改。
    添加已有实例 如果伸缩组类型ECS,且组内实例配置信息来源启动模板选择已有实例时,支持配置该项。

    如果同时设置期望实例数并添加已有实例,期望实例数会自动增加。例如,创建伸缩组时设置期望实例数为1,并添加2台已有实例,伸缩组创建完成后,2台已有实例添加至伸缩组,然后期望实例数变为3。

    您可以将已有实例的生命周期托管给伸缩组,选择将实例的生命周期托管给伸缩组复选框即可。
    • 如果托管给伸缩组,添加的已有实例因处于不健康状态等原因被自动移出伸缩组,或者被手动移出伸缩组时,会被自动释放。
    • 如果未托管给伸缩组,添加的已有实例移出伸缩组时,不会被自动释放。
    说明 支持将包年包月实例添加至伸缩组,但不支持托管包年包月实例。
    关联传统型负载均衡CLB(原SLB) 伸缩组关联CLB实例后,加入伸缩组的实例会自动添加为CLB实例的后端服务器,处理来自CLB实例转发的访问请求。

    您可以指定实例需要加入的服务器组,支持以下两种服务器组:

    • 默认服务器组:用来接收前端请求的实例,如果监听没有设置虚拟服务器组或主备服务器组,默认将请求转发至默认服务器组中的实例。
    • 虚拟服务器组:当您需要将不同的请求转发到不同的后端服务器上时,或需要通过域名和URL进行请求转发时,可以选择使用虚拟服务器组。

    如果您同时指定了默认服务器组和多个虚拟服务器组,实例会同时添加至这些服务器组中。

    说明 一个伸缩组支持关联的CLB实例和虚拟服务器组数量有限。如需查看或手动申请提升配额值,请前往配额中心
    关联应用型负载均衡ALB服务器组 网络类型专有网络时,支持配置该项。伸缩组关联ALB服务器组后,加入伸缩组的实例会自动添加为ALB服务器组的后端服务器,处理ALB实例分发的访问请求。您还需指定后端服务器的端口和权重,权重默认为50。权重越高,实例将被分配到越多的访问请求。如果权重为0,则实例不会收到访问请求。

    如果您为伸缩组关联了多个ALB服务器组,加入伸缩组的实例会同时添加至这些服务器组中。

    说明 一个伸缩组支持关联的ALB服务器组数量有限。如需查看或手动申请提升配额值,请前往配额中心
    关联RDS数据库实例 伸缩组类型ECS,支持配置该项。伸缩组关联RDS数据库实例后,加入伸缩组的ECS实例的内网IP会自动加入RDS数据库实例的访问白名单,允许ECS实例和RDS数据库实例内网通信。
    说明 一个伸缩组支持关联的RDS数据库实例数量有限。如需查看或手动申请提升配额值,请前往配额中心
    设置消息接收通知 在伸缩活动成功、失败或者被拒绝时,弹性伸缩支持通过短信、站内信和邮件发送消息通知。更多信息,请参见设置消息接收通知
    同步伸缩组报警规则到云监控 该功能仅支持创建伸缩组时开启或关闭。开启该功能后,系统将为伸缩组新建并关联一个云监控应用分组,伸缩组上的报警规则将在云监控控制台同步显示。
  6. 创建伸缩组对话框,单击关闭
    新创建的伸缩组出现在伸缩组列表中,且伸缩组处于停用状态。启用伸缩组才能进行正常的弹性扩张和弹性收缩。具体操作,请参见启用或停用伸缩组

启用或停用伸缩组

  • 如果伸缩组处于停用状态,并且该伸缩组已通过指定启动模板方式或者创建并启用伸缩配置方式指定了实例配置来源。您需要启用伸缩组才能进行正常的弹性扩张和弹性收缩。
  • 如果伸缩组处于启用状态,并且您暂时不需要该伸缩组执行伸缩活动,您可以停用该伸缩组。停用伸缩组之前发生的伸缩活动会继续完成,而停用伸缩组之后发生的伸缩活动会被拒绝。
  1. 登录弹性伸缩控制台
  2. 在左侧导航栏中,单击伸缩组管理
  3. 在顶部菜单栏处,选择地域。
  4. 启用或停用伸缩组。
    • 启用伸缩组:找到待启用的伸缩组,在对应操作列下,单击more > 启用。启用成功后,伸缩组进入启用状态。
    • 停用伸缩组:找到待停用的伸缩组,在对应操作列下,单击more > 停用,在停用伸缩组对话框再次单击确定。停用成功后,伸缩组进入停用状态。

查看或修改伸缩组

  • 伸缩组创建完成后,您可以查看伸缩组的基本信息、实例列表、配置来源、伸缩规则、生命周期挂钩等,了解已有伸缩组的基本配置和已有ECS实例或ECI实例的基本信息。
  • 如果当前伸缩组属性不再满足需求时,您也可以直接修改伸缩组的属性,无需重新创建伸缩组。修改伸缩组属性时,您需要注意以下事项:
    属性 说明
    组内最大实例数、最小实例数或期望实例数
    • 如果修改了组内最大实例数和组内最小实例数,导致伸缩组内的ECS实例或ECI实例数量超过上限或低于下限,弹性伸缩会自动加入或移出ECS实例或ECI实例,保证ECS实例或ECI实例数量满足要求。
    • 创建伸缩组未设置期望实例数参数时,如果您手动修改了组内的最小实例数,导致当前伸缩组内实例数量小于修改后的最小实例数,则弹性伸缩会默认自动触发一次扩容活动。
    • 创建伸缩组设置了期望实例数参数时,如果您手动修改了组内的期望实例数,导致当前伸缩组内实例数量与修改后的期望实例数不一致,则弹性伸缩会自动触发一次扩缩容活动。
    关联的RDS数据库 如果修改了关联的RDS云数据库,且伸缩组中存在ECS实例,请根据业务情况选择是否选中挂载或卸载RDS实例时,伸缩组现有的实例添加或移出所选RDS实例的白名单(只针对本次挂载或卸载的RDS实例)
    • 选中:自动在本次挂载的RDS实例的白名单添加伸缩组现有的ECS实例,或者自动在本次卸载的RDS实例的白名单移出伸缩组现有的ECS实例。
    • 不选中:本次挂载或卸载的RDS实例的白名单不发生变化,维持原样。
    关联负载均衡 如果要修改关联的负载均衡,负载均衡类型包括ALB服务器组、CLB实例及其后端服务器组,且伸缩组中存在ECS实例或ECI实例,请根据业务情况选择是否选中挂载或卸载负载均衡类型时,伸缩组现有的实例添加或移出所选负载均衡类型(只针对本次挂载或卸载的负载均衡类型
    • 选中:自动在本次挂载的负载均衡服务器组中添加伸缩组现有的ECS实例或ECI实例,或者自动在本次卸载的负载均衡服务器组中移出伸缩组现有的ECS实例或ECI实例。
    • 不选中:本次挂载或卸载的负载均衡服务器组不发生变化,维持原样。
  1. 登录弹性伸缩控制台
  2. 在左侧导航栏中,单击伸缩组管理
  3. 在顶部菜单栏处,选择地域。
  4. 查看或修改伸缩组。
    操作项 步骤
    查看伸缩组
    1. 在伸缩组管理列表下,查看伸缩组信息。
      例如,您可以查看伸缩组名称/ID、伸缩组类型、状态、组内实例配置信息来源以及网络配置等信息。
      说明 异常的伸缩组会在该伸缩组对应的状态列显示提示信息,您可以将鼠标移至图标图标处,会显示相应报错信息供您快速定位并解决问题。
    2. 找到待查看的伸缩组,在对应操作列下,单击查看详情
    3. 在页面上方选择不同的页签,查看伸缩组的详细信息。

      例如,您可以查看伸缩组的基本信息、实例配置来源、实例列表、伸缩组监控、伸缩规则与伸缩活动、生命周期挂钩、消息通知或滚动升级的详细信息。

    修改伸缩组
    1. 在伸缩组管理列表下,找到待修改的伸缩组,在对应操作列,单击修改
    2. 修改伸缩组的属性。

      伸缩组属性的具体说明,请参见配置伸缩组

    3. 单击确认

删除伸缩组

  • 开启伸缩组删除保护后,您不能在控制台或者通过API删除该伸缩组,可以有效避免误删除伸缩组。
  • 如果您不再需要某个伸缩组,可以删除该伸缩组来空出伸缩组配额。删除伸缩组会同时删除组内的伸缩配置和伸缩规则。如果伸缩组内存在运行中的ECS实例或ECI实例,弹性伸缩会先停止ECS实例或ECI实例,然后移出所有手动添加的ECS实例或ECI实例并释放所有自动创建的ECS实例或ECI实例。
    说明 删除伸缩组前,请确保伸缩组未开启删除保护功能。如果伸缩组已开启删除保护,请先关闭删除保护后再删除伸缩组。
  1. 登录弹性伸缩控制台
  2. 在左侧导航栏中,单击伸缩组管理
  3. 在顶部菜单栏处,选择地域。
  4. 找到待删除的伸缩组,在对应操作列下,选择menu>设置伸缩组删除保护状态
  5. 在弹出的对话框,查看伸缩组删除保护功能是否开启。
    • 已开启:关闭伸缩组删除保护开关,然后单击确定
    • 已关闭:单击确定
  6. 在待删除伸缩组对应的操作列下,单击删除
  7. 单击确定
    伸缩组进入删除中状态,删除完成后伸缩组即从伸缩组管理列表中消失。