Por que a contagem de tarefas em execução foi alterada no meu serviço do Amazon ECS?
A contagem de tarefas em execução no meu serviço Amazon Elastic Container Service (Amazon ECS) aumentou ou diminuiu.
Descrição breve
A contagem de tarefas em execução para o serviço do Amazon ECS pode aumentar ou diminuir devido a vários motivos. Algumas das causas comuns são as seguintes:
- Suas tarefas do Amazon ECS estão falhando nas verificações de integridade.
- O AWS CloudFormation ou o AWS Cloud Development Kit (AWS CDK) atualizou a contagem desejada no serviço do ECS.
- Você atualizou manualmente a contagem desejada para o serviço do ECS.
- A autoescalabilidade do serviço do Amazon ECS atualizou o número de tarefas com base na política de escalabilidade.
- Você atualizou a contagem mínima ou máxima na autoescalabilidade da aplicação usando a API RegisterScalableTarget.
- A configuração de implantação do serviço do ECS modificou a contagem de tarefas em execução durante a implantação.
Resolução
Suas tarefas do ECS estão falhando nas verificações de integridade
- Se as suas tarefas estiverem usando o tipo de execução do Amazon EC2, consulte Como fazer com que minhas tarefas do Amazon ECS sejam executadas usando o tipo de inicialização do Amazon EC2 para passar na verificação de integridade do Application Load Balancer no Amazon ECS?
- Se as tarefas estiverem usando o tipo de inicialização do AWS Fargate, consulte Como soluciono problemas de falhas de verificação de integridade para tarefas do Amazon ECS no Fargate?
O CloudFormation ou o AWS CDK atualizou a contagem desejada no serviço do ECS
Se você criou o seu serviço do ECS com CloudFormation ou CDK sem especificar o campo DesiredCount, a contagem desejada será definida como um valor padrão de 1. No entanto, quando o serviço é atualizado por meio do CloudFormation ou CDK sem especificar o campo DesiredCount, a contagem desejada existente na implantação atual é usada para a nova implantação.
Para solucionar esse problema, analise os eventos do AWS CloudTrail para verificar se a chamada de API UpdateService foi feita pelo CloudFormation. Você pode verificar isso verificando se o campo UserAgent na seção Registro de evento especifica o seguinte:
"userAgent": "cloudformation.amazonaws.com"
Para resolver esse problema, remova o parâmetro DesiredCount do código CloudFormation ou CDK durante a atualização.
Você atualizou manualmente a contagem desejada para o serviço do ECS
Se você atualizou manualmente o serviço do ECS usando a API UpdateService, o console do Amazon ECS ou a AWS Command Line Interface (AWS CLI), atualize o serviço novamente para alterar a contagem desejada para um valor apropriado. Para obter mais informações, consulte Atualizando um serviço e serviço de atualização.
Para solucionar esse problema, analise os eventos do CloudTrail para verificar se a chamada de APIUpdateService foi feita a partir do console do Amazon ECS ou da AWS CLI. Você pode visualizar essas informações no campo UserAgent no registro do CloudTrail.
Exemplo:
"userAgent": "console.amazonaws.com"
A autoescalabilidade do serviço do Amazon ECS atualizou o número de tarefas com base na política de escalabilidade
A autoescalabilidade do serviço do Amazon ECS pode ter aumentado ou diminuído a contagem desejada com base na política de escalabilidade. Analise o serviço e verifique se há alguma ação de escalabilidade recente.
Para visualizar as atividades de escalabilidade, faça o seguinte:
- Abra o console do Amazon ECS.
- No painel de navegação, escolha Clusters.
- Escolha o cluster que você quer conferir.
- Escolha a guiaServices (Serviços).
- Escolha o serviço que você deseja verificar.
- Escolha a guia Events (Eventos).
Se houver um evento de escalabilidade, você poderá exibir mensagens informativas, como as seguintes, na colunaMessage (Mensagem):
Successfully set desired count to 1. Change successfully fulfilled by ecs. Cause: monitor alarm TargetTracking-service/service-autoscaling/sample-webapp-AlarmLow-fcd80aef-5161-4890-aeb4-35dde11ff42c in state ALARM triggered policy TargetTrackingPolicy.
Se as tarefas forem interrompidas devido a uma ação de escalabilidade, revise as políticas demonitoramento do objetivo ou escalabilidade de etapas. Em seguida, atualize a contagem desejada de acordo com os requisitos da sua aplicação.
Para visualizar a configuração de autoescalabilidade da aplicação, faça o seguinte:
- Abra o console do Amazon ECS.
- No painel de navegação, escolha Clusters.
- Escolha o cluster que você quer conferir.
- Escolha a guiaServices (Serviços).
- Escolha o serviço que você deseja verificar.
- Escolha a guia Auto Scaling (Autoescalabilidade).
Observação: se você estiver usando o novo console do Amazon ECS, escolha Configuration and tasks (Configuração e tarefas) e, em seguida, visualize as informações em Service configuration (Configuração de serviço).
Você atualizou a contagem mínima e máxima na autoescalabilidade da aplicação usando a API RegisterScalableTarget
Se você usou a API RegisterScalableTarget para atualizar o destino escalável, verifique o valor da propriedade MinCapacity especificado na API. Se você especificou um novo valor mínimo, a autoescalabilidade da aplicação usará esse valor como o novo valor mínimo para o qual as tarefas podem ser reduzidas na escala vertical.
Observação: a autoescalabilidade da aplicação não reduz a contagem desejada para menos do que o valor mínimo especificado.
A configuração de implantação do serviço do ECS modificou a contagem de tarefas em execução durante a implantação
Analise os eventos do CloudTrail para verificar se a API UpdateService foi chamada recentemente. Você pode visualizar a configuração de implantação do seu serviço do ECS verificando o parâmetro de solicitaçãoDeploymentConfigration na API UpdateService.
-ou-
Analise a configuração de implantação do serviço do ECS no console do Amazon ECS fazendo o seguinte:
- Abra o console do Amazon ECS.
- No painel de navegação, escolha Clusters.
- Escolha o cluster que você quer conferir.
- Escolha a guiaServices (Serviços).
- Escolha o serviço que você deseja verificar.
- Escolha a guiaDeployments (Implantações).
Os parâmetros de configuração de implantação controlam quantas tarefas são executadas durante uma implantação e a sequência de tarefas de parada e início. Se a configuração de implantação for definida incorretamente, o número de tarefas em execução durante a implantação será reduzido. Portanto, é uma prática recomendada configurar o valor do parâmetroMinimumHealthyPercent para maior que 0%.
O parâmetroMinimumHealthyPercent representa o limite inferior em qualquer um dos itens a seguir como uma porcentagem do número desejado de tarefas para o serviço:
- Número de tarefas que devem ser executadas para um serviço durante uma implantação
- Número de tarefas que devem ser executadas quando uma instância de contêiner está diminuindo.
O valor desse parâmetro é arredondado para cima. Por exemplo, se MinimumHealthyPercent for 50% e o número desejado de tarefas for quatro, o programador poderá interromper duas tarefas existentes antes de iniciar duas novas tarefas. Se MinimumHealthyPercent for 75% e o número desejado de tarefas for dois, o programador não poderá interromper nenhuma tarefa devido ao valor resultante também ser dois.
O parâmetro MaximumPercent representa o limite superior em qualquer um dos itens a seguir como uma porcentagem do número desejado de tarefas para um serviço:
- Número de tarefas que devem ser executadas para um serviço durante uma implantação
- Número de tarefas que devem ser executadas quando uma instância de contêiner está diminuindo.
O valor desse parâmetro é arredondado para baixo. Por exemplo, se MaximumPercent for 200% e o número desejado de tarefas for quatro, o programador poderá iniciar quatro novas tarefas antes de interromper quatro tarefas existentes. Se MaximumPercent for 125% e o número desejado de tarefas for três, o programador não poderá iniciar nenhuma tarefa devido ao valor resultante também ser três.
Para obter mais informações, consulte Atualização contínua.
Informações relacionadas
Conteúdo relevante
- AWS OFICIALAtualizada há 5 meses
- AWS OFICIALAtualizada há 4 anos
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 3 anos