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.
Équilibrer un service Amazon ECS entre les zones de disponibilité
Pour aider vos applications à atteindre une haute disponibilité, nous vous recommandons de configurer vos services multitâches pour qu'ils s'exécutent sur plusieurs zones de disponibilité. Pour les services dont la première stratégie de placement est de répartir les zones de disponibilité, AWS faites de votre mieux pour répartir uniformément les tâches de service entre les zones de disponibilité disponibles. Cependant, il peut arriver que le nombre de tâches exécutées dans une zone de disponibilité ne soit pas le même que dans d'autres zones de disponibilité, par exemple après une interruption de zone de disponibilité. Pour remédier à ce déséquilibre des tâches, vous pouvez activer la fonction de rééquilibrage des zones de disponibilité. Grâce au rééquilibrage des zones de disponibilité, Amazon ECS surveille en permanence la répartition des tâches entre les zones de disponibilité pour chacun de vos services. Lorsqu'Amazon ECS détecte une répartition inégale des tâches, il prend automatiquement des mesures pour rééquilibrer la charge de travail entre les zones de disponibilité. Cela implique de lancer de nouvelles tâches dans les zones de disponibilité comportant le moins de tâches et de terminer des tâches dans les zones de disponibilité surchargées. Cette redistribution garantit qu'aucune zone de disponibilité ne devienne un point de défaillance, ce qui contribue à maintenir la disponibilité globale de vos applications conteneurisées. Le processus de rééquilibrage automatisé élimine le besoin d'intervention manuelle, accélérant ainsi le temps de rétablissement après un événement.
Voici un aperçu du processus de rééquilibrage des zones de disponibilité :
-
Amazon ECS commence à surveiller un service une fois qu'il a atteint l'état stable et examine le nombre de tâches exécutées dans chaque zone de disponibilité.
-
Amazon ECS effectue les opérations suivantes lorsqu'il détecte un déséquilibre dans le nombre de tâches exécutées dans chaque zone de disponibilité :
-
Envoie un événement de service indiquant que le rééquilibrage de la zone de disponibilité commence.
-
Démarre les tâches dans les zones de disponibilité avec le plus petit nombre de tâches en cours
-
Arrête les tâches dans les zones de disponibilité comportant le plus grand nombre de tâches en cours d'exécution.
-
Le planificateur attend que les tâches nouvellement démarrées soient terminées
HEALTHY
etRUNNING
avant de les arrêter dans la zone de disponibilité surdimensionnée. -
Envoie un événement de service avec le résultat du rééquilibrage de la zone de disponibilité.
-
Comment Amazon ECS détecte une répartition inégale des tâches
Amazon ECS détermine un déséquilibre dans le nombre de tâches exécutées dans chaque zone de disponibilité en divisant le nombre de tâches souhaité pour le service par le nombre de zones de disponibilité configurées. Si le nombre de tâches souhaité ne se répartit pas de manière égale, Amazon ECS répartit le reste des tâches de manière égale entre les zones de disponibilité configurées. Chaque zone de disponibilité doit comporter au moins une tâche.
Prenons l'exemple d'un service Amazon ECS avec un nombre souhaité de deux tâches configurées pour deux zones de disponibilité. Dans ce scénario, le nombre de tâches souhaité est réparti de manière égale. Une distribution équilibrée représenterait une tâche par zone de disponibilité. S'il y a deux tâches dans la zone de disponibilité 1 et aucune tâche dans la zone de disponibilité 2, Amazon ECS initie le rééquilibrage en démarrant une tâche dans la zone de disponibilité 2 avant d'arrêter une tâche dans la zone de disponibilité 1.
À présent, imaginez un service Amazon ECS avec un nombre souhaité de trois tâches configurées pour deux zones de disponibilité. Dans ce scénario, le nombre de tâches souhaité ne se divise pas de manière égale. Une distribution équilibrée comporterait une tâche dans la zone de disponibilité 1 et deux tâches dans la zone de disponibilité 2, car chaque zone de disponibilité comporte au moins une tâche et le reste de la tâche est placée dans la zone de disponibilité 2.
Prenons l'exemple d'un service Amazon ECS dont le nombre souhaité de cinq tâches est configuré pour trois zones de disponibilité. Dans ce scénario, le nombre de tâches souhaité ne se divise pas de manière égale. Une distribution équilibrée comporterait une tâche dans la zone de disponibilité 1 et deux tâches dans chacune des zones de disponibilité 2 et 3. Après avoir pris en compte le fait que chaque zone de disponibilité comporte une tâche chacune, les deux tâches restantes sont réparties uniformément entre les zones de disponibilité.
Considérations relatives à la configuration du rééquilibrage des zones de disponibilité
Tenez compte des points suivants lorsque vous souhaitez configurer le rééquilibrage des zones de disponibilité :
Le rééquilibrage des zones de disponibilité prend en charge les types Fargate et Launch EC2 . Pour Fargate, Amazon ECS redistribuera automatiquement les tâches entre les zones de disponibilité disponibles afin de maintenir l'équilibre. Pour le type de EC2 lancement, Amazon ECS rééquilibre les tâches entre les instances de conteneur existantes dans la mesure du possible, en respectant les stratégies et les contraintes de placement que vous avez définies. Toutefois, Amazon ECS ne peut pas lancer de nouvelles instances dans les zones de disponibilité sous-utilisées dans le cadre du processus de rééquilibrage, ce qui limite le rééquilibrage aux instances de conteneur existantes.
-
Le rééquilibrage des zones de disponibilité fonctionne dans les configurations suivantes :
-
Services utilisant la
Replica
stratégie -
Services qui spécifient la répartition de la zone de disponibilité comme première stratégie de placement des tâches, ou qui ne spécifient pas de stratégie de placement.
-
-
Vous ne pouvez pas utiliser le rééquilibrage des zones de disponibilité avec des services répondant à l'un des critères suivants :
-
Utilise la
Daemon
stratégie -
Utilise le type de
EXTERNAL
lancement (ECS Anywhere) -
Utilise 100 % pour la
maximumPercent
valeur -
Utilise un Classic Load Balancer
-
Utilise le
attribute:ecs.availability-zone
comme contrainte de placement des tâches
-
Stratégies de placement et contraintes de placement avec rééquilibrage des zones de disponibilité
Les stratégies de placement déterminent la manière dont Amazon ECS sélectionne les instances de conteneur et les zones de disponibilité pour la fin du placement des tâches. Les contraintes de placement des tâches sont des règles qui déterminent si une tâche est autorisée à s'exécuter sur une instance de conteneur spécifique. Pour le type de EC2 lancement, vous pouvez utiliser des stratégies de placement et des contraintes de placement en conjonction avec le rééquilibrage des zones de disponibilité. Toutefois, pour que le rééquilibrage des zones de disponibilité fonctionne, la stratégie de placement des écarts de zone de disponibilité doit être la première stratégie spécifiée. Le rééquilibrage des zones de disponibilité est compatible avec différentes combinaisons de stratégies de placement. Par exemple, vous pouvez créer une stratégie qui répartit d'abord les tâches de manière uniforme entre les zones de disponibilité, puis qui regroupe les tâches en fonction de la mémoire au sein de chaque zone de disponibilité. Dans ce cas, le rééquilibrage des zones de disponibilité fonctionne car la stratégie de spread des zones de disponibilité est spécifiée en premier. Il est important de noter que le rééquilibrage des zones de disponibilité ne fonctionnera pas si la première stratégie du tableau de stratégies de placement n'est pas un composant de spread des zones de disponibilité. Cette exigence garantit que l'objectif principal de la distribution des tâches est de maintenir l'équilibre entre les zones de disponibilité, ce qui est crucial pour une haute disponibilité. Pour plus d'informations sur les stratégies et les contraintes de placement des tâches, consultezComment Amazon ECS place les tâches sur les instances de conteneur.
Les stratégies et contraintes de placement de tâche ne sont pas prises en charge pour les tâches utilisant le type de lancement 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é.
L'exemple de stratégie suivant répartit les tâches de manière uniforme entre les zones de disponibilité, puis regroupe les tâches en fonction de la mémoire au sein de chaque zone de disponibilité. Le rééquilibrage des zones de disponibilité est compatible avec le service car c'est la spread
stratégie qui prime.
"placementStrategy": [ { "field": "attribute:ecs.availability-zone", "type": "spread" }, { "field": "memory", "type": "binpack" } ]
Activer le rééquilibrage des zones de disponibilité
Vous devez activer le rééquilibrage des zones de disponibilité pour les services nouveaux et existants.
Vous pouvez activer et désactiver le rééquilibrage des zones de disponibilité à l'aide de la console ou du AWS CLI. APIs
Type de service | « Hello, World! » | console | INTERFACE DE LIGNE DE COMMANDE (CLI) |
---|---|---|---|
Existant | UpdateService | Mettre à jour un service Amazon ECS | service de mise à jour |
New | CreateService | Création d'un service Amazon ECS à l'aide de la console | create-service |