Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Comment puis-je résoudre les problèmes de mise à l’échelle avec mon fournisseur de capacité Amazon ECS ?
J'ai créé un fournisseur de capacité pour mon cluster Amazon Elastic Container Service (Amazon ECS) avec le type de lancement Amazon Elastic Compute Cloud (Amazon EC2). Cependant, le fournisseur de capacité ne se met pas à l’échelle comme prévu.
Brève description
Les problèmes suivants empêchent votre fournisseur de capacité Amazon EC2 d’effectuer une réduction ou une augmentation horizontale automatique :
- Vous n'avez pas associé le service Amazon ECS au fournisseur de capacité.
- Vous n'avez pas associé les politiques de mise à l’échelle du fournisseur de capacité au groupe Amazon EC2 Auto Scaling.
- Vous n'avez pas correctement configuré le pourcentage de capacité cible.
- Vous utilisez la mise à l’échelle gérée pour le fournisseur de capacité et des politiques de mise à l’échelle personnalisées sont attachées au groupe EC2 Auto Scaling.
- Le groupe Auto Scaling Amazon EC2 a lancé l'instance de conteneur, mais ne peut pas rejoindre le cluster.
- Vos instances de conteneur ne peuvent pas faire l’objet d’une réduction horizontale ou verticale.
- Le fournisseur de capacité est bloqué à l’état Échec.
- Le groupe Auto Scaling est bloqué dans une boucle de mise à l’échelle.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.
Vérifier que vous avez associé le service Amazon ECS au fournisseur de capacité
Pour vérifier si vous avez associé le service Amazon ECS au fournisseur de capacité, exécutez la commande describe-services de l'interface de ligne de commande AWS suivante :
aws ecs describe-services --cluster example-cluster --services example-service --region example-region --query 'services[].capacityProviderStrategy'
Remarque : Remplacez example-cluster par le nom de votre cluster, example-service par le nom de votre service et example-region par votre région AWS.
Si vous avez associé le service Amazon ECS au fournisseur de capacité, vous recevez une sortie similaire à l'exemple suivant :
[ [ { "capacityProvider": "example-capacity-provider", "weight": 1, "base": 1 } ] ]
Assurez-vous que la valeur de capacityProviderStrategy n’est pas [].
Pour ajouter un fournisseur de capacité au service, exécutez la commande update-service suivante :
aws ecs update-service --cluster example-cluster --service example-service --region example-region --capacity-provider-strategy capacityProvider=capacity-provide-name,weight=weight-value,base=base-value --force-new-deployment
Remarque : Remplacez example-cluster par le nom de votre cluster, example-service par le nom de votre service, example-region par votre région et capacity-provider-name par le nom de votre fournisseur de capacité. Remplacez également weight-value par le nombre total de tâches qui utilisent le fournisseur de capacité et base-value par le nombre minimum de tâches que le fournisseur de capacité doit exécuter.
Vous pouvez également utiliser la console Amazon ECS pour mettre à jour le service.
Assurez-vous d'avoir associé les politiques de mise à l’échelle du fournisseur de capacité au groupe Auto Scaling.
Lorsque vous associez un fournisseur de capacité à un groupe Auto Scaling, Amazon ECS crée une politique de mise à l’échelle qui modifie la capacité en fonction de la charge du cluster.
Pour résoudre les problèmes de politique de mise à l’échelle, examinez les événements AWS CloudTrail pour les appels d'API PutScalingPolicy, UpdateAutoScalingGroup, CreateCapacityProvider et UpdateCapacityProvider. Assurez-vous que la politique peut être associée au groupe Auto Scaling et que le fournisseur de capacité fonctionne comme prévu.
Pour vérifier que le groupe Auto Scaling est un attachement de cluster, exécutez la commande describe-cluster :
aws ecs describe-clusters --clusters example-cluster --include ATTACHMENTS --region example-region --query 'clusters[].attachments[]'
Remarque : Remplacez example-cluster par le nom de votre cluster et example-region par votre région.
Exemple de sortie :
[ { "id": "100a23456-5f0b-4abc-b998-d6789d111a", "type": "as_policy", "status": "CREATED", "details": [ { "name": "capacityProviderName", "value": "example-capacityProvider" }, { "name": "scalingPlanName", "value": "ECSManagedAutoScalingPlan-bb60c8fa-3ed7-4808-b39c-abcdef2345" } ] } ]
Si vous utilisez une politique de mise à l’échelle gérée, procédez comme suit pour vérifier si la politique est associée au groupe Auto Scaling :
- Ouvrez la console Amazon ECS.
- Dans le volet de navigation, choisissez Clusters.
- Sélectionnez votre cluster.
- Choisissez l'onglet Infrastructure.
- Choisissez l'onglet Fournisseurs de capacité.
- Sélectionnez votre groupe Auto Scaling.
Remarque : Cette action vous redirige vers la page Groupes Auto Scaling de la console Amazon EC2. - Sélectionnez l’onglet Mise à l'échelle automatique.
- Choisissez Actions, puis sélectionnez Modifier la politique de mise à l’échelle dynamique.
- Dans le champ Métriques JSON personnalisées, vérifiez que la politique inclut la métrique CapacityProviderReservation.
Vérifier la configuration du pourcentage de votre capacité cible
Vérifiez la métrique Amazon CloudWatch CapacityProviderReservation de votre fournisseur de capacité afin de suivre l'utilisation de ses instances de conteneur. La politique de mise à l’échelle avec suivi de cible qui est associée au groupe Auto Scaling ajuste le nombre d'instances en cours d'exécution pour s'assurer que CapacityProviderReservation correspond à la valeur de capacité cible. Par exemple, si vous définissez la capacité cible sur 100 %, Amazon ECS utilise toutes les instances et effectue une réduction horizontale des instances qui n'exécutent pas de tâches.
Pour configurer une capacité supplémentaire, mettez à jour Définir la capacité cible sur une valeur inférieure à 100.
S’assurer que l'instance lancée à partir du groupe Auto Scaling peut rejoindre le cluster
Si votre instance ne parvient pas à rejoindre le cluster, consultez la section Pourquoi mon instance Amazon EC2 ne peut-elle pas rejoindre le cluster Amazon ECS ?
S’assurer que vos instances de conteneur ne sont pas protégées contre les actions de réduction horizontale ou verticale
Pour les fournisseurs de capacité qui utilisent la protection de la résiliation gérée, Amazon ECS empêche la résiliation des instances Amazon EC2 avec des tâches lors d'une action de réduction horizontale.
Pour arrêter toutes les tâches en cours et permettre au groupe Auto Scaling de résilier l'instance EC2, utilisez la console Amazon ECS pour vider l'instance. Vous pouvez également exécuter la commande update-container-instances-state suivante :
aws ecs update-container-instances-state --cluster example-cluster --container-instances example-container --status DRAINING --region example-region
Remarque : Remplacez examples-cluster par le nom de votre cluster, example-container par votre instance de conteneur et example-region par votre région.
Si les tâches s'exécutent toujours sur l'instance de conteneur après le drainage, consultez la section Comment puis-je résoudre les problèmes liés aux tâches Amazon ECS qui mettent du temps à s'arrêter lorsque l'instance de conteneur est définie sur DRAINING ?
Pour résoudre plus en détail les problèmes liés à la protection de la résiliation gérée, consultez la section Comment puis-je résoudre le paramètre de protection de la résiliation gérée pour l'erreur de fournisseur de capacité dans Amazon ECS ?
Si les protections de mise à l’échelle bloquent les actions de réduction verticale, le message d'erreur suivant s'affiche dans l'historique des activités d'Auto Scaling :
« Could not scale to desired capacity because all remaining instances are protected from scale-in. »
Pour résoudre ce problème, vérifiez vos outils ou des outils tiers, tels que Terraform ou GitLab. Assurez-vous qu'ils ne suppriment pas l’identification AmazonECSManaged du groupe Auto Scaling. Amazon ECS nécessite cette identification pour gérer la mise à l'échelle. Pour vérifier si l’identification AmazonECSManaged est manquante, consultez votre historique d’événements CloudTrail pour l'événement SetInstanceProtection. Si SetInstanceProtection s'affiche, vous devez ajouter à nouveau l’identification à votre groupe Auto Scaling.
Vérifier le statut de votre fournisseur de capacité
Lorsque vous utilisez un fournisseur de capacité, il est recommandé de créer un nouveau groupe Auto Scaling et de ne pas réutiliser un groupe existant. Les instances à l’état En cours d'exécution qui sont associées au groupe existant et enregistrées dans un cluster Amazon ECS peuvent ne pas s'enregistrer correctement.
Pour afficher le statut du fournisseur de capacité, exécutez la commande describe-capacity providers :
aws ecs describe-capacity-providers \ --capacity-providers MyCapacityProvider
Si le statut du fournisseur de capacité est INACTIF, le fournisseur de capacité a été supprimé.
Consultez également les événements CloudTrail pour détecter les erreurs liées à l'API CreateCapacityProvider.
S’assurer que le groupe Auto Scaling n'est pas bloqué dans une boucle de mise à l’échelle
Lorsque la capacité cible que vous avez spécifiée dans votre politique de mise à l’échelle de service Amazon ECS atteint un pic, le groupe Auto Scaling effectue une augmentation horizontale des instances et les lance. Toutefois, si la valeur de la métrique diminue après le pic soudain, le groupe Auto Scaling effectue une réduction horizontale des instances. Si la capacité cible fluctue fréquemment sur une courte période, le groupe Auto Scaling se retrouve bloqué dans une boucle de mise à l’échelle. Pour éviter ce problème, configurez la valeur de capacité cible en fonction de votre charge de travail.
Informations connexes
Présentation approfondie de l’autoscaling de clusters Amazon ECS
- Sujets
- Containers
- Langue
- Français

Contenus pertinents
- demandé il y a 9 mois
- demandé il y a un an
- demandé il y a 8 mois
- demandé il y a 3 ans
- demandé il y a 3 ans
AWS OFFICIELA mis à jour il y a un an