Solucionar problemas causados por erros de CPU ou memória inválida na definição de tarefa do Amazon ECS - Amazon Elastic Container Service

Solucionar problemas causados por erros de CPU ou memória inválida na definição de tarefa do Amazon ECS

Ao registrar uma definição de tarefa usando a API do Amazon ECS ou a AWS CLI, se você especificar um valor inválido de cpu ou memory, será retornado o erro a seguir.

An error occurred (ClientException) when calling the RegisterTaskDefinition operation: Invalid 'cpu' setting for task.
nota

Ao usar o Terraform, o erro a seguir pode ser retornado.

Error: ClientException: No Fargate configuration exists for given values.

Para resolver esse problema, você deve especificar um valor compatível para a CPU e a memória em sua definição da tarefa. O valor de cpu pode ser expresso em unidades de CPU ou vCPUs em uma definição de tarefa. Ele é convertido em um número inteiro que indica as unidades de CPU quando a definição da tarefa é registrada. O valor de memory pode ser expresso em MiB ou GB em uma definição de tarefa. Ele é convertido em um número inteiro que indica o valor em MiB quando a definição da tarefa é registrada.

Em definições de tarefa que especificam o FARGATE para o parâmetro requiresCompatibilities (mesmo se o EC2 também estiver especificado), você deve usar um dos valores da tabela a seguir. Esses valores determinam sua faixa de valores compatíveis com os parâmetros de CPU e memória.

Para tarefas hospedadas no Fargate, a tabela a seguir mostra as combinações válidas de CPU e memória. Os valores de memória no arquivo JSON são especificados em MiB. É possível converter o valor de GB em MiB multiplicando o valor por 1024. Por exemplo, 1 GB = 1024 MiB.

Valor de CPU Valor de memória Sistemas operacionais com suporte para o AWS Fargate
256 (0,25 vCPU) 512 MiB, 1 GB, 2 GB Linux
512 (0,5 vCPU) 1 GB, 2 GB, 3 GB, 4 GB Linux
1024 (1 vCPU) 2 GB, 3 GB, 4 GB, 5 GB, 6 GB, 7 GB, 8 GB Linux, Windows
2048 (2 vCPU) Entre 4 GB e 16 GB em incrementos de 1 GB Linux, Windows
4096 (4 vCPU) Entre 8 GB e 30 GB em incrementos de 1 GB Linux, Windows
8192 (8 vCPU)
nota

Essa opção requer a plataforma Linux 1.4.0 ou posterior.

Entre 16 GB e 60 GB em incrementos de 4 GB Linux
16384 (16 vCPU)
nota

Essa opção requer a plataforma Linux 1.4.0 ou posterior.

Entre 32 GB e 120 GB em incrementos de 8 GB Linux

Em tarefas hospedadas no Amazon EC2, os valores de CPU da tarefa válidos estão entre 0,25 vCPU e 10 vCPUs.

O Amazon ECS usa o período da CPU e a cota de CPU para controlar os limites rígidos de CPU do tamanho da tarefa. Quando você especifica a vCPU na definição da tarefa, o Amazon ECS traduz o valor para o período da CPU e as configurações de cota de CPU que se aplicam a cgroup.

A cota de CPU controla a quantidade de tempo de CPU concedida a cgroup durante um determinado período de CPU. Ambas as configurações são expressas em termos de microssegundos. Quando a cota de CPU é igual ao período da CPU, isso significa que cgroup pode executar até 100% em uma vCPU (ou qualquer outra fração que totalize 100% para várias vCPUs). A cota de CPU tem um máximo de 1.000.000 microssegundos e o período de CPU tem um mínimo de 1 ms. Você pode usar esses valores para definir os limites da contagem de CPUs. Quando você altera o período da CPU sem alterar a cota de CPU, você passa a ter limites efetivos diferentes dos especificados na definição da tarefa.

O período de 100 ms permite vCPUs que variam de 0,125 a 10.

nota

Os parâmetros de CPU e memória em nível de tarefa são ignorados para contêineres do Windows.