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é
À compter du 5 septembre 2025, Amazon ECS permet le rééquilibrage des zones de disponibilité pour tous les services éligibles à cette fonctionnalité. Un service est éligible lorsque la répartition entre les zones de disponibilité est la première stratégie de placement des tâches, ou lorsqu’il n’existe aucune stratégie de placement.
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é :
-
Il envoie un événement de service indiquant que le rééquilibrage de la zone de disponibilité commence.
-
Il lance les tâches dans les zones de disponibilité ayant le plus petit nombre de tâches en cours d’exécution.
-
Il arrête les tâches dans les zones de disponibilité ayant le plus grand nombre de tâches en cours d’exécution.
-
Le planificateur attend que les tâches nouvellement lancées soient
HEALTHYetRUNNINGavant d’arrêter les tâches dans la zone de disponibilité surdimensionnée. -
Il 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 avoir 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 serait 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 chaque zone de disponibilité ayant une tâche chacune, les deux tâches restantes sont réparties de manière égale entre les zones de disponibilité.
Considérations relatives à la configuration du rééquilibrage des zones de disponibilité
Tenez compte des éléments suivants lorsque vous souhaitez configurer le rééquilibrage des zones de disponibilité :
Le rééquilibrage des zones de disponibilité prend en charge Fargate EC2 et les fournisseurs de capacité, et est pris en charge sur les instances gérées Amazon ECS. Pour Fargate, Amazon ECS redistribuera automatiquement les tâches entre les zones de disponibilité disponibles afin de maintenir l’équilibre. Pour les fournisseurs de EC2 capacité, 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 stratégie
Replica -
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 stratégie
Daemon -
Utilise le type de lancement
EXTERNAL(ECS Anywhere) -
Utilise 100 % pour la valeur
maximumPercent -
Utilise un Classic Load Balancer
-
Utilise
attribute:ecs.availability-zonecomme 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.
En effet EC2, vous pouvez utiliser des stratégies de placement et des contraintes de placement en conjonction avec le rééquilibrage des zones de disponibilité. Cependant, pour que le rééquilibrage de la zone de disponibilité fonctionne, la stratégie de placement par répartition des zones 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 distribue d’abord les tâches de manière uniforme entre les zones de disponibilité, puis regroupe les tâches par bin packing en fonction de la mémoire disponible dans chaque zone de disponibilité. Dans ce cas, le rééquilibrage de la répartition des zones de disponibilité fonctionne, car la stratégie de répartition des zones de disponibilité est spécifiée en premier.
Il est important de noter que le rééquilibrage de la zone de disponibilité ne fonctionnera pas si la première stratégie dans le tableau des stratégies de placement n’est pas du type « Répartition 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 contraintes de placement des tâches, consultez la section Comment Amazon ECS place les tâches sur les instances de conteneur.
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é.
La stratégie suivante répartit les tâches de manière uniforme entre les zones de disponibilité, puis regroupe les tâches par bin packing en fonction de la mémoire disponible dans chaque zone de disponibilité. Le rééquilibrage des zones de disponibilité est compatible avec le service, car c’est la stratégie spread qui prime.
"placementStrategy": [ { "field": "attribute:ecs.availability-zone", "type": "spread" }, { "field": "memory", "type": "binpack" } ]
Activation du 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 APIs, AWS CLI, et CloudFormation.
Le comportement par défaut de AvailabilityZoneRebalancing diffère entre les requêtes de création et de mise à jour :
-
Pour créer des requêtes de service, lorsqu’aucune valeur n’est spécifiée pour
AvailabilityZoneRebalancing, Amazon ECS définit la valeur par défaut surENABLED. -
Pour les requêtes de service de mise à jour, lorsqu’aucune valeur n’est spécifiée pour
AvailabilityZoneRebalancing, Amazon ECS utilise par défaut la valeur deAvailabilityZoneRebalancingdu service existant. Si le service n’a jamais défini de valeur pourAvailabilityZoneRebalancing, Amazon ECS la traite commeDISABLED.
| Type de service | « Hello, World! » | Console | INTERFACE DE LIGNE DE COMMANDE (CLI) |
|---|---|---|---|
| Existing | UpdateService | Mettre à jour un service Amazon ECS | update-service |
| New | CreateService | Création d’un déploiement de mise à jour propagée Amazon ECS | create-service |
L’exemple suivant montre comment activer le rééquilibrage des services lors de la création d’un service :
aws ecs create-service \ --cluster my-cluster \ --service-name my-service \ --task-definition my-task-definition:1 \ --desired-count 6 \ --availability-zone-rebalancing ENABLED
Résolution des problèmes de rééquilibrage des services
Si vous rencontrez des problèmes lors du rééquilibrage des services, envisagez les étapes de résolution des problèmes suivantes :
- Le rééquilibrage ne démarre pas
-
Vérifiez que :
-
le rééquilibrage des services est activé pour votre service ;
-
votre service utilise une configuration prise en charge (consultez la section Considérations relatives à la configuration du rééquilibrage des zones de disponibilité) ;
-
votre service a atteint un état stable.
-
- Échecs de placement des tâches pendant le rééquilibrage
-
Si vous voyez des événements
SERVICE_TASK_PLACEMENT_FAILURE:-
Pour EC2 : Vérifiez si des instances de conteneur sont disponibles dans la zone de disponibilité cible
-
Pour Fargate : vérifiez si des contraintes de ressources ou des quotas de service limitent le placement des tâches.
-
Passez en revue vos contraintes de placement des tâches pour vous assurer qu’elles n’empêchent pas une bonne répartition des tâches.
-
- Le rééquilibrage s’arrête de façon inattendue
-
Si vous voyez des événements
SERVICE_REBALANCING_STOPPED:-
Vérifiez s’il existe une protection des tâches susceptible de bloquer l’opération.
-
Recherchez les déploiements de service simultanés susceptibles d’interrompre le rééquilibrage.
-
Consultez les événements de service pour obtenir des informations supplémentaires sur les raisons pour lesquelles le rééquilibrage a été arrêté.
-
Pratiques exemplaires en matière de rééquilibrage des services
Suivez ces pratiques exemplaires pour tirer le meilleur parti du rééquilibrage des services :
-
Surveillez les opérations de rééquilibrage - Configurez des CloudWatch alarmes pour surveiller les événements de service liés au rééquilibrage afin d'identifier rapidement tout problème.
-
Considérer l’impact sur les performances : sachez que les opérations de rééquilibrage peuvent augmenter temporairement l’utilisation des ressources lorsque de nouvelles tâches sont lancées avant que les anciennes ne soient arrêtées.
-
Utiliser la protection des tâches de manière stratégique : si vous avez des tâches critiques qui ne doivent pas être résiliées pendant le rééquilibrage, envisagez d’utiliser la protection des tâches.
-
Planifiez la EC2 capacité : assurez-vous de EC2 disposer de suffisamment d'instances de conteneurs dans toutes les zones de disponibilité pour permettre un rééquilibrage efficace.
-
Tester le comportement du rééquilibrage : avant de vous fier au rééquilibrage en production, testez le comportement de vos services lors des opérations de rééquilibrage dans un environnement hors production.