如果您需要在业务需求量有波动时自动增加或减少ECS实例的数量,则您可以通过配置伸缩组来自动调整业务计算能力(即实例数量)。您可以基于已有的ECS实例创建伸缩组,伸缩组创建完成后,系统会为您创建一个默认的伸缩配置,简化启用伸缩组前的准备操作,让您更快地使用伸缩组开始扩缩容。本文介绍如何基于ECS实例创建伸缩组。
前提条件
如果需要为伸缩组关联传统型负载均衡CLB(原SLB)实例,请确保满足以下条件:
您需要持有一个或多个处于运行中状态的CLB实例。具体操作,请参见创建和管理CLB实例。
CLB实例和伸缩组必须位于同一地域。
如果CLB实例和伸缩组的网络类型均为专有网络,则必须位于同一专有网络。
当CLB实例的网络类型为经典网络,伸缩组的网络类型为专有网络时,如果CLB实例的后端服务器组中包含专有网络ECS实例或ECI实例,该实例必须与伸缩组位于同一专有网络。
CLB实例至少需要配置一个监听。具体操作,请参见CLB监听概述。
CLB实例必须开启健康检查。具体操作,请参见配置和管理CLB健康检查。
如果需要为伸缩组关联应用型负载均衡ALB服务器组,请确保满足以下条件:
伸缩组的网络类型必须为VPC,且与ALB服务器组处于同一VPC。
ALB服务器组必须处于可用状态。
如果需要为伸缩组关联RDS实例,请确保满足以下条件:
您需要持有一个或多个处于运行中状态的RDS实例。更多信息,请参见云数据库RDS简介。
RDS实例和伸缩组必须位于同一地域。
背景信息
在基于ECS实例创建伸缩组时,不限制作为组内实例配置信息来源的ECS实例的计费方式。包年包月实例、按量付费实例、抢占式实例均可用于创建伸缩组。创建完成后,系统会自动创建一个默认伸缩配置,该伸缩组采用的计费方式为按量付费。更多伸缩组信息,请参见伸缩组概述。
默认伸缩配置中采用的镜像为已有实例使用的基础镜像,而不是为实例创建一个自定义镜像。如果您希望伸缩配置中采用的镜像包括已有实例的当前所有系统配置和数据,请自行为实例创建自定义镜像,然后使用该自定义镜像更新伸缩配置,具体操作,请参见更新伸缩配置中的镜像。
伸缩组创建完成后,支持自动创建ECS实例和手动添加已有ECS实例。自动创建ECS实例时,计费方式仅支持按量付费、抢占式实例;手动添加已有ECS实例时,不限制计费方式,包年包月、按量付费、抢占式实例均可。更多使用伸缩组时的限制说明,请参见使用限制。
操作步骤
进入创建伸缩组页面。
登录ECS管理控制台。
在左侧导航栏,选择 。
在顶部菜单栏左上角处,选择地域。
找到目标ECS实例,在操作列,单击
。
在创建伸缩组页面中,完成伸缩组设置,然后单击确认。
相比从零开始,在基于ECS实例创建伸缩组时,弹性伸缩自动填入以下信息:
组内实例配置信息来源:已选择选择已有实例。系统提取已有ECS实例的配置信息创建一个默认伸缩配置,作为自动创建ECS实例的模板,提取的配置信息包括实例的实例规格、基础镜像、网络类型、安全组、登录密码、标签等。如果某些配置不符合业务要求,您可以在伸缩组创建完成后根据需要修改配置,例如修改伸缩配置的镜像等。
网络类型:已选择和已有ECS实例一致的网络类型。
专有网络:已选择和已有ECS实例一致的专有网络(如网络类型为专有网络)。
选择交换机:已选择和已有ECS实例一致的交换机(如网络类型为专有网络)。
伸缩组所有配置项的说明如下表所示,已经自动填入的信息请保持默认,无需修改。关于配置伸缩组更多信息,请参见配置伸缩组。
配置项
说明
伸缩组名称
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删除该伸缩组,有效避免误删除伸缩组。
实例的健康检查
开启健康检查后,伸缩组会定期检查实例的运行状态,如果发现一台实例未处于运行中状态,则判定为不健康并移出该实例。更多信息,请参见伸缩组内实例的生命周期。
组内最小实例数
当前实例数量低于下限时,伸缩组会自动添加实例,使得伸缩组内的实例数量等于下限。
组内最大实例数
当前实例数量超过上限时,伸缩组会自动移出实例,使得伸缩组内的实例数量等于上限。
组内期望实例数
填写组内期望实例数即可开启期望实例数功能,伸缩组会自动将实例数量维持在期望实例数。更多信息,请参见期望实例数。
说明新建伸缩组时或者修改已创建伸缩组时,您都可以通过设置组内期望实例数参数值来自动开启期望实例数功能。如果需要关闭该功能,则可以通过API方式来关闭,更多信息,请参见ModifyScalingGroup - 修改一个伸缩组。
实例最大生命时长(秒)
实例在伸缩组中存活的最大时间,伸缩组中超过最大生命时长的实例将自动创建新实例来替换该实例。
仅伸缩组类型为ECS时,支持设置该参数。
默认冷却时间(秒)
单位为秒,伸缩组发生伸缩活动后的默认冷却时间。在冷却时间内,伸缩组会拒绝由报警任务触发的伸缩活动请求,其他类型任务触发的伸缩活动可以绕过冷却时间立即执行,例如手动执行任务、定时任务。
网络类型
仅专有网络伸缩组支持扩缩容策略、实例回收模式、专有网络、选择交换机、关联负载均衡ALB、NLB服务器组配置。
说明从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实例。
因为库存不足或者账号欠费等原因,停用的实例在加入伸缩组时可能会失败,失败后该实例会被释放。
停机回收模式的作用受按量付费实例节省停机模式的影响,更多信息,请参见按量付费实例节省停机模式的“启用条件”、“适用资源”和“触发效果”部分。
强制释放模式:选择该回收模式,在弹性收缩活动中,系统会强制释放运行中(Running)的实例。强制释放实例相当于断电操作,会导致该实例内存以及存储中的临时数据被擦除,数据无法恢复,请您谨慎选择。
专有网络
选择已创建的专有网络。
说明从ECS控制台入口基于实例创建伸缩组时,弹性伸缩自动填入组内实例配置信息来源、网络类型相关的信息,请保持默认,无需修改。
选择交换机
选择专有网络后必须选择交换机。一个交换机只能属于一个可用区,您可以指定多个属于不同可用区的交换机,从而达到多可用区的效果。多可用区可以规避单可用区库存不足的风险,提高扩容成功率。
说明从ECS控制台入口基于实例创建伸缩组时,弹性伸缩自动填入组内实例配置信息来源、网络类型相关的信息,请保持默认,无需修改。
创建伸缩组时需要指定专有网络和交换机,如果该伸缩组所使用的启动模板中也指定了专有网络和交换机,则在弹性扩容时,伸缩组中指定的专有网络和交换机会替换掉启动模板中指定的专有网络和交换机。即最终扩容出的ECS实例位于哪个可用区是由伸缩组中的交换机决定的,而不是由启动模板中的交换机决定。例如,创建伸缩组时:
专有网络选择VPC-A
交换机选择vSwitch-A
组内实例配置信息来源选择启动模板
其中,启动模板中的专有网络选择VPC-B、交换机选择vSwitch-B。
则伸缩组弹性扩容后,最终扩容出的ECS实例对应的专有网络和交换机分别为VPC-A和vSwitch-A。
添加已有实例
如果伸缩组类型为ECS,且组内实例配置信息来源为启动模板或选择已有实例时,支持配置该项。
如果同时设置期望实例数并添加已有实例,期望实例数会自动增加。例如,创建伸缩组时设置期望实例数为1,并添加2台已有实例,伸缩组创建完成后,2台已有实例添加至伸缩组,然后期望实例数变为3。
您可以将已有实例的生命周期托管给伸缩组,选择将实例的生命周期托管给伸缩组复选框即可。
如果托管给伸缩组,添加的已有实例因处于不健康状态等原因被自动移出伸缩组,或者被手动移出伸缩组时,会被自动释放。
如果未托管给伸缩组,添加的已有实例移出伸缩组时,不会被自动释放。
说明支持将包年包月实例添加至伸缩组,但不支持托管包年包月实例。
关联传统型负载均衡CLB(原SLB)
伸缩组关联CLB实例后,加入伸缩组的实例会自动添加为CLB实例的后端服务器,处理来自CLB实例转发的访问请求。
您可以指定实例需要加入的服务器组,支持以下两种服务器组:
默认服务器组:用来接收前端请求的实例,如果监听没有设置虚拟服务器组或主备服务器组,默认将请求转发至默认服务器组中的实例。
虚拟服务器组:当您需要将不同的请求转发到不同的后端服务器上时,或需要通过域名和URL进行请求转发时,可以选择使用虚拟服务器组。
如果您同时指定了默认服务器组和多个虚拟服务器组,实例会同时添加至这些服务器组中。
说明一个伸缩组支持关联的CLB实例和虚拟服务器组数量有限。如需查看或手动申请提升配额值,请前往配额中心。
关联负载均衡ALB、NLB服务器组
仅网络类型为专有网络时,支持配置该项。伸缩组关联ALB、NLB服务器组后,加入伸缩组的实例会自动添加为ALB、NLB服务器组的后端服务器,处理ALB、NLB实例分发的访问请求。您还需指定后端服务器的端口和权重,权重默认为50。权重越高,实例将被分配到越多的访问请求。如果权重为0,则实例不会收到访问请求。
如果您为伸缩组关联了多个ALB、NLB服务器组,加入伸缩组的实例会同时添加至这些服务器组中。
说明一个伸缩组支持关联的ALB、NLB服务器组数量有限。如需查看或手动申请提升配额值,请前往配额中心。
关联RDS数据库实例
仅伸缩组类型为ECS,支持配置该项。伸缩组关联RDS数据库实例后,加入伸缩组的ECS实例的内网IP会自动加入RDS数据库实例的访问白名单,允许ECS实例和RDS数据库实例内网通信。
说明一个伸缩组支持关联的RDS数据库实例数量有限。如需查看或手动申请提升配额值,请前往配额中心。
设置消息接收通知
在伸缩活动成功、失败或者被拒绝时,弹性伸缩支持通过短信、站内信和邮件发送消息通知。更多信息,请参见设置消息接收通知。
资源组
通过选择资源组,对伸缩组资源进行分组管理,实现资源的隔离显示和权限控制。更多信息,请参见通过资源组精细化管理伸缩组。
同步伸缩组报警规则到云监控
该功能仅支持创建伸缩组时开启或关闭。开启该功能后,系统将为伸缩组新建并关联一个云监控应用分组,伸缩组上的报警规则将在云监控控制台同步显示。
在弹出创建伸缩组对话框中,单击关闭。
在伸缩组管理页面中,找到新创建的伸缩组,在操作列选择
。启用伸缩组后,弹性伸缩根据组内实例配置信息来源、组内最小实例数等设置维护一组实例。例如,在组内最小实例数大于0时自动创建对应数量的ECS实例,确保组内ECS实例的数量不小于组内最小实例数。
相关操作
伸缩组创建完成后,您可以手动添加、移出或删除ECS实例,并通过定时任务、报警任务等方式实现自动扩缩容。