Comment puis-je surveiller l'utilisation élevée de la mémoire pour les tâches Amazon ECS sur Fargate ?

Dernière mise à jour : 12/11/2020

Je souhaite surveiller l'utilisation élevée de la mémoire pour les tâches Amazon Elastic Container Service (Amazon ECS) exécutées sur AWS Fargate.

Résolution

Pour surveiller l'utilisation élevée de la mémoire sur vos tâches Amazon ECS sur Fargate, essayez les options suivantes :

Consultez les métriques Amazon CloudWatch

Consultez les métriques Amazon CloudWatch dans la console Amazon ECS ou dans la console CloudWatch.

Remarque : tout service Amazon ECS qui utilise le type de lancement Fargate est automatiquement activé pour les mesures d'utilisation de la mémoire et du processeur Amazon CloudWatch.

Activez CloudWatch Logs pour vos tâches Fargate

1.    Activez le pilote de journal awslogs.

2.    Ajoutez les paramètres de configuration du journal requis à votre définition de tâche.

3.    Donnez à l'exécution de tâche Amazon ECS pour votre rôle AWS Identity and Access Management (IAM) l'autorisation d'envoyer des journaux à Amazon CloudWatch Logs.

4.    Affichez vos journaux dans la console CloudWatch.

Remarque : vos tâches doivent entrer dans l'état Exécution avant de pouvoir afficher vos journaux.

Utilisez Container Insights pour surveiller l'utilisation de la mémoire

Vous pouvez utiliser CloudWatch Container Insights pour surveiller l'utilisation de la mémoire pour chaque container d'une tâche Fargate.

1.    Ouvrez la console CloudWatch.

2.    Dans le volet de navigation, dans la section Container Insights sélectionnez Ressources.

3.    Pour obtenir plus d'informations sur une ressource, choisissez le nom de la ressource.

Remarque : les tâches sont regroupées selon la définition de tâche pour chaque cluster.

4.    Choisissez le nom de la définition de tâche sur laquelle vous souhaitez plus d'informations.

5.    Dans la section Performances du container, choisissez Actions, puis Afficher les journaux de performances. La fenêtre CloudWatch Logs Insights s'ouvre pour votre cluster ECS.

6.    Dans la zone de requête, saisissez la requête suivante, puis sélectionnez Exécuter la requête :

stats avg(MemoryUtilized) by bin (30m) as period, TaskDefinitionFamily, TaskDefinitionRevision
                | filter Type = "Task" | sort period desc, TaskDefinitionFamily |  limit 10

Utilisez Container Insights pour définir une alarme sur l'utilisation élevée de la mémoire

1.    Ouvrez la console CloudWatch.

2.    Dans le volet de navigation, dans la section Container Insights sélectionnez Surveillance des performances.

3.    Dans le menu déroulant, choisissez Tâches ECS ou Services ECS.

4.    Sur la carte Utilisation de la mémoire, choisissez le développeur (points verticaux), puis sélectionnez Afficher dans les métriques.

5.    Choisissez l'onglet Métriques graphiques, puis choisissez l'icône en forme de cloche dans la colonne Actions correspondant à la tâche sur laquelle vous souhaitez plus d'informations.

6.    À la page Spécifier la métriques et les conditions, choisissez les valeurs souhaitées ou conservez les valeurs par défaut.

7.    Dans la section Conditions sous Définir la valeur de seuil, saisissez 70. Cela définit le seuil d'utilisation de la mémoire de l'alarme à 70 %.

8.    Sélectionnez Suivant.

9.    À la page Configurer les actions, dans la section Sélectionner une rubrique SNS, sélectionnez Créer une nouvelle rubrique.

10.    Sous Envoyer une notification à, saisissez l'ID de l'e-mail auquel vous souhaitez envoyer les notifications d'alarme.

11.    Sélectionnez Suivant.

12.    À la page Ajouter un nom et une description, sous Nom de l'alarme, saisissez un nom pour votre alarme. 

13.    (Facultatif) Dans le champ Description de l'alarme, saisissez la description de votre alarme.

14.    Sélectionnez Suivant, puis choisissez Créer l'alarme.

15.    Confirmez votre abonnement en suivant les instructions figurant dans l'e-mail de confirmation que vous avez reçu d'AWS.

Remarque : CloudWatch ne crée pas automatiquement toutes les métriques possibles à partir des données de journal pour vous aider à gérer vos coûts Container Insights. Vous pouvez afficher des métriques et des niveaux de granularité supplémentaires à l'aide de CloudWatch Logs Insights pour analyser les événements du journal des performances brutes.