Résolution des problèmes liés aux services Amazon ECS Express Mode - 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.

Résolution des problèmes liés aux services Amazon ECS Express Mode

Cette section vous aide à identifier et à résoudre les problèmes courants lors du déploiement et de la gestion des services en mode Express.

Problèmes de déploiement

Service bloqué en état ACTIF ou ÉPUISANT

Symptômes : DescribeServiceRevisions indique que les ressources sont toujours en cours de provisionnement ou de déprovisionnement. DescribeServices indique que le déploiement n'est pas stabilisé

Causes possibles et solutions :

  • Autorisations IAM insuffisantes : vérifiez que le rôle d'exécution des tâches et le rôle d'infrastructure disposent des autorisations nécessaires, comme indiqué dans leurs politiques gérées respectives.

    # Check if the role has the required managed policy aws iam list-attached-role-policies --role-name ecsTaskExecutionRole
  • Échec de l'extraction de l'image : assurez-vous que l'image du conteneur existe et qu'elle est accessible.

    # Test image pull manually docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-app:latest
  • Problèmes de connectivité réseau : vérifiez que les sous-réseaux disposent d'un accès à Internet ou de points de terminaison AWS Amazon VPC pour les services.

  • Limites de ressources : vérifiez que votre compte dispose d'une capacité Fargate suffisante et que les quotas de service ne sont pas atteints.

Étapes de diagnostic :

  1. DescribeExpressGatewayService À utiliser pour obtenir votre révision de service actuelle, puis DescribeServiceRevisions pour ServiceRevision obtenir l'état du provisionnement ou du déprovisionnement

  2. Consultez les événements de service dans la console Amazon ECS pour obtenir des messages d'erreur détaillés.

  3. Vérifiez que le port du conteneur a été correctement configuré

  4. Vérifiez les quotas AWS de service pour Amazon ECS et Fargate.

Défaillances au démarrage des tâches

Symptômes : les tâches ne démarrent pas ou s'arrêtent immédiatement après le démarrage.

Causes courantes :

  • Erreurs d'application : l'application conteneur se ferme en raison d'erreurs de configuration ou d'exécution.

  • Échec des tests de santé : l'application ne répond pas aux contrôles de santé sur le port ou le chemin attendu.

  • Contraintes de ressources : allocation de processeur ou de mémoire insuffisante pour l'application.

  • Variables ou secrets d'environnement manquants - La configuration requise n'est pas disponible pour l'application.

Étapes de résolution :

  1. Vérifiez les journaux de l'application dans CloudWatch Logs, obtenez le nom du groupe de journaux auprès de DescribeServiceRevisions :

    aws logs describe-log-streams --log-group-name /ecs/express-service-my-app aws logs get-log-events --log-group-name /ecs/express-service-my-app --log-stream-name stream-name
  2. Vérifiez que le chemin de vérification de l'état renvoie le statut HTTP 200.

  3. Testez l'image du conteneur localement pour vous assurer qu'elle démarre correctement.

  4. Vérifiez et ajustez les allocations de processeur et de mémoire si nécessaire.

Problèmes de connectivité

Application inaccessible via l'équilibreur de charge

Symptômes : l'URL de l'application renvoie des délais d'expiration ou des erreurs de connexion.

Étapes de résolution des problèmes :

  1. Vérifiez que le provisionnement de vos ressources est terminé

  2. Vérifiez que les tâches sont en cours d'exécution et qu'elles fonctionnent correctement :

    aws ecs describe-services --cluster my-cluster --services my-express-service
  3. Vérifiez l'état du groupe cible Application Load Balancer :

    aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:region:account:targetgroup/name/id
  4. Assurez-vous que l'application écoute sur le port approprié à l'intérieur du conteneur.

Problèmes de performance

Temps de réponse lents

Symptômes : les réponses aux demandes sont plus lentes que prévu.

Approche diagnostique :

  1. Surveillez l'utilisation du processeur et de la mémoire :

    # Check CloudWatch metrics for the service aws cloudwatch get-metric-statistics \ --namespace AWS/ECS \ --metric-name CPUUtilization \ --dimensions Name=ServiceName,Value=my-express-service Name=ClusterName,Value=my-cluster \ --start-time 2024-01-01T00:00:00Z \ --end-time 2024-01-01T01:00:00Z \ --period 300 \ --statistics Average
  2. Consultez les journaux des applications pour détecter les erreurs ou les avertissements relatifs aux performances.

  3. Vérifiez si le dimensionnement automatique répond correctement à la charge.

  4. Analysez les métriques de l'équilibreur de charge pour la distribution des demandes.

Stratégies d'optimisation :

  • Augmentez l'allocation du processeur ou de la mémoire si les ressources sont limitées.

  • Ajustez les seuils de mise à l'échelle automatique pour effectuer une mise à l'échelle plus tôt.

  • Optimisez le code de l'application et les requêtes de base de données.

Le dimensionnement automatique ne fonctionne pas comme prévu

Symptômes : le service n'augmente pas en cas de charge élevée ou ne diminue pas en cas de faible charge.

Étapes de résolution des problèmes :

  1. Vérifiez les politiques de dimensionnement automatique et leur configuration :

    aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-express-service
  2. Passez en revue CloudWatch les métriques pour vous assurer que les déclencheurs de mise à l'échelle sont respectés.

  3. Vérifiez que le service est autorisé à évoluer (vérifiez les rôles IAM).

  4. Vérifiez les activités de mise à l'échelle et leurs résultats.

Outils de surveillance et de débogage

Utilisation de CloudWatch Container Insights

Activez Container Insights pour une surveillance complète :

aws ecs put-account-setting --name containerInsights --value enabled

Container Insights fournit :

  • Mesures relatives au processeur, à la mémoire, au disque et au réseau

  • Tableaux de bord de surveillance des performances

  • Corrélation et analyse des logs

  • Détection des anomalies