弹性伸缩支持使用ALB服务器组的单机QPS监控指标作为系统报警任务的触发条件,从而实现自动扩缩容ECS或ECI实例。本文将具体为您介绍自动扩缩容ECI实例的操作。
概念介绍
应用型负载均衡ALB(Application Load Balancer):是阿里云推出的专门面向HTTP、HTTPS和QUIC等应用层负载场景的负载均衡服务,具备超强弹性及大规模应用层流量处理能力。更多信息,请参见什么是应用型负载均衡ALB。
每秒查询数QPS(Query Per Second):是七层监听特有的概念,指负载均衡ALB每秒可以完成的HTTP(S)的查询(请求)的总数量。单机QPS指单个服务器的性能指标,表示负载均衡ALB每秒完成的客户请求总数量/后端服务器组的ECS或ECI总数量。
性能测试PTS(Performance Testing Service):是一款简单易用,具备强大的分布式压测能力的SaaS压测平台。更多信息,请参见什么是性能测试PTS。
应用场景
如果您的业务依托于ALB来统一承接并分配客户的请求流量(以每秒查询量QPS衡量),这些请求随后被导向至后端服务器集群(如ECS或ECI实例)进行处理。当发生请求QPS激增,为了维持服务的流畅与稳定,系统需敏捷扩容后端服务资源来应对。
基于以上场景,您可以通过为伸缩组配置基于单机QPS监控的报警任务,比如设置报警指标QPS的阈值等,自动触发弹性扩缩容活动,提高应用的高可用性能。该方案具有以下优势:
当单机QPS指标大于监控阈值时,触发弹性扩容活动,降低单机QPS负载,以提升系统的响应时间和稳定性。
当单机QPS指标小于监控阈值时,触发弹性缩容活动,自动减少实例数量,从而节省成本。
前提条件
如果您使用RAM用户,您需要为RAM用户授予ALB的操作或查看等权限。具体操作,请参见为RAM用户授权。
已创建专有网络VPC和交换机。具体操作,请参见创建专有网络和交换机。
步骤一:配置应用型负载均衡ALB
创建应用型负载均衡ALB。
具体操作,请参见创建应用型负载均衡。
主要配置参数说明如下:
配置
说明
示例
实例名称
输入自定义实例名称。
alb-qps-instance
VPC
选择实例所属的专有网络(VPC)。
vpc-test****-001
可用区
选择可用区和交换机。
说明应用型负载均衡支持多可用区部署,若当前地域支持2个及以上可用区,为保障业务高可用,请至少选择2个或2个以上可用区。
可用区:杭州 可用区G和杭州 可用区H
交换机:vsw-test003和vsw-test002
创建应用型负载均衡ALB服务器组。
具体操作,请参见创建和管理服务器组。
主要配置参数说明如下:
配置
说明
示例
服务器组类型
选择一种服务器组类型:选择服务器类型将按照ECI实例添加后端服务器。
服务器类型
服务器组名称
输入自定义服务器组名称。
alb-qps-servergroup
VPC
从VPC下拉列表中选择一个VPC,只有该VPC下的服务器可以加入到该服务器组。
重要该步骤中VPC参数选步骤1中新创建ALB实例时使用的VPC。
vpc-test****-001
配置监听。
在左侧导航栏,选择
。在实例页面,找到已创建的ALB实例(即alb-qps-instance),单击对应操作列下的创建监听。
在配置监听配置向导,监听端口选择80,其他参数保持默认选项即可,单击下一步。
说明本步骤中监听端口选择以80为例,您可以根据实际业务场景选择其他端口。
在选择服务器组配置向导,选择服务器类型下的后端服务器组为步骤2新创建的服务器组(即alb-qps-servergroup),然后单击下一步。
在配置审核配置向导,确认配置信息,单击提交,然后单击知道了。
完成配置后,单击实例详情页签,获取ALB实例的弹性公网IP。
步骤二:创建关联ALB服务器组的伸缩组
创建ECS类型的伸缩组与创建ECI类型伸缩组操作存在部分差异,请您以实际页面显示的参数配置为准,本步骤以创建ECI类型的伸缩组为例。
创建伸缩组。
具体操作,请参见创建伸缩组。在创建过程中,主要配置项参数说明如下,其他参数请根据实际需要设置。
配置项
说明
示例
伸缩组名称
输入自定义伸缩组名称。
alb-qps-scalinggroup
伸缩组类型
指定伸缩组内提供计算能力的实例类型。
ECI
组内实例配置信息来源
弹性伸缩使用该配置创建实例。
从零开始创建
组内最小实例数
当前实例数量低于下限时,伸缩组会自动添加实例,使得伸缩组内的实例数量等于下限。
1
组内最大实例数
当前实例数量超过上限时,伸缩组会自动移出实例,使得伸缩组内的实例数量等于上限。
5
专有网络
选择与ALB相同的专有网络(VPC)。
vpc-test****-001
选择交换机
选择与ALB相同的交换机。
vsw-test003和vsw-test002
关联负载均衡ALB、NLB服务器组
选择步骤一新创建的ALB服务器组。端口输入80。
服务器组:sgp-****/alb-qps-servergroup
端口:80
创建并启动伸缩配置。
具体操作,请参见创建伸缩配置(ECI实例)。在创建过程中,主要配置项参数说明如下,其他参数请根据实际需要设置。
配置项
说明
示例
容器组配置
选择容器组的规格(例如CPU和内存)。
CPU:2 vCPU
内存:4 GiB
容器配置
选择容器镜像和镜像版本。
容器镜像:registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx
镜像版本:latest
启用伸缩组。
具体操作,请参见启用或停用伸缩组。
说明启用伸缩组后,因伸缩组最小实例数为1,伸缩组会自动触发弹性扩容活动,自动创建1台ECI实例。
查看伸缩组内ECI实例及其容器的状态,确认容器已经处于运行中。
访问步骤一中获取的ALB实例的弹性公网IP,确认可以正常访问
nginx
服务。
步骤三:配置基于ALB单机QPS指标的报警任务
登录弹性伸缩控制台。
创建伸缩规则。
本步骤以创建2条简单规则类型的伸缩规则为例,即伸缩规则(Add1)为增加1台实例的扩容规则,伸缩规则(Reduce1)为减少1台实例的缩容规则。具体操作,请参见配置伸缩规则。
创建报警任务。
在伸缩组管理页面,找到已创建的伸缩组(alb-qps-scalinggroup),单击对应操作列的查看详情。
选择
,然后单击创建报警任务。本步骤以创建2条报警任务为例,即报警认任务(Alarm1)为关联扩容规则(Add1)的报警任务,报警认任务(Alarm2)为关联缩容规则(Reduce1)的报警任务。具体操作,请参见配置报警任务。
报警任务(Alarm1):报警指标选择(ALB)服务器组单机QPS,监控指标选择Average(平均值)>= 100次/s。
说明单机QPS=总QPS/后端服务器上的实例数量。
报警任务(Alarm2):报警指标选择(ALB)服务器组单机QPS,监控指标选择Average(平均值)< 50次/s。
验证QPS监控效果
登录PTS控制台。
配置ALB实例IP的压测场景。
在左侧导航栏,选择
,然后单击PTS压测。输入自定义场景名。
在场景配置页签中,单击添加压测节点。
说明直接单击添加压测节点,系统会默认选择添加HTTP压测节点。
输入压测API名称,然后输入压缩URL。
本步骤中压测API名称以nginx_api为例,压测URL以步骤一中获取的ALB实例的弹性公网IP为例。
单击施压配置页签,配置压测模式。
主要配置参数说明如下,其他参数保持默认选项即可。
配置项
说明
示例
压力模式
支持并发模式和RPS模式。
并发模式:指虚拟并发用户数。
RPS模式:指每秒的请求数。
RPS模式(Requests Per Second)
压测总时长
整个压测持续的时长。
10分钟
最大RPS
在RPS模式下,摸底的是单API接口的服务端吞吐能力,故需要给每个API设置最大RPS与起始RPS。
500
起始RPS
设置单个API的起始RPS。
500
单击下方的调试场景,进行场景调试。
调试成功后,单击关闭。
单击下方的保存去压测,在弹出的对话框中,执行周期选择为立即执行,然后单击确认,启动压测。
压测成功后,您可以在报告列表中选择自定义的场景名,查看压测报告、采样日志等。
查看QPS监控指标详情。
具体操作,请参见查看伸缩组内实例的监控指标。
从上图可以看出,启动了QPS为500的压测任务后,因单机QPS负载远超伸缩组的报警阈值,随即报警任务被触发,系统每次自动扩容1台ECI实例,单机负载随之减轻,QPS值减小。