• 20 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 09/03/2023

Mettez en place de la surveillance et de la notification d’alerte

Désormais, le site de The Green Earth Post est déployé, fonctionnel et sécurisé contre les attaques.

Cependant, il est nécessaire de mettre en place un système de surveillance (monitoring) et de notifications d’alerte (alerting) pour s’assurer de la bonne santé du site web. En effet, cela permet de détecter rapidement des anomalies et de les corriger le plus tôt possible. Sans ce type de système, on expose le site web à d’éventuelles pannes et, surtout, on risque de devoir déboguer en catastrophe à n’importe quel moment de la journée (par exemple au milieu de la nuit 😭🤯).

Manipulez les logs et les métriques des ressources AWS

Amazon CloudWatch est le service qui vous permet de collecter des données de vos applications et infrastructures pour pouvoir les surveiller et être notifié en cas de problème. Selon l’architecture générale suivante, CloudWatch est articulé autour de 5 briques :

Des flèches mènent des sources vers les services CloudWatch: Metrics, Logs qui les filtrent, Insights, Event Bridge. Un autres service mentionnée est Alarmes CloudWatch

Métriques

CloudWatch collecte des données de tous les services AWS et les agrège, selon des dimensions, pour obtenir des métriques contenues des noms d’espace (namespaces).

Capture d'écran de la liste
Liste de toutes les métriques
Capture d'écran des métriques EC2
Liste des métriques EC2

Vous pouvez également créer des métriques personnalisées avec le SDK AWS. Les valeurs des métriques sont horodatées et donc il est possible de les représenter sous forme de graphiques dans des tableaux de bord.  

Capture d'écran des graphiques pour EBS
Tableau de bord pour EBS

En utilisant les flux de métriques (metrics streams), vous pouvez livrer les métriques à d’autres systèmes en quasi temps réel pour être analysées ; le lac de données est le cas d’usage le plus fréquent :

Un chemin mène de CloudWatch Metrics vers Amazon Kinesis Data Firehose puis vers S3. Une flèche mène de Athena vers S3
Intégration des flux de métriques avec des services AWS. * - Nous verrons le service Amazon Kinesis Data Firehose plus tard.

Alarmes

Une alarme est utilisée pour surveiller une métrique CloudWatch unique ou le résultat d'une expression mathématique basée sur des métriques CloudWatch. Lorsque la métrique dépasse un seuil, défini à la création de l’alarme, celle-ci s’enclenche. Trois actions sont possibles :

  • effectuer l’arrêt, la résiliation, le redémarrage ou la récupération d’une instance EC2 ;

  • déclencher un Auto Scaling ;

  • envoyer une notification (sms, email…) via le service Amazon SNS (à étudier plus tard).

Journaux (Logs)

CloudWatch collecte les logs des applications installées dans les services AWS (Lambda, EC2, ECS, API Gateway…). Ils sont regroupés dans des groupes de journaux et des flux de journaux

Capture d'écran de détails de groupes de journaux
Groups de journaux

Par défaut, les instances EC2 n’envoient pas de logs. Il faut y installer un agent CloudWatch Logs.

Les flèches mènent de deux Agents CloudWatch Logs, l'instance EC2 et Machine On-Premises vers CloudWatch logs
Illustration d’un agent CloudWatch Logs. Il est possible d’installer Agent CloudWatch Logs sur des machines On-Premise

CloudWatch vous permet d’exporter vos logs afin de les analyser avec d’autres systèmes :

  • Exporter vos logs dans un compartiment S3 où ils pourront être ensuite analysés avec Athena. Les logs ne pourront pas être analysés en temps réel !

  • Souscrire à un abonnement pour les analyser en temps réel.

Un chemin mène de CloudWatch Logs vers l'abonnement CloudWatch Logs et se divise en trois chemins séparés: 1 - Amazon Kinesis Data Streams, puis  EMR. 2. Amazon Kinesis Data Firehose, puis S3 qui interagit avec Athena. 3. AWS Lambda puis OpenSearch

Fonctionnement des abonnements CloudWatch Logs

A - Il est possible d’ajouter un filtre sur les logs à extraire.

Informations (Insights)

CloudWatch Insights vous aident à obtenir une visibilité opérationnelle sur vos ressources AWS. Il est composé de 4 rubriques :

  • Container Insights : collecte les logs et métriques systèmes des conteneurs ECS et EKS.

    • Pour EKS et Kubernetes, il faut une version conteneurisée de l'agent CloudWatch.

  • Lambda Insights : collecte des métriques détaillées pour dépanner les fonctions Lambda.

  • Contributors Insights : vous aide à trouver, via CloudWatch Logs, les premiers contributeurs.

    • exemple : trouvez le top 10 des adresses IP qui accèdent à notre site web.

  • Application Insights : vous crée automatiquement des tableaux de bord pour dépanner votre application et les services AWS associés.

EventBridge (anciennement CloudWatch Events)

C’est un service de bus d'événements sans serveur qui permet de connecter des services/applications avec d’autres services/applications AWS ou externes.

Un chemin mène du groupe 'des exemples de sources' (S3, EC2, WAF, CRON; A) vers EventBridge (bus d'événelents, C), puis vers (B) et finit sur les exemples de destinations (SNS, SQS, AWS Batch, Auto Scaling)
Illustration du fonctionnement du service Amazon EventBridge.

A - Tous les événements (au format JSON) des services AWS sont envoyés dans le bus par défaut EventBridge.

B - Définissez des règles pour les appliquer à certains types d’événements, et définir à quel(s) service(s) les transmettre.

C - EventBridge dispose d’un registre des schémas (schema registry) qui vous permet de générer du code pour votre application, qui saura à l'avance comment les données sont structurées dans le bus d'événements.

À vous de jouer !

Bannière A vous de jouer

Afin de visualiser et surveiller l'infrastructure et les applications qui composent le site web de The Green Earth Post, il vous faut créer un tableau de bord. Pour vous initier à cela, réalisez les actions suivantes :

  • créez un tableau de bord vierge ;

  • ajoutez un graphique basé sur la métrique CPUUtilization du groupe Auto Scaling.

Poursuivez avec moi pour voir si vous avez bien réussi.

Auditez votre compte AWS

Le service AWS CloudTrail, activé par défaut, vous aide à assurer l’audit opérationnel et des risques, la gouvernance et la conformité de votre compte AWS. CloudTrail stocke des événements correspondant à des actions effectuées par :

  • un utilisateur ;

  • un rôle ;

  • un service AWS ;

  • SDK/CLI ;

  • des appels d’API AWS.

Trois types d’événements sont capturés :

Screenshot du page 'historique des événements'
Un extrait d’événements sur CloudTrail

Pour faire analyser ces événements par d’autres systèmes de surveillance, créez un journal d'activité/suivi (trail), c’est-à-dire une configuration pour une ou toutes les régions AWS permettant la livraison d'événements vers un compartiment Amazon S3 de votre choix. Vous pouvez également spécifier CloudWatch Logs et EventBridge.

Les chemins mènenes de Services AWS, SDK et CLI, Console de gestion AWS, utilisateurs IAM et Rôle IAM vers CloudTrail (B), puis le chemin continue (A) vers CloudWatch Logs (C), S3 qui interagit avec Athena (C) et EventBridge (E) qui interagit avec SNS
Intégration du service AWS CloudTrail avec d’autres services AWS

A - Créez un journal d’activité/de suivi pour transférer les événements.

B - Inspectez et auditez les événements CloudTrail via la console.

C - Envoyez certains événements CloudTrail pour être analysés avec CloudWatch Logs.

D - Les événements CloudTrail ne peuvent pas être stockés plus de 90 jours. Sauvegardez-les dans un compartiment et analysez-les avec Athena.

E - Les événements CloudTrail sont envoyés dans EventBridge où vous pouvez activer des alertes si un type d’événement est détecté (ex. : compartiment s3 supprimé).

AWS Config est un autre service AWS intéressant pour auditer et valider la conformité des configurations de vos ressources AWS. Il vous aide à définir des règles de conformité que vos ressources doivent respecter. Quelques exemples  : 

  • Quand un volume EBS est créé, le chiffrement doit être activé.

  • Le nombre d’instances EC2 dans un compte reste inférieur à un seuil.

  • Les compartiments S3 ne doivent pas autoriser d’accès public.

Qu’est-ce qui se passe si une des règles n’est pas respectée ?

Dans ce cas, AWS Config peut :

  • envoyer un événement dans EventBridge pour de la notification :

Une flèche à double sens connecte S3 avec AWS Config (A, D). Le chemin continue (B) vers EventBridge, puis vers SNS
Notification d’un problème de conformité avec les services AWS Config, Amazon EventBridge et Amazon SNS

A - AWS Config surveille si les compartiments n’ont pas d’accès public.

B - AWS Config déclenche un événement concernant la ressource non conforme.

C - Notifier un admin, par exemple.

D - Un compartiment n’est pas conforme.

  • corriger les ressources non-conformes à l’aide d'AWS SSM :

Une fleche à double sens connecte S3 et AWS config (A, D). Le chemin continue (B) de AWS Config vers AWS SSM,  puis encore vers S3 (C)
Correctif d’un problème de conformité avec les services AWS Config et AWS SSM

A - AWS Config surveille si les compartiments n’ont pas d’accès public.

B - AWS Config déclenche un correctif via SSM.

C - SSM désactive l’accès public sur le compartiment concerné.

D - Un compartiment n’est pas conforme.

Protégez votre compte

Voici une liste de services AWS pour protéger votre compte :

  • Amazon GuardDuty protège votre compte en utilisant l'apprentissage automatique pour découvrir des menaces. Il s’appuie sur des sources de données, par exemple les événements dans CloudTrail. 

  • Amazon Inspector détecte et analyse automatiquement les instances EC2 et les images de conteneur résidant dans ECR à la recherche de vulnérabilités logicielles et d'exposition involontaire au réseau. 

  • Amazon Macie utilise l'apprentissage automatique et la correspondance de modèles pour découvrir et protéger vos données sensibles dans AWS.

  • Amazon Macie aide à identifier et à vous alerter sur les données sensibles non protégées telles que les informations personnelles identifiables.

En résumé

  • Cloudwatch vous permet de collecter des logs et des métriques à surveiller.

  • Vous pouvez créer des tableaux de bord avec CloudWatch.

  • CloudTrail vous aide à auditer votre compte AWS.

Découvrons dans le prochain chapitre comment mettre en place un système de notification !

Exemple de certificat de réussite
Exemple de certificat de réussite