O Auto Scaling pode usar a métrica de QPS por servidor backend de um grupo de servidores do Application Load Balancer (ALB) para acionar atividades de dimensionamento que adicionam ou removem instâncias ECS ou ECI automaticamente.
Conceitos principais
Application Load Balancer (ALB): serviço de balanceamento de carga na camada de aplicação para tráfego HTTP, HTTPS e QUIC, com alta elasticidade e grande capacidade de processamento. O que é o Application Load Balancer?.
Query per Second (QPS): número de requisições HTTP/HTTPS que uma instância ALB processa por segundo (apenas listeners da camada 7). QPS por servidor backend = QPS total do ALB / número de instâncias backend no grupo de servidores.
Casos de uso
Quando o ALB distribui tráfego de clientes para instâncias ECS ou ECI backend, um aumento repentino no QPS exige scale-out rápido para manter o desempenho e a estabilidade.
Configure uma tarefa acionada por evento com base na métrica de QPS por servidor backend para acionar atividades de dimensionamento automaticamente:
Quando o QPS por servidor backend ultrapassa o limiar, o scale-out adiciona instâncias para reduzir a carga por instância e melhorar o tempo de resposta.
Quando o QPS por servidor backend fica abaixo do limiar, o scale-in remove instâncias para reduzir custos.
Pré-requisitos
Se você usa um usuário RAM, conceda permissões para gerenciar recursos do ALB. Conceder permissões a um usuário RAM.
Uma VPC e vSwitches criados. Criar uma VPC e uma vSwitch.
Etapa 1: Configurar um Application Load Balancer
Crie uma instância do Application Load Balancer (ALB).
Criar e gerenciar instâncias ALB.
Parâmetros principais:
Parâmetro
Descrição
Exemplo
Instance Name
Insira um nome para a instância.
alb-qps-instance
VPC
Selecione a VPC para a instância.
vpc-test****-001
Zone
Selecione uma zona e uma vSwitch.
NotaO ALB suporta implantação multizona. Selecione pelo menos duas zonas para alta disponibilidade quando disponível.
Zona: Hangzhou Zone G e Hangzhou Zone H
vSwitch: vsw-test003 e vsw-test002
Crie um grupo de servidores ALB.
Criar e gerenciar grupos de servidores.
Parâmetros principais:
Parâmetro
Descrição
Exemplo
Server Group Type
Selecione um tipo de grupo de servidores. Selecione Server para adicionar instâncias ECI como servidores backend.
Server
Server Group Name
Insira um nome para o grupo de servidores.
alb-qps-servergroup
VPC
Selecione uma VPC. Apenas servidores nesta VPC podem participar do grupo de servidores.
ImportanteSelecione a mesma VPC usada para a instância ALB na Etapa 1.
vpc-test****-001
Configure um listener.
No painel de navegação à esquerda, selecione .
Na página Instance, localize a instância ALB (alb-qps-instance) e clique em Create Listener na coluna Actions.
No assistente Configure Listener, defina Listener Port como 80, mantenha as configurações padrão para os demais parâmetros e clique em Next.
NotaEste exemplo define Listener Port como 80. Use uma porta diferente, se necessário.
No assistente Select Server Group, selecione o grupo de servidores criado na Subetapa 2 (alb-qps-servergroup) na lista Server Group e clique em Next.
No assistente Configuration Review, confirme as configurações e clique em OK. Em seguida, clique em OK.
Após concluir a configuração, clique na aba Instance Details para obter o Elastic IP Address (EIP) da instância ALB. Na aba Basic Information, verifique que o IP Mode é Fixed IP e que um Elastic IP Address está atribuído a cada zona. Por exemplo, Hangzhou Zone G e Hangzhou Zone H possuem, cada uma, um EIP exclusivo.
Etapa 2: Criar um grupo de dimensionamento e associar um grupo de servidores ALB
Este exemplo usa um grupo de dimensionamento ECI. O procedimento para grupos de dimensionamento ECS é semelhante.
Crie um grupo de dimensionamento.
Criar um grupo de dimensionamento. Parâmetros principais (configure os demais conforme necessário):
Parâmetro
Descrição
Exemplo
Scaling Group Name
Insira um nome para o grupo de dimensionamento.
alb-qps-scalinggroup
Type
O tipo de instância para capacidade computacional no grupo de dimensionamento.
ECI
Instance Configuration Source
A configuração usada para criar as instâncias.
Create from Scratch
Minimum Number of Instances
O Auto Scaling adiciona instâncias quando a quantidade fica abaixo deste valor.
1
Maximum Number of Instances
O Auto Scaling remove instâncias quando a quantidade ultrapassa este valor.
5
VPC
Selecione a mesma VPC da instância ALB.
vpc-test****-001
vSwitch
Selecione as mesmas vSwitches da instância ALB.
vsw-test003 e vsw-test002
Associate ALB and NLB Server Groups
Selecione o grupo de servidores ALB criado na Etapa 1. Defina a porta como 80.
Grupo de servidores: sgp-****/alb-qps-servergroup
Porta: 80
Crie e ative uma configuração de dimensionamento.
Criar uma configuração de dimensionamento para instâncias ECI. Parâmetros principais (configure os demais conforme necessário):
Parâmetro
Descrição
Exemplo
Container Group Configuration
Selecione as especificações de vCPU e memória para o grupo de contêineres.
CPU: 2 vCPU
Memória: 4 GiB
Container Configuration
Selecione uma imagem de contêiner e a versão da imagem.
Imagem do contêiner: registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx
Versão da imagem: latest
Ative o grupo de dimensionamento.
Ativar ou desativar um grupo de dimensionamento.
NotaAtivar o grupo de dimensionamento aciona um scale-out que cria uma instância ECI (o mínimo está definido como 1).
Verifique se a instância ECI e seu contêiner estão em execução no grupo de dimensionamento.
Acesse o EIP da instância ALB da Etapa 1 para confirmar que o serviço
nginxestá acessível. A página padrão de boas-vindas do nginx (Welcome to nginx!) indica que a implantação foi bem-sucedida.
Etapa 3: Configurar uma tarefa acionada por evento com base em QPS
Faça login no console do Auto Scaling.
Crie regras de dimensionamento.
Crie duas regras de dimensionamento simples: Add1 (adiciona uma instância) e Reduce1 (remove uma instância). Gerenciar regras de dimensionamento.
Crie tarefas acionadas por evento.
Na página Scaling Groups, localize o grupo de dimensionamento (alb-qps-scalinggroup) e clique em View Details na coluna Actions.
Selecione e clique em Create Event-Triggered Task.
Crie duas tarefas acionadas por evento: Alarm1 (associada a Add1) e Alarm2 (associada a Reduce1). Gerenciar tarefas acionadas por evento.
Tarefa acionada por evento (Alarm1): em Metric Name, selecione (ALB) QPS per Backend Server. Defina a condição como Average >= 100 times/s.
NotaQPS por servidor backend = QPS total / número de servidores backend
Para os demais parâmetros, defina Monitoring Type como System Monitoring e Statistical Period como 1 minute. Configure a tarefa para acionar um alarme após 3 ocorrências consecutivas. Em Effective Period, selecione Not Set. Em Scaling Rule, selecione Add1.
Tarefa acionada por evento (Alarm2): em Metric Name, selecione (ALB) QPS per Backend Server. Defina a condição como Average < 50 times/s, defina Statistical Period como 1 minute e configure a tarefa para acionar um alarme após 3 ocorrências consecutivas. Em Scaling Rule, selecione Reduce1.
Verificar o monitoramento de QPS
Use uma ferramenta de teste de carga (Apache JMeter, ApacheBench ou wrk) para enviar 500 QPS ao EIP da instância ALB da Etapa 1. Observe os resultados na página Monitoring no console do Auto Scaling:
Quando o QPS ultrapassa o limiar de alarme, a tarefa acionada por evento dispara o scale-out. O Auto Scaling adiciona instâncias ECI uma a uma, reduzindo a carga por instância até que o QPS por servidor backend diminua.