Como soluciono problemas ao configurar um novo provedor de capacidade ou atualizar um provedor de capacidade existente para meu cluster do Amazon ECS?

6 minuto de leitura
0

Estou tendo problemas quando tento configurar um novo provedor de capacidade ou atualizar um provedor de capacidade existente para meu cluster do Amazon Elastic Container Service (Amazon ECS).

Breve descrição

Alguns dos problemas mais comuns que ocorrem quando você configura um novo provedor de capacidade ou atualiza um provedor de capacidade existente para o cluster do Amazon ECS são os seguintes:

  • Você recebe erros ao criar um provedor de capacidade de grupo de escalabilidade automática usando a AWS Command Line Interface (AWS CLI).
  • Você recebe o erro: O provedor de capacidade especificado já existe. Para alterar a configuração de um provedor de capacidade existente, atualize esse provedor de capacidade.
  • Você recebe o erro: O ARN do grupo do Auto Scaling especificado já está sendo usado por outro provedor de capacidade. Especifique um ARN de grupo de Auto Scaling exclusivo e tente novamente.
  • Você recebe o erro ao criar a estratégia do provedor de capacidade: O cluster especificado está em um estado ocupado. Os anexos de cluster devem estar no estado UPDATE_COMPLETE ou UPDATE_FAILED antes de poderem ser atualizados. Espere e tente novamente.
  • Você recebe erros devido a algumas limitações do provedor de capacidade.
  • O provedor de capacidade é criado com sucesso com o AWS CloudFormation, mas não é mostrado no console.

Resolução

Você recebe erros ao criar um provedor de capacidade de grupo do Auto Scaling usando a AWS CLI

Para solucionar esse problema ao criar um provedor de capacidade usando a AWS CLI, analise os eventos do AWS CloudTrail para verificar a API CreateCapacityProvider. Veja a seguir alguns dos erros que você pode obter com a API CapacityProvider:

  • ClientException: Esses erros geralmente são causados por uma ação do cliente. Essa ação do cliente pode estar usando uma ação ou recurso em nome de um usuário do AWS Identity and Access Management (IAM) que não tem as permissões necessárias para usar a ação ou o recurso. Esse erro também pode especificar um identificador que não é válido.
  • UpdateInProgressException: Você recebe esse erro porque já existe uma atualização atual do agente de contêiner do Amazon ECS em andamento na instância de contêiner especificada. Se o agente de contêiner for desconectado enquanto estiver em um estágio de transição, como PENDING ou STAGING, o processo de atualização poderá ficar preso nesse estado. No entanto, quando o agente se reconecta, ele recomeça onde parou anteriormente.

Para obter mais informações, consulte Erros.

Observação: se você receber erros ao executar comandos da AWS CLI, certifique-se de estar utilizando a versão mais recente da AWS CLI.

Você recebe o erro: O provedor de capacidade especificado já existe. Para alterar a configuração de um provedor de capacidade existente, atualize esse provedor de capacidade

Ao criar o provedor de capacidade, use um nome diferente de qualquer um dos nomes de provedores de capacidade usados anteriormente. Ou você pode excluir o provedor de capacidade existente com esse nome e, em seguida, criar um novo provedor de capacidade.

Para exibir uma lista de todos os provedores de capacidade que você criou, execute o seguinte comando:

aws ecs describe-capacity-providers --query capacityProviders[].name --region example-region

A saída terá a seguinte aparência:

[
    "FARGATE",
    "FARGATE_SPOT",
    "ecs-capacityprovider-1"
]

Para excluir um provedor de capacidade, execute o seguinte comando:

aws ecs delete-capacity-provider --capacity-provider ecs-capacityprovider-1 --region example-region

Para obter um exemplo de saída e mais opções, consulte delete-capacity-provider.

Para criar um novo provedor de capacidade, execute o seguinte comando:

aws ecs create-capacity-provider --name "example-capacity=provider" --auto-scaling-group-provider autoScalingGroupArn=arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup,managedScaling={status=ENABLED,targetCapacity=100,minimumScalingStepSize=1,maximumScalingStepSize=100},managedTerminationProtection=ENABLED

Para obter um exemplo de saída e mais opções, consulte create-capacity-provider.

Você recebe o erro: O ARN do grupo do Auto Scaling especificado já está sendo usado por outro provedor de capacidade. Especifique um ARN de grupo de Auto Scaling exclusivo e tente novamente

O grupo do Auto Scaling e o provedor de capacidade devem ter um relacionamento individual. Você pode anexar um grupo de Auto Scaling a exatamente um provedor de capacidade e vice-versa. Portanto, verifique se o provedor de capacidade está associado a apenas um grupo de Auto Scaling.

Você recebe o erro: O cluster especificado está em um estado ocupado. Os anexos de cluster devem estar no estado UPDATE_COMPLETE ou UPDATE_FAILED antes de poderem ser atualizados. Espere e tente novamente

Esse erro é resolvido automaticamente em alguns minutos. Você pode esperar um pouco e tentar novamente atualizar o provedor de capacidade. Você também pode executar o seguinte comando da CLI para exibir o status atual dos anexos e aguardar até que o anexo esteja no status UPDATE_COMPLETE.

aws ecs describe-clusters --clusters example-ARN --include ATTACHMENTS --query clusters[].attachmentsStatus --region example-region

A saída deve ser semelhante à seguinte:

[
    "UPDATE_COMPLETE"
]

Você recebe erros devido a algumas limitações do provedor de capacidade

Lembre-se das seguintes limitações ao criar ou atualizar um provedor de capacidade:

  • Você não pode especificar mais de seis provedores de capacidade para uma estratégia de capacidade.
  • Você pode usar provedores de capacidade de grupo de Auto Scaling ou provedores de capacidade do AWS Fargate em sua estratégia de cluster. Você não pode usar uma combinação dos dois tipos.
  • O valor base para a estratégia do provedor de capacidade tem suporte somente quando você executa as tarefas.

O provedor de capacidade é criado com sucesso com o CloudFormation, mas não é mostrado no console

Isso pode acontecer quando você não associa o provedor de capacidade ao cluster em seu modelo do CloudFormation.

Para evitar esse problema, use o seguinte snippet no modelo do CloudFormation para associar o provedor de capacidade ao cluster:

...
ECSCluster:
  Type: 'AWS::ECS::Cluster'
  Properties:
    ClusterName: example-cluster
    CapacityProviders:
      - !Ref ECSCapacityProvider
...

Informações relacionadas

Fornecedores de capacidade do Amazon ECS

Fornecedores de capacidade do grupo de Auto Scaling

Como soluciono o erro DELETE_FAILED ao excluir o provedor de capacidade no Amazon ECS?

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos