Utilisez des stratégies pour définir le placement des tâches Amazon ECS - Amazon Elastic Container Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisez des stratégies pour définir le placement des tâches Amazon ECS

Pour les tâches qui utilisent le type de lancement EC2, Amazon ECS doit déterminer où placer la tâche en fonction des exigences spécifiées dans la définition de la tâche, telles que le processeur et la mémoire. De la même manière, lorsque vous réduisez le nombre de tâches, Amazon ECS doit déterminer quelles tâches doivent être résiliées. Vous pouvez appliquer des stratégies et des contraintes de placement des tâches afin de personnaliser la façon dont Amazon ECS place et résilie les tâches.

Les stratégies de placement des tâches par défaut varient selon que vous les exécutez manuellement (tâches autonomes) ou au sein d'un service. Pour les tâches exécutées dans le cadre d'un service Amazon ECS, la stratégie de placement des tâches est spread, en utilisant attribute:ecs.availability-zone. Il n'existe pas de contrainte de placement des tâches par défaut pour les tâches dans les services. Pour plus d’informations, consultez Planification de vos conteneurs sur Amazon ECS.

Note

Les stratégies de placement des tâches ont une obligation de moyens, mais pas de résultat. Amazon ECS tente toujours de placer les tâches, même lorsque l'option de placement optimale n'est pas disponible. Néanmoins, les contraintes de placement des tâches constituent une obligation et peuvent empêcher le placement des tâches.

Vous pouvez utiliser simultanément des stratégies et des contraintes de placement des tâches. Par exemple, vous pouvez utiliser une stratégie et une contrainte de placement des tâches de façon à répartir les tâches entre différentes zones de disponibilité et les regrouper par bin packing en fonction de la mémoire dans chaque zone de disponibilité, mais uniquement pour les instances G2.

Lorsqu'Amazon ECS place des tâches, il a recours au processus suivant afin de sélectionner les instances de conteneur :

  1. Identifiez les instances de conteneur qui répondent aux exigences en termes de processeur, de processeur graphique, de mémoire et de port dans la définition de la tâche.

  2. Identifiez les instances de conteneur qui répondent aux contraintes de placement des tâches.

  3. Identifiez les instances de conteneur qui répondent aux stratégies de placement des tâches.

  4. Sélectionnez les instances de conteneur pour le placement des tâches.

Vous spécifiez les stratégies de placement des tâches dans la définition du service ou dans la définition des tâches à l'aide du placementStrategy paramètre.

"placementStrategy": [ { "field": "The field to apply the placement strategy against", "type": "The placement strategy to use" } ]

Vous pouvez définir les stratégies lorsque vous exécutez une tâche (RunTask), créez un nouveau service (CreateService) ou mettez à jour un service existant (UpdateService).

Le tableau suivant décrit les types et les champs disponibles.

type Valeurs de champ valides
binpack

Les tâches sont placées sur les instances de conteneur afin de laisser le moins de CPU ou de mémoire inutilisées. Cette stratégie minimise le nombre d'instances de conteneur utilisées.

Lorsque cette stratégie est utilisée et qu'une action de mise à l'échelle horizontale est entreprise, Amazon ECS résilie les tâches. Elle effectue cette opération en fonction de la quantité de ressources laissée sur l'instance de conteneur après la résiliation de la tâche. L'instance de conteneur qui a le plus de ressources disponibles après la résiliation de la tâche voit cette tâche résiliée.

  • cpu

  • memory

random

Les tâches sont placées au hasard.

Non utilisé
spread

Les tâches sont placées uniformément en fonction de la valeur spécifiée.

Les tâches de service sont réparties en fonction des tâches du service concerné. Les tâches autonomes sont réparties en fonction des tâches du même groupe de tâches. Pour de plus amples informations sur les groupes de tâches, consultez Tâches Amazon ECS liées au groupe .

Lorsque la stratégie spread est utilisée et qu'une action de mise à l'échelle horizontale est entreprise, Amazon ECS sélectionne les tâches à résilier qui maintiennent un équilibre entre les zones de disponibilité. Au sein d'une zone de disponibilité, les tâches sont sélectionnées au hasard.

  • instanceId(ouhost, ce qui a le même effet)

  • toute plate-forme ou tout attribut personnalisé appliqué à une instance de conteneur, tel que attribute:ecs.availability-zone

Les stratégies de placement des tâches peuvent également être mises à jour pour les services existants. Pour plus d’informations, consultez Comment Amazon ECS place les tâches sur les instances de conteneur.

Vous pouvez créer une stratégie de placement des tâches qui utilise plusieurs stratégies en créant des tableaux de stratégies dans l'ordre d'exécution souhaité. Par exemple, si vous souhaitez répartir les tâches entre les zones de disponibilité, puis les regrouper en fonction de la mémoire au sein de chaque zone de disponibilité, spécifiez la stratégie de zone de disponibilité suivie de la stratégie de mémoire. Pour consulter des exemples de stratégies, voir Exemples de stratégies de placement de tâches Amazon ECS.