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.
Comment Amazon ECS place les tâches sur les instances de conteneur
Vous pouvez utiliser le placement des tâches pour configurer Amazon ECS afin de placer vos tâches sur des instances de conteneur répondant à certains critères, par exemple une zone de disponibilité ou un type d’instance.
Les composants de placement des tâches sont les suivants :
-
Stratégie de placement des tâches : l’algorithme permettant de sélectionner les instances de conteneur pour le placement des tâches ou les tâches à terminer. Par exemple, Amazon ECS peut sélectionner des instances de conteneur au hasard, ou il peut sélectionner des instances de conteneur de manière à ce que les tâches soient réparties uniformément entre un groupe d’instances.
-
Groupe de tâches : un groupe de tâches connexes, par exemple des tâches de base de données.
-
Contrainte de placement des tâches : il s’agit de règles qui doivent être respectées pour placer une tâche sur une instance de conteneur. Si la contrainte n’est pas respectée, la tâche n’est pas placée et reste dans l’état
PENDING. Par exemple, vous pouvez utiliser une contrainte pour ne placer des tâches que sur un type d’instance spécifique.
Amazon ECS utilise différents algorithmes pour les différentes options de capacité.
Instances gérées Amazon ECS
Pour les tâches exécutées sur des instances gérées Amazon ECS, Amazon ECS doit déterminer où placer la tâche et, lors de la réduction du nombre de tâches, quelles tâches résilier. Amazon ECS prend cette décision en fonction des exigences d’instance spécifiées dans le modèle de lancement du fournisseur de capacité, des exigences spécifiées dans la définition de la tâche, telles que l’UC et la mémoire, et des contraintes de placement des tâches.
Note
Les instances gérées Amazon ECS ne prennent pas en charge les stratégies de placement de tâches. Amazon ECS fera tout son possible pour répartir les tâches entre les zones de disponibilité accessibles.
Lorsqu'Amazon ECS place des tâches, il a recours au processus suivant afin de sélectionner les instances de conteneur :
-
Identification des instances qui répondent aux exigences en termes d’UC, de GPU, de mémoire et de port dans la définition de tâche.
-
Identification des instances de conteneur qui satisfont aux contraintes de placement des tâches.
-
Identification des instances de conteneur qui satisfont aux exigences spécifiées dans le modèle de lancement du fournisseur de capacité.
-
Sélection des instances de conteneur pour le placement des tâches.
EC2
Pour les tâches qui utilisent le type de EC2 lancement, 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 dépendent du fait que vous exécutiez les tâches manuellement (tâches autonomes) ou dans le cadre 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’y a pas de contrainte de placement par défaut pour les tâches qui ne font pas partie des services. Pour de plus amples informations, veuillez consulter 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 :
-
Identification des instances qui répondent aux exigences en termes d’UC, de GPU, de mémoire et de port dans la définition de tâche.
-
Identification des instances de conteneur qui satisfont aux contraintes de placement des tâches.
-
Identification des instances de conteneur qui satisfont aux stratégies de placement des tâches.
-
Sélection des instances de conteneur pour le placement des tâches.
Fargate
Les stratégies et contraintes de placement des tâches ne sont pas prises en charge pour les tâches utilisant Fargate. Fargate fera de son mieux pour répartir les tâches entre les zones de disponibilité accessibles. Si le fournisseur de capacité inclut à la fois Fargate et Fargate Spot, le comportement de répartition est indépendant pour chaque fournisseur de capacité.