Comment puis-je configurer CloudWatch Container Insights pour surveiller mes tâches ECS et le déploiement des conteneurs ?

Date de la dernière mise à jour : 08/04/2022

Je souhaite configurer Amazon CloudWatch Container Insights pour surveiller mes tâches Amazon Elastic Container Service (Amazon ECS) et le déploiement des conteneurs. Comment puis-je procéder ?

Brève description

Container Insights collecte des métriques au niveau du cluster, des tâches et des services. Ces métriques incluent l'utilisation de ressources telles que le processeur, la mémoire, le disque et le réseau et sont disponibles dans les tableaux de bord automatiques CloudWatch.

Vous pouvez configurer Amazon ECS pour activer par défaut tous les nouveaux clusters pour Container Insights. Vous pouvez également activer Container Insights sur des clusters individuels en utilisant les paramètres du cluster lors de sa création. Vous pouvez en outre activer Container Insights sur des clusters existants à l'aide d'AWS Command Line Interface (AWS CLI).

Résolution

Remarque : si vous recevez des messages d'erreurs lors de l'exécution des commandes depuis AWS CLI, assurez-vous que vous utilisez la version AWS CLI la plus récente.

Modifier les paramètres du compte

Activez Container Insights pour tous les nouveaux clusters créés en optant pour le paramètre de compte Container Insights.

Modifier les paramètres du compte à l'aide de la console CloudWatch

  1. Ouvrez la console Amazon ECS.
  2. Dans le panneau de navigation, choisissez la région pour laquelle vous souhaitez modifier les paramètres du compte.
  3. Choisissez les paramètres du compte.
  4. Dans la section CloudWatch Container Insights, vous pouvez activer ou désélectionner la case à cocher pour chaque paramètre de compte pour l'utilisateur et le rôle AWS Identity and Access Management (IAM) authentifiés. Choisissez Save (Enregistrer) une fois que vous avez terminé.
  5. Sur l'écran de confirmation, choisissez Confirm (Confirmer) pour enregistrer la sélection.

Lorsque vous vous connectez en tant qu'utilisateur racine du compte AWS, vous pouvez modifier le paramètre par défaut du compte. Vous pouvez également modifier les paramètres d'un utilisateur IAM ou d'un rôle IAM spécifique du compte.

Modifiez les paramètres de compte par défaut pour tous les utilisateurs ou rôles IAM de votre compte (AWS CLI)

Utilisez cette commande pour modifier le paramètre de compte par défaut pour tous les utilisateurs ou rôles IAM de votre compte. Les modifications qui en résultent s'appliquent à l'ensemble du compte AWS, sauf si un utilisateur ou un rôle IAM remplace explicitement ces paramètres.

aws ecs put-account-setting-default --name containerInsights --value enabled --region <REGION_NAME>

Pour en savoir plus, consultez la section Modifier les paramètres du compte.

Créer un cluster avec Container Insights activé

Vous pouvez utiliser la console Amazon ECS ou AWS CLI pour activer Container Insights pendant la création du cluster.

Créer un cluster avec Container Insights activé à l'aide de la console

Remarque : vérifiez que vous utilisez la nouvelle console Amazon ECS (v2) pour effectuer ces étapes. Si vous souhaitez utiliser la console classique, reportez-vous à la section Créer un cluster à l'aide de la console classique.

  1. Ouvrez la nouvelle console Amazon ECS.
  2. Dans le panneau de navigation, choisissez la région dans laquelle vous souhaitez créer votre cluster.
  3. Choisissez Clusters, puis choisissez Create cluster (Créer un cluster).
  4. Dans la section Configuration du cluster, choisissez les paramètres requis pour créer votre cluster.
  5. Développez Monitoring (Surveillance), puis activez Use Container Insights (Utiliser Container Insights).
  6. Choisissez Create (Créer).

Créer un cluster avec Container Insights activé à l'aide d'AWS CLI

Pour créer un nouveau cluster avec Container Insights activé, exécutez cette commande :

aws ecs create-cluster --cluster-name <CLUSTER_NAME> --settings "name=containerInsights,value=enabled" --region <REGION_NAME>

Activer Container Insights sur un cluster Amazon ECS existant

Pour activer Container Insights sur un cluster existant, exécutez cette commande :

aws ecs update-cluster-settings --cluster <CLUSTER_NAME> --settings name=containerInsights,value=enabled --region <REGION_NAME>

Points relatifs à Container Insights

Lorsque vous utilisez CloudWatch Container Insights, tenez compte des points suivants :

  • Lorsque vous utilisez un type de lancement Amazon Elastic Compute Cloud (Amazon EC2), votre tâche n'a pas besoin d'avoir des configurations de ressources CPU de conteneur. Pour afficher les métriques d'utilisation du CPU au niveau de la tâche ECS, définissez le paramètre CPU au niveau de la tâche ou du conteneur dans la définition de la tâche.
  • Les métriques réseau sont disponibles pour toutes les tâches exécutées sur AWS Fargate. Les métriques réseau sont également disponibles pour les tâches qui s'exécutent sur les instances Amazon EC2 en utilisant les modes réseau bridge ou awsvpc.
  • Pour collecter des métriques au niveau de l'instance à partir de clusters ECS hébergés sur une instance EC2, déployez l'agent CloudWatch.

Utilisez CloudWatch Logs Insights pour afficher les données de Container Insights

Les métriques collectées par Containers Insights pour Amazon ECS ne sont pas suffisamment granulaires pour autoriser le suivi de tâches individuelles. Cela s'explique par le fait que les paramètres disponibles sont tous agrégés et moyennés au niveau de la famille de définition des tâches. Pour effectuer une analyse plus approfondie des données de performance collectées, utilisez les requêtes CloudWatch Logs Insights.

Les métriques de performance Container Insights sont automatiquement collectées sous forme de journaux à l'aide d'événements du journal de performance. Ouvrez la console d'informations CloudWatch Logs et sélectionnez un groupe de journaux dans ce format :

/aws/ecs/containerinsights/<CLUSTER_NAME>/performance

Par exemple, cette requête affiche l'utilisation du processeur et de la mémoire au niveau des tâches :

stats avg(CpuUtilized) as CPU, avg(MemoryUtilized) as Mem by TaskId
| filter Type="Task"
| sort Mem, CPU desc