AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Como soluciono problemas de escalabilidade com meu provedor de capacidade do Amazon ECS?
Criei um provedor de capacidade para meu cluster Amazon Elastic Container Service (Amazon ECS) com o tipo de lançamento do Amazon Elastic Compute Cloud (Amazon EC2). No entanto, o provedor de capacidade não é escalado conforme o esperado.
Breve descrição
Os problemas a seguir fazem com que seu provedor de capacidade do Amazon EC2 não aumente ou reduza a escala horizontalmente de forma automática:
-
O serviço Amazon ECS não foi associado ao provedor de capacidade.
-
As políticas de escalabilidade do provedor de capacidade não foram anexadas ao grupo do Amazon EC2 Auto Scaling.
-
A porcentagem da capacidade do destino não foi configurada corretamente.
-
Você está usando o ajuste de escala gerenciado para o provedor de capacidade, e as políticas de escalabilidade personalizadas estão anexadas ao grupo do EC2 Auto Scaling.
-
O grupo do Amazon EC2 Auto Scaling executou a instância de contêiner, mas não consegue ingressar no cluster.
-
Suas instâncias de contêiner não podem reduzir a escala horizontalmente ou verticalmente.
-
O provedor de capacidade está preso no estado de falha.
-
O grupo do Auto Scaling está preso em um loop de escalabilidade.
Resolução
Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Verifique se você associou o serviço Amazon ECS ao provedor de capacidade
Para confirmar se você associou o serviço Amazon ECS ao provedor de capacidade, execute o comando describe-services da AWS CLI:
aws ecs describe-services --cluster example-cluster --services example-service --region example-region --query 'services[].capacityProviderStrategy'
Observação: substitua example-cluster-name pelo seu cluster, example-service pelo seu serviço e example-region pela sua região da AWS.
Se você associou o serviço Amazon ECS ao provedor de capacidade, receberá uma saída semelhante ao exemplo a seguir:
[ [ { "capacityProvider": "example-capacity-provider", "weight": 1, "base": 1 } ] ]
Certifique-se de que o valor CapacityProviderStrategy não seja \ [].
Para adicionar um provedor de capacidade ao serviço, execute o comando update-service:
aws ecs update-service --cluster example-cluster --service example-service --region example-region --capacity-provider-strategy capacityProvider=capacity-provide-name,weight=weight-value,base=base-value --force-new-deployment
Observação: substitua example-cluster pelo nome do cluster, example-service pelo nome do serviço, example-region pela sua região e capacity-provider-name pelo nome do provedor de capacidade. Além disso, substitua weight-value pelo total de tarefas que usam o provedor de capacidade e base-value pelo número mínimo de tarefas a serem executadas pelo provedor de capacidade.
Também é possível usar o console do Amazon ECS para atualizar o serviço.
Certifique-se de anexar as políticas de escalabilidade do provedor de capacidade ao grupo do Auto Scaling
Quando você associa um provedor de capacidade a um grupo do Auto Scaling, o Amazon ECS cria uma política de escalabilidade que modifica a capacidade com base na carga do cluster.
Para solucionar problemas de política de escalabilidade, analise os eventos do AWS CloudTrail para chamadas de API PutScalingPolicy, UpdateAutoScalingGroup, CreateCapacityProvider e UpdateCapacityProvider. Certifique-se de que a política possa ser associada ao grupo do Auto Scaling e que o provedor de capacidade esteja funcionando conforme o esperado.
Para verificar se o grupo do Auto Scaling foi criado como um anexo de cluster, execute o comando describe-cluster:
aws ecs describe-clusters --clusters example-cluster --include ATTACHMENTS --region example-region --query 'clusters[].attachments[]'
Observação: substitua example-cluster pelo nome do cluster e example-region pela sua região.
Exemplo de saída:
[ { "id": "100a23456-5f0b-4abc-b998-d6789d111a", "type": "as_policy", "status": "CREATED", "details": [ { "name": "capacityProviderName", "value": "example-capacityProvider" }, { "name": "scalingPlanName", "value": "ECSManagedAutoScalingPlan-bb60c8fa-3ed7-4808-b39c-abcdef2345" } ] } ]
Se você usa uma política de escalabilidade gerenciada, conclua as etapas para verificar se a política está anexada ao grupo do Auto Scaling:
- Abra o console do Amazon ECS.
- No painel de navegação, escolha Clusters.
- Selecione o cluster.
- Escolha a guia Infraestrutura.
- Escolha a guia Provedores de capacidade.
- Selecione seu grupo do Auto Scaling.
Observação: essa ação redireciona você para a página de grupos do Auto Scaling no console do Amazon EC2. - Escolha a guia Ajuste de escala automático.
- Escolha Ações e selecione Editar política de escalabilidade dinâmica.
- No campo JSON de métrica personalizada, verifique se a política inclui a métrica CapacityProviderReservation.
Verifique a configuração de porcentagem da capacidade do destino
Verifique a métrica CapacityProviderReservation do Amazon CloudWatch para que seu provedor de capacidade rastreie o uso de suas instâncias de contêiner. A política de escalabilidade de monitoramento de alvo associada ao Grupo do Auto Scaling ajusta o número de instâncias em execução para garantir que CapacityProviderReservation corresponda ao valor da capacidade do destino. Por exemplo, se você definir a capacidade do destino como 100%, o Amazon ECS usará todas as instâncias e reduzirá a escala horizontalmente das instâncias que não estão executando tarefas.
Para configurar a capacidade extra, atualize Definir capacidade do destino para um valor menor que 100.
Certifique-se de que a instância iniciada a partir do grupo do Auto Scaling possa se juntar ao cluster
Se sua instância não puder se juntar ao cluster, consulte Por que minha instância do Amazon EC2 não pode se juntar ao cluster do Amazon ECS?
Certifique-se de que suas instâncias de contêiner não estejam protegidas contra ações de redução da escala horizontalmente e verticalmente
Para provedores de capacidade que usam proteção de encerramento gerenciada, o Amazon ECS impede o encerramento de instâncias do Amazon EC2 com tarefas durante uma ação de redução da escala horizontalmente.
Para interromper todas as tarefas em execução e permitir que o grupo do Auto Scaling encerre a instância do EC2, use o console do Amazon ECS para drenar a instância. Ou execute o comando update-container-instances-state:
aws ecs update-container-instances-state --cluster example-cluster --container-instances example-container --status DRAINING --region example-region
Observação: substitua examples-cluster pelo nome do cluster, example-container pela instância do contêiner e example-region pela região.
Se as tarefas ainda forem executadas na instância do contêiner após a drenagem, consulte Como soluciono problemas de tarefas do Amazon ECS que demoram muito para serem interrompidas quando a instância do contêiner está definida como DRAINING?
Para solucionar os problemas de proteção de encerramento gerenciado, consulte Como resolvo a configuração de proteção de encerramento gerenciado para o erro do provedor de capacidade no Amazon ECS?
Se as proteções de escalabilidade bloquearem ações de redução de escala verticalmente em sua instância, você receberá a seguinte mensagem de erro no histórico de atividades do Auto Scaling:
“Could not scale to desired capacity because all remaining instances are protected from scale-in.”
Para resolver esse problema, verifique suas ferramentas ou ferramentas de terceiros, como Terraform ou GitLab. Certifique-se de que eles não removam a tag AmazonECSManaged do grupo do Auto Scaling. O Amazon ECS exige essa tag para gerenciar a escalabilidade. Para verificar se a tag AmazonECSManaged está ausente, verifique seu histórico de eventos do CloudTrail para ver o evento SetInstanceProtection. Se você ver SetInstanceProtection, deverá adicionar a tag novamente ao seu grupo do Auto Scaling.
Verifique o status do seu provedor de capacidade
Quando você usa um provedor de capacidade, é uma prática recomendada criar um novo grupo do Auto Scaling e não reutilizar um grupo existente. As instâncias no estado de execução associadas ao grupo existente e registradas em um cluster do Amazon ECS podem não ser registradas corretamente.
Para consultar o status do provedor de capacidade, execute o comando describe-capacity-providers:
aws ecs describe-capacity-providers \ --capacity-providers MyCapacityProvider
Se o status do provedor de capacidade for INATIVO, então o provedor de capacidade foi excluído.
Além disso, analise os eventos do CloudTrail em busca de erros relacionados à API CreateCapacityProvider.
Certifique-se de que o grupo do Auto Scaling não esteja preso em um loop de escalabilidade
Quando a capacidade do destino especificada na política de escalabilidade de serviços do Amazon ECS aumenta, o grupo do Auto Scaling aumenta a escala horizontalmente e lança instâncias. No entanto, se o valor da métrica cair após o pico repentino, o grupo do Auto Scaling reduz a escala horizontalmente nas instâncias. Se a capacidade do destino flutuar frequentemente em um curto período de tempo, o grupo do Auto Scaling ficará preso em um loop de escalabilidade. Para evitar esse problema, configure o valor da capacidade do destino para corresponder ao workload.
Informações relacionadas
Aprofundamento no ajuste de escala automático do cluster do Amazon ECS
Como resolvo erros quando excluo um provedor de capacidade no Amazon ECS?
Clusters do Amazon ECS para o tipo de lançamento do AWS Fargate
- Tópicos
- Containers
- Idioma
- Português

Conteúdo relevante
- feita há um ano
- feita há 2 meses
- feita há um mês