Use o Auto Scaling para gerenciar instâncias ECS e instâncias gerenciadas (servidores não Alibaba Cloud registrados pelo Cloud Assistant). Instale o agente do CloudMonitor nas instâncias gerenciadas, adicione-as a um grupo de dimensionamento e o Auto Scaling monitorará todas as instâncias centralmente, dimensionando automaticamente as instâncias ECS com base nas métricas de monitoramento.
Pré-requisitos
Uma conta Alibaba Cloud. Caso ainda não tenha uma, crie uma conta Alibaba Cloud.
Um servidor não Alibaba Cloud com acesso à internet pública.
Cenários
Use esta solução se você executa aplicações sem estado em servidores não Alibaba Cloud e enfrenta dificuldades com o dimensionamento manual devido a flutuações significativas de tráfego.
Após registrar servidores não Alibaba Cloud como instâncias gerenciadas e adicioná-los a um grupo de dimensionamento, o Auto Scaling monitora todas as instâncias e dimensiona automaticamente as instâncias ECS conforme as alterações nas métricas:
Em picos de tráfego, aumenta automaticamente as instâncias ECS para lidar com a carga elevada.
Em períodos de baixa demanda, reduz automaticamente as instâncias ECS para economizar custos.
Conceitos
Principais conceitos:
|
Parâmetro |
Descrição |
Link relacionado |
|
Instância gerenciada |
Servidor não Alibaba Cloud registrado pelo Cloud Assistant. Após o registro, a instância pode usar o Cloud Assistant, o Auto Scaling, o CloudOps Orchestration Service e o Alibaba Cloud DevOps. |
|
|
Agente do Cloud Assistant |
Executa comandos do Cloud Assistant em instâncias Alibaba Cloud e não Alibaba Cloud. |
|
|
Agente do CloudMonitor |
Instale em qualquer host (instância ECS, VM de terceiros ou máquina física) para ativar o monitoramento de hosts do CloudMonitor. |
Procedimento
Etapa 1: Registrar instâncias não Alibaba Cloud
Prepare os servidores não Alibaba Cloud para registro. Este exemplo usa três servidores. managed instances.
-
Crie um código de ativação.
No console ECS, crie um código de ativação para as instâncias gerenciadas, gere um script de instalação e salve-o. Step 1: Create an activation code. Exemplo de script de instalação para sistema
Linux (.deb):# Download the Cloud Assistant agent .deb package. sudo wget https://aliyun-client-assist.oss-accelerate.aliyuncs.com/linux/aliyun_assist_latest.deb # Install the latest version of the Cloud Assistant agent. sudo dpkg -i aliyun_assist_latest.deb # Register the managed instance. sudo aliyun-service --register --RegionId "cn-hangzhou" \ --ActivationCode "a-hz011wm7BNH3JnTMyx22****VJ6d" \ --ActivationId "A4C23294-D8E9-5591-87A2-CCA2****2AC9" -
Instale o agente do Cloud Assistant e registre as instâncias gerenciadas.
Execute o script de instalação em cada servidor não Alibaba Cloud para instalar o agente do Cloud Assistant e registrá-lo como instância gerenciada.
Faça login em um servidor não Alibaba Cloud.
-
Cole e execute o script de instalação. Essa ação instala o agente do Cloud Assistant e registra o servidor como instância gerenciada. O sistema atribui automaticamente um ID de instância.
Execute os comandos abaixo para baixar e instalar o agente do Cloud Assistant e, em seguida, use o código de ativação para registrar a instância gerenciada. Após o registro bem-sucedido, o sistema retorna o ID da instância gerenciada (por exemplo,
mi-hzxxx...xxx134).$ sudo wget https://aliyun-client-assist.oss-accelerate.aliyuncs.com/linux/aliyun_assist_latest.deb --2023-07-24 15:33:07-- https://aliyun-client-assist.oss-accelerate.aliyuncs.com/linux/aliyun_assist_latest.deb Resolving aliyun-client-assist.oss-accelerate.aliyuncs.com (aliyun-client-assist.oss-accelerate.aliyuncs.com)... 1xxx.xxx.xxx.xxx6 Connecting to aliyun-client-assist.oss-accelerate.aliyuncs.com (aliyun-client-assist.oss-accelerate.aliyuncs.com)|1xxx.xxx.xxx.xxx6|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 36237058 (35M) [application/octet-stream] Saving to: 'aliyun_assist_latest.deb' aliyun_assist_latest.deb 100%[============================================================>] 2023-07-24 15:33:09 (16.2 MB/s) – 'aliyun_assist_latest.deb' saved [36237058/36237058] $ sudo dpkg -i aliyun_assist_latest.deb Selecting previously unselected package aliyun-assist. (Reading database ... 72699 files and directories currently installed.) Preparing to unpack aliyun_assist_latest.deb ... Unpacking aliyun-assist (2.2.3.421) ... Setting up aliyun-assist (2.2.3.421) ... install linux aliyun-assist at /usr/local/share/aliyun-assist/2.2.3.421 ... install assist ok start assist ok need to install assist_daemon create ok start ok $ sudo aliyun-service --register --RegionId "cn-hangzhou" \ > --ActivationCode "a-hzxxx...xxxVi" \ > --ActivationId "3DC2F9xxx...xxxA667" register ok instance id: mi-hzxxx...xxx134 restart service
-
Visualize as instâncias gerenciadas.
Após o registro, acesse a página ECS Cloud Assistant no console ECS. Na aba Manage Instances, anote os IDs das instâncias. Neste exemplo, as três instâncias são nomeadas Test-01, Test-02 e Test-03.
NotaOs IDs das instâncias gerenciadas começam com
mi-, enquanto os IDs das instâncias ECS começam comi-.
Etapa 2: Instalar o agente do CloudMonitor
Faça login em uma instância gerenciada.
-
Execute o comando a seguir para instalar o agente do CloudMonitor:
ARGUS_VERSION=3.5.9.11 /bin/bash -c "$(curl -s https://cloudmonitor-agent.oss-cn-hangzhou.aliyuncs.com/Argus/agent_install_necs-1.8.sh)" -
Execute o comando abaixo para verificar o status do agente do CloudMonitor:
ps aux | grep argusagent | grep -v grepA saída a seguir confirma a instalação bem-sucedida.
root 12590 0.0 0.1 33440 6924 ? Ss 15:55 0:00 /usr/local/cloudmonitor/bin/argusagent -d root 12592 0.0 0.4 850972 16096 ? Sl 15:44 0:00 /usr/local/cloudmonitor/bin/argusagentNotaVocê também pode verificar a instalação na página Host Monitoring do console CloudMonitor, que exibe a utilização de CPU, uso de memória e uso de disco da instância gerenciada.
Etapa 3: Adicionar instâncias gerenciadas a um grupo de dimensionamento
Importante
Antes de começar:
Selecione métricas de monitoramento adequadas para seu grupo de dimensionamento e crie tarefas acionadas por eventos. Overview of event-triggered tasks.
Se um grupo de dimensionamento contiver instâncias ECS e gerenciadas, as tarefas acionadas por eventos usarão métricas agregadas de todas as instâncias. Como as instâncias gerenciadas suportam apenas métricas baseadas em agente, use métricas baseadas em agente para suas tarefas acionadas por eventos.
Adicione ou remova instâncias gerenciadas de um grupo de dimensionamento apenas manualmente. Elas não são liberadas após a remoção.
Procedimento
-
Crie um grupo de dimensionamento.
Apenas grupos de dimensionamento do tipo ECS suportam instâncias gerenciadas. Crie um grupo de dimensionamento do tipo ECS (por exemplo,
Scalinggroup_ecs). Create a scaling group. -
Crie e ative uma configuração de dimensionamento.
-
Ative o grupo de dimensionamento.
-
Crie regras de dimensionamento.
Crie duas regras de dimensionamento simples. Create a scaling rule.
Regra de scale-out (Add1): regra de dimensionamento para adicionar uma instância ECS.
Regra de scale-in (Reduce1): regra de dimensionamento para remover uma instância ECS.
-
Crie tarefas acionadas por eventos.
Crie duas tarefas acionadas por eventos usando a métrica (Agent) CPU Utilization para manter a utilização média da CPU entre 40% e 60%. Configure an event-triggered task.
Tarefa de scale-out (ScaleOutAlarm): Para a métrica (Agent) CPU Utilization, defina a condição como Average >= 60% e associe a tarefa à regra de scale-out (Add1). Essa configuração adiciona uma instância ECS quando a utilização média da CPU do grupo for igual ou superior a 60%.
Tarefa de scale-in (ScaleInAlarm): Para a métrica (Agent) CPU Utilization, defina a condição como Average <= 40% e associe a tarefa à regra de scale-in (Reduce1). Essa configuração remove uma instância ECS quando a utilização média da CPU do grupo for igual ou inferior a 40%.
-
Adicione manualmente as três instâncias gerenciadas ao grupo de dimensionamento.
ImportanteAdicione ou remova instâncias gerenciadas em um grupo de dimensionamento apenas manualmente.
Na página de detalhes do grupo de dimensionamento, clique em Instance Management.
Na aba Managed Instance, clique em Add Instance.
Na caixa de diálogo Add Instance exibida, selecione as instâncias desejadas e clique em
.-
Clique em Are you sure that you want to add.
Visualize as instâncias adicionadas na aba Managed Instance. Se o status mostrar In Service, as instâncias foram gerenciadas com sucesso.
Verificação
Cenário 1: Grupo com três instâncias gerenciadas ociosas
Quando as instâncias gerenciadas não têm carga, a utilização média da CPU cai abaixo de 40%, acionando o ScaleInAlarm. No entanto, o Auto Scaling não pode remover automaticamente instâncias gerenciadas:
-
No período das 22:01 às 22:07, a utilização média da CPU ficou abaixo de 40%. O ScaleInAlarm foi acionado, mas falhou na execução.
A página de detalhes da tarefa acionada por eventos mostra que **
ScaleInAlarmestá no estado Alarm. A regra de scale-in associada é Reduce1**. O gráfico de monitoramento indica que a média de utilização da CPU era de aproximadamente 0,7% às 22:07. Durante o intervalo das 22:01 às 22:07, o sistema rejeitou a atividade de scale-in e a contagem de instâncias permaneceu inalterada. Clique em View Rejection Reason para obter detalhes.
Cenário 2: Grupo com três instâncias gerenciadas sob alta carga
Se você usar uma ferramenta de teste de estresse (como lookbusy) para manter a utilização da CPU em aproximadamente 90% nas instâncias gerenciadas, a utilização média da CPU excederá 60%:
-
Entre 22:14 e 22:25, a utilização média da CPU ultrapassou 60%. O ScaleOutAlarm foi acionado e executado com sucesso.
A página de detalhes da tarefa acionada por eventos **
ScaleOutAlarmexibe o status Normal**. O gráfico de linhas de utilização da CPU na área de monitoramento mostra que a utilização média subiu para cerca de 90% após o início do teste de estresse e diminuiu gradualmente à medida que as atividades de scale-out eram executadas. -
No período das 22:14 às 22:25, uma atividade de scale-out adicionou duas instâncias ECS (total: cinco). O dimensionamento cessou após as 22:25, quando a utilização média da CPU se estabilizou entre 40% e 60%.
Na aba Scaling Activities, visualize o status de execução e os resultados de cada atividade de dimensionamento. Atividades de scale-out bem-sucedidas aumentaram o valor de Total Instances After Change de 3 para 5. Algumas atividades foram Rejected devido a regras inválidas (clique em View Rejection Reason para detalhes).
Cenário 3: Parar o teste de estresse nas instâncias gerenciadas
Após o Cenário 2, o grupo de dimensionamento contém duas instâncias ECS e três instâncias gerenciadas com utilização média da CPU entre 40% e 60%. Interromper o teste de estresse faz com que a utilização da CPU caia abaixo de 40%, acionando o ScaleInAlarm. Contudo, remova instâncias gerenciadas apenas manualmente:
Das 22:48 às 22:54, uma atividade de scale-in removeu ambas as instâncias ECS (contagem: de cinco para três). Após as 22:55, a utilização da CPU permaneceu abaixo de 40%, mas as atividades subsequentes de scale-in falharam porque restaram apenas instâncias gerenciadas.
-
Depois das 22:55, a utilização média da CPU manteve-se abaixo de 40%. O ScaleInAlarm foi acionado, mas falhou porque o grupo contém apenas instâncias gerenciadas, que devem ser removidas manualmente.
A página de detalhes da tarefa acionada por eventos mostra que **
ScaleInAlarmestá atualmente em estado de alarme. A condição de disparo é (Agent) CPU Utilization Average ≤ 40% for 5 consecutive periods. A regra de scale-in associada é Reduce1**. O gráfico de monitoramento na parte inferior indica que a utilização da CPU caiu para quase 0% após as 22:51, atendendo continuamente à condição de disparo.