As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Autoescalabilidade do serviço
Escalabilidade automática é a capacidade de aumentar ou diminuir automaticamente a contagem de tarefas desejada no serviço do Amazon ECS. O Amazon ECS utiliza o serviço do Application Auto Scaling para fornecer essa funcionalidade. Para obter mais informações, consulte o Guia do usuário do Application Auto Scaling.
O Amazon ECS publica CloudWatch métricas com o uso médio de CPU e memória do seu serviço. Para ter mais informações, consulte Utilização de serviço. Você pode usar essas e outras CloudWatch métricas para expandir seu serviço (adicionar mais tarefas) para lidar com a alta demanda nos horários de pico e escalar seu serviço (executar menos tarefas) para reduzir custos durante períodos de baixa utilização.
O Auto Scaling do serviço do Amazon ECS oferece suporte aos seguintes tipos de escalabilidade automática:
-
Políticas de escalabilidade de rastreamento de destino: aumenta ou diminui o número de tarefas que o serviço executa com base em um valor de destino para uma métrica específica. Isso é semelhante à forma como o termostato mantém a temperatura da casa. Você seleciona a temperatura, e o termostato faz o resto.
-
Políticas de escalabilidade em etapas: aumenta ou diminui o número de tarefas que o serviço executa com base em um conjunto de ajustes de escalabilidade, conhecidos como ajustes em etapas, que variam conforme o tamanho da violação do alarme.
-
Escalabilidade programada—Aumente ou diminua o número de tarefas que seu serviço executa com base na data e na hora.
Considerações
Ao usar políticas de escalabilidade, considere o seguinte:
-
O Amazon ECS envia métricas em intervalos de 1 minuto para. CloudWatch As métricas não estão disponíveis até que os clusters e os serviços as enviem CloudWatch, e você não pode criar CloudWatch alarmes para métricas que não existem.
-
As políticas de escalabilidade são compatíveis com um período de desaquecimento. Esse é o número de segundos para esperar que uma ação de escalabilidade anterior entre em vigor.
-
Para eventos de aumento, a intenção é aumentar de forma contínua (mas não excessiva). Depois que o Auto Scaling do serviço é expandido com êxito usando uma política de escalabilidade, ele começará a calcular o tempo de desaquecimento. A política de escalabilidade não aumentará novamente a capacidade desejada, a menos que um aumento da escala horizontalmente seja iniciado ou que o período de esfriamento termine. Enquanto o período de desaquecimento após expansão estiver em vigor, a capacidade adicionada pela ação de expansão de início será calculada como parte da capacidade desejada para a próxima ação de expansão.
-
Para eventos de redução, a intenção é reduzir de forma conservadora para proteger a disponibilidade da aplicação, de modo que as ações de redução sejam bloqueadas até que o período de desaquecimento tenha expirado. Porém, se outro alarme acionar uma ação de aumento da escala na horizontal durante o período de esfriamento da redução da escala na horizontal, o Service Auto Scaling aumentará a escala horizontalmente do destino imediatamente. Nesse caso, o período de desaquecimento após redução é interrompido e não é concluído.
-
-
O programador de serviço respeita a contagem desejada em todos os momentos, mas desde que você tenha políticas de escalabilidade e alarmes ativos em um serviço, o Auto Scaling do serviço pode alterar uma contagem desejada que você definiu manualmente.
-
Se a contagem desejada de um serviço for definida abaixo do valor mínimo de capacidade e um alarme iniciar uma atividade de expansão, o Service Auto Scaling escalará a contagem desejada até o valor mínimo da capacidade e, em seguida, continuará a ser expandida conforme necessário, com base na política de escalabilidade associada ao alarme. Porém, uma atividade de redução não ajusta a contagem desejada, pois ela já está abaixo do valor mínimo de capacidade.
-
Se a contagem desejada de um serviço for definida acima do valor máximo da capacidade e um alarme iniciar uma escala na atividade, o Service Auto Scaling escalará a contagem desejada até o valor máximo da capacidade e, em seguida, continuará a escalar conforme necessário, com base na política de escalabilidade associada ao alarme. Porém, uma atividade de expansão não ajusta a contagem desejada, pois ela já está acima do valor máximo de capacidade.
-
Durante ações de escalabilidade, a contagem real de tarefas em execução em um serviço é o valor que o Auto Scaling do serviço usa como ponto de partida, ao contrário da contagem desejada. Esta deve ser a capacidade de processamento. Isso evita a escalabilidade excessiva (sem controle) que não pode ser atendida, por exemplo, caso não haja recursos de instância de contêiner suficientes para colocar as tarefas adicionais. Se a capacidade da instância de contêiner estiver disponível depois, a ação de escalabilidade pendente poderá continuar, e as ações de escalabilidade adicionais poderão continuar depois do período de desaquecimento.
-
Se quiser que a contagem de tarefas seja dimensionada em zero quando não houver trabalho a ser feito, defina uma capacidade mínima de 0. Com políticas de dimensionamento com monitoramento do objetivo, quando a capacidade real é 0 e a métrica indica que há demanda de workload, o Auto Scaling do serviço aguarda o envio de um ponto de dados antes da expansão. Nesse caso, ele é expandido pela quantidade mínima possível como ponto de partida e, em seguida, retoma a escalabilidade com base na contagem real de tarefas em execução.
-
O Application Auto Scaling desativa processos de redução da escala na horizontal enquanto as implantações do Amazon ECS estão em andamento. No entanto, processos de aumento continuam a ocorrer, a menos que sejam suspensos, durante uma implantação. Para ter mais informações, consulte Escalabilidade automática e implantações do serviço.
-
Você tem várias opções de ajuste de escala automático de aplicação para tarefas do Amazon ECS. O rastreamento de destinos é o modo mais fácil de usar. Com isso, tudo o que você precisa fazer é definir um valor de destino para uma métrica, como a utilização média da CPU. Em seguida, o escalador automático gerencia automaticamente o número de tarefas necessárias para atingir esse valor. Com a escalabilidade por etapas, é possível reagir mais rapidamente às mudanças na demanda, pois define os limites específicos para suas métricas de escalabilidade e quantas tarefas adicionar ou remover quando os limites são ultrapassados. E, o mais importante, é possível reagir rapidamente às mudanças na demanda minimizando a quantidade de tempo em que um alarme de limite é violado.
Escalabilidade automática e implantações do serviço
O Application Auto Scaling desativa processos de redução da escala na horizontal enquanto as implantações do Amazon ECS estão em andamento. No entanto, processos de aumento continuam a ocorrer, a menos que sejam suspensos, durante uma implantação. Se você quiser suspender processos de aumento enquanto as implantações estiverem em andamento, siga as etapas a seguir.
-
Chame o describe-scalable-targetscomando, especificando o ID do recurso do serviço associado ao destino escalável em Application Auto Scaling (Exemplo:).
service/default/sample-webapp
Registre a saída. Você precisará dela quando chamar o próximo comando. -
Chame o register-scalable-targetcomando, especificando o ID do recurso, o namespace e a dimensão escalável. Especifique
true
paraDynamicScalingInSuspended
eDynamicScalingOutSuspended
. -
Depois que a implantação for concluída, você poderá chamar o register-scalable-targetcomando para retomar o escalonamento.
Para obter mais informações, consulte Suspender e retomar a escalabilidade do Application Auto Scaling.