Résolution des erreurs d’UC ou de mémoire non valides liées à la définition des tâches Amazon ECS - Amazon Elastic Container Service

Résolution des erreurs d’UC ou de mémoire non valides liées à la définition des tâches Amazon ECS

Lorsque vous enregistrez une définition de tâche à l'aide de l'API Amazon ECS ou de l'AWS CLI, si vous spécifiez une valeur cpu ou memory non valide, l'erreur suivante est renvoyée.

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

Si vous utilisez Terraform, l’erreur suivante peut être renvoyée.

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

Pour résoudre ce problème, vous devez spécifier une valeur prise en charge pour l'UC et la mémoire de la tâche dans votre définition de tâche. La valeur cpu peut être exprimée en unités d’UC ou de vCPU dans une définition de tâche. Elle est convertie en un nombre entier indiquant le nombre d’unités d’UC lorsque la définition de la tâche est enregistrée. La valeur memory peut être exprimée en Mio ou en Go dans une définition de tâche. Elle est convertie en un entier indiquant le nombre de Mio lorsque la définition de la tâche est enregistrée.

Pour les définitions de tâches qui spécifient FARGATE pour le paramètre requiresCompatibilities (même si EC2 est également spécifié), vous devez utiliser l’une des valeurs indiquées dans le tableau suivant. Ces valeurs déterminent votre plage de valeurs prises en charge pour le paramètre d’UC et de mémoire.

Pour les tâches hébergées sur Fargate, le tableau suivant indique les combinaisons de processeur et de mémoire valides. Les valeurs de mémoire du fichier JSON sont spécifiées en Mio. Vous pouvez convertir la valeur en Go en Mio en la multipliant par 1 024. Par exemple, 1 Go = 1 024 Mio.

Valeur d'UC Valeur de mémoire Systèmes d'exploitation pris en charge pour AWS Fargate
256 (0,25 vCPU) 512 Mio, 1 Go, 2 Go Linux
512 (0,5 vCPU) 1 Go, 2 Go, 3 Go, 4 Go Linux
1 024 (1 vCPU) 2 Go, 3 Go, 4 Go, 5 Go, 6 Go, 7 Go, 8 Go Linux, Windows
2 048 (2 vCPU) Entre 4 Go et 16 Go par incréments de 1 Go Linux, Windows
4 096 (4 vCPU) Entre 8 Go et 30 Go par incréments de 1 Go Linux, Windows
8192 (8 vCPU)
Note

Cette option nécessite la plateforme Linux 1.4.0 ou ultérieure

Entre 16 Go et 60 Go par incréments de 4 Go Linux
16384 (16vCPU)
Note

Cette option nécessite une plateforme Linux 1.4.0 ou une version ultérieure.

Entre 32 Go et 120 Go par incréments de 8 Go Linux

Pour les tâches hébergées sur Amazon EC2, les valeurs d’UC de tâche prises en charge sont comprises entre 0,25 vCPU et 192 vCPU.

Le mécanisme de contrôle de l’UC diffère entre EC2 et Fargate :

  • Pour les tâches hébergées sur Amazon EC2 : Amazon ECS utilise la période d’UC et le quota d’UC pour contrôler les limites strictes de taille des tâches en termes d’UC. Lorsque vous spécifiez le vCPU dans votre définition de tâche, Amazon ECS traduit la valeur en période d’UC et en paramètres de quota d’UC qui s’appliquent au cgroup.

  • Pour les tâches hébergées sur Fargate : Amazon ECS utilise des partages d’UC pour contrôler l’allocation de l’UC. Les valeurs de quota et de période d’UC ne sont pas utilisées pour limiter l’UC dans les tâches Fargate.

Pour les tâches Amazon EC2, le quota d’UC contrôle le temps processeur accordé à un cgroup pendant une période d’UC donnée. Les deux paramètres sont exprimés en microsecondes. Lorsque le quota d’UC est égal à la période d’UC, cela signifie qu’un cgroup peut exécuter jusqu’à 100 % sur un vCPU (ou toute autre fraction totalisant 100 % pour plusieurs vCPU). Le quota d’UC est au maximum de 1 000 000 us et la période d’UC est d’au moins 1 ms. Vous pouvez utiliser ces valeurs pour définir les limites de votre nombre d’UC. Lorsque vous modifiez la période d’UC sans modifier le quota d’UC, vous disposez de limites effectives différentes de celles que vous avez spécifiées dans votre définition de tâche.

La période de 100 ms permet d’utiliser de 0,125 à 10 vCPU.

Note

Les paramètres d'UC et de mémoire de niveau tâche sont ignorés pour les conteneurs Windows.