本文描述了如何快速配置弹性伸缩,来自动实现ECI实例的增加或减少,帮助您快速上手弹性伸缩。
背景信息
本文以A公司的业务场景为例,为您展示如何快速配置弹性伸缩。不同业务场景,所需的操作不同,具体如下表所示。如果您想实现下表中所有的业务需求,请依次执行本文操作步骤即可。
业务场景 | 业务需求描述 | 必选操作步骤 |
---|---|---|
日常运行,且业务量无明显波动时,需要2台ECI实例。 | 需求一:最少需要2台ECI实例(CPU为4 vCPU,内存为8 GiB),来满足日常需求。 | |
日常运行,但公司可能存在突发的高业务请求量,无法确定此情况下需要的实例数量。 |
| |
每天存在业务高峰期(18:00~22:00),需要新增1台ECI实例。 |
|
准备工作
如果您初次使用弹性伸缩,您需要完成以下准备工作:
- 已创建服务关联角色AliyunServiceRoleForAutoScaling。
- 如果您使用RAM用户,您还需要为RAM用户添加AliyunESSFullAccess权限。
具体操作,请参见管理弹性伸缩服务关联角色。
步骤一:创建伸缩组
伸缩组是弹性伸缩的核心单元,用来管理满足该公司业务需求的一组实例。弹性伸缩将会在该伸缩组内自动增加或减少实例。
- 登录弹性伸缩控制台。
- 在左侧导航栏中,单击伸缩组管理。本步骤中以前往伸缩组列表页面操作为例。如果在当前地域下没有弹性伸缩资源,登录控制台后会显示欢迎页面,您也可以根据页面提示操作。
- 在顶部菜单栏处,选择地域。
- 在页面左上角,单击创建伸缩组。
- 完成伸缩组配置,然后单击确认。
本示例中采用以下配置,未提及的配置保持默认即可。
配置项 示例 描述 伸缩组名称 MyFirstECIScalingGroup 无 伸缩组类型 ECI 伸缩组内的实例类型为ECI实例。 组内实例配置信息来源 从零开始创建 伸缩组创建完成后,您需要继续创建伸缩配置。 组内最小实例数 2 伸缩组内最少有2台ECI实例,才能满足A公司的需求一。
当伸缩组内ECI实例不足2台时,弹性伸缩会自动创建ECI实例,使伸缩组内的实例数量等于2台。
组内最大实例数 5 伸缩组内最多有5台ECI实例,多出的ECI实例会被自动移出,有助于控制成本。 专有网络 vpc-bp1jmxxau0lur929p**** 伸缩组的专有网络和交换机。如需创建专有网络和交换机,请参见搭建IPv4专有网络。 选择交换机 vsw-bp155oak33mqngov2**** - 在弹出的创建伸缩组对话框,单击关闭。
步骤二:创建伸缩配置
伸缩配置是扩容时ECI实例使用的模板,包括实例规格、存储、公网IP、安全组等配置信息。弹性伸缩使用该伸缩配置创建具有相同配置的ECI实例。
- 找到待操作的伸缩组,选择任一种方式打开伸缩组详情页面。
- 在伸缩组名称/ID列,单击伸缩组ID。
- 在操作列,单击查看详情。
- 在页面上方,单击实例配置来源页签。
- 在伸缩配置页签下,单击创建伸缩配置。
- 完成基础配置和其他配置(选填)两个页面的参数配置,然后在确认配置页面中,单击确认创建。
本示例中采用以下配置,未提及的配置保持默认即可。
配置页面 配置项 示例 描述 基础配置 付费模式 按量付费 弹性伸缩服务免费,但是加入伸缩组的ECI实例需要按ECI的定价支付费用。更多信息,请参见计费概述。 安全组 sg-bp18kz60mefsicfg**** 选择您提前创建好的安全组。如需创建安全组,请参见创建安全组。 容器组配置 - CPU:4 vCPU
- 内存:8 GiB
- 名称:container-group-a
容器组中的所有容器共享容器组的资源。 说明 本示例中默认不开启成本优化功能,更多信息,请参见使用ECI类型伸缩组的成本优化功能。容器配置 - 容器名称:container-1
- 镜像:
- 容器镜像:在常用镜像页签下选择eci_open/centos
- 镜像版本:7
- 镜像拉取策略:支持总是拉取和按需拉去两种策略。
- 启动命令:
- 可执行命令:sleep
- 参数:999999
容器上运行的镜像及容器的启动命令。 其他配置(选填) 伸缩配置名称 MyFirstECIScalingConfiguration 无 - 在伸缩配置建立成功对话框,单击启用配置。
- 在选用伸缩配置对话框,单击确定。
在一个伸缩组内,您必须启用一个伸缩配置。启用伸缩配置后,该伸缩配置处于生效状态。
- 在启用伸缩组对话框,单击确定。
您必须启用伸缩组。启用伸缩组后,弹性伸缩才会按照您的配置实现弹性扩张和收缩。
说明 此时,弹性伸缩会自动创建2台ECI实例,满足了A公司的需求一。如需查看具体实例,请参见查询实例列表。
步骤三:创建伸缩规则
伸缩规则用来指定每次伸缩活动的规则,例如增加或者减少ECI实例的数量,或者智能设置伸缩组的最大或最小实例数。
本示例中,您需要针对两种伸缩场景设置两个伸缩规则:
- 弹性扩张:增加1台ECI实例。
- 弹性收缩:减少1台ECI实例。
创建伸缩规则后,您可以结合业务场景,选择方式触发伸缩活动。例如,手动执行伸缩规则,或者通过报警任务或定时任务自动执行伸缩规则。
- 在页面上方,单击伸缩规则与报警任务页签。
- 在伸缩规则页签下,创建一个弹性扩张的伸缩规则。
- 在伸缩规则页签下,创建一个弹性收缩的伸缩规则。
步骤四:创建报警任务
报警任务通过监控特定的监控指标,对数据指标进行实时的统计,当统计值满足您指定的报警条件时,触发报警并执行您指定的伸缩规则。本示例中,您可以针对需求二和需求三分别设置报警任务,具体如下:
- 需求二:设置报警任务EventTriggeredECIScalingOut,在伸缩组内CPU使用率不小于70%时,自动执行伸缩规则Add1,增加1台ECI实例。
- 需求三:设置报警任务EventTriggeredECIScalingIn,在伸缩组内CPU使用率不大于20%时,自动执行伸缩规则Remove1,减少1台ECI实例。
- 在页面上方,单击伸缩规则与报警任务页签,再单击定时/报警任务页签。
- 单击报警任务(系统)页签。本示例中,报警任务使用系统定义好的系统监控项,即监控指标。如果您单击报警任务(自定义)页签,创建报警任务,您需要将自有的监控系统中的自定义监控指标上报至云监控。更多信息,请参见自定义监控报警任务。
- 创建一个弹性扩张的报警任务。
- 创建一个弹性收缩的报警任务。
步骤五:创建定时任务
- 需求四:设置定时任务ScheduledECIScalingOut,在高峰期前,实现自动增加1台ECI实例。
- 需求五:设置定时任务ScheduledECIScalingIn,在高峰期结束后,实现自动减少1台ECI实例。
- 在页面上方,单击伸缩规则与报警任务页签。
- 单击定时/报警任务页签。
- 在定时任务页签下,创建一个弹性扩张的定时任务。
- 在定时任务页签下,创建一个弹性收缩的定时任务。
执行结果
弹性伸缩会按照您的配置,在以下场景自动扩缩容ECI实例:
- 伸缩组启用后,弹性伸缩自动增加2台ECI实例,满足需求一。
- 如果伸缩组内CPU使用率不小于70%时,增加1台ECI实例,满足需求二。
- 如果伸缩组内CPU使用率不大于20%时,减少1台ECI实例,满足需求三。
- 每天17:55新增1台ECI实例,满足需求四。
- 每天22:05减少一台ECI实例,满足需求五。
您可以在伸缩组的实例列表页签查看实例,自动创建出的ECI实例配置和伸缩配置保持一致。具体操作,请参见查询实例列表。
