Autoescalabilidade do serviço - Amazon Elastic Container Service

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.

  1. 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.

  2. Chame o register-scalable-targetcomando, especificando o ID do recurso, o namespace e a dimensão escalável. Especifique true para DynamicScalingInSuspended e DynamicScalingOutSuspended.

  3. 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.