0Pricing
AWS Solutions Architect · Leçon

Alarmes CloudWatch et alarmes composites

Définissez des alarmes fondées sur des seuils pour déclencher la mise à l’échelle automatique ou des notifications SNS, puis combinez plusieurs alarmes en une alarme composite afin de réduire le bruit des alertes.

Alarmes CloudWatch et alarmes composites est une leçon AWS Solutions Architect gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AWS Solutions Architect, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AWS Solutions Architect comprend 4 leçons au total.

Qu’est-ce qu’une alarme CloudWatch ?

Une alarme CloudWatch surveille une seule métrique ou le résultat d’une expression de calcul de métrique sur une période que vous définissez. Lorsque la métrique franchit un seuil que vous avez défini, l’alarme change d’état et peut automatiquement déclencher une action, comme l’envoi d’une notification SNS, la mise à l’échelle d’un groupe Auto Scaling, l’arrêt d’une instance EC2 ou l’exécution d’un OpsItem de Systems Manager. Les alarmes constituent le principal mécanisme de réponse opérationnelle automatisée dans AWS.

États des alarmes

Une alarme CloudWatch est toujours dans l’un des trois états suivants : OK — la métrique se situe dans le seuil défini ; ALARM — la métrique a franchi le seuil pendant le nombre requis de périodes d’évaluation ; INSUFFICIENT_DATA — l’alarme vient d’être créée, la métrique n’est pas disponible ou un volume de données suffisant n’a pas encore été collecté. Les transitions entre les états déclenchent les actions configurées pour ce changement d’état — vous pouvez utiliser des rubriques SNS différentes pour les états OK, ALARM et INSUFFICIENT_DATA.

# View all alarms and their current state
aws cloudwatch describe-alarms \
  --query 'MetricAlarms[].{Name:AlarmName,State:StateValue,Metric:MetricName}' \
  --output table

# List only alarms currently in ALARM state
aws cloudwatch describe-alarms \
  --state-value ALARM \
  --query 'MetricAlarms[].AlarmName'

Créer une alarme CloudWatch

Lors de la création d’une alarme, vous indiquez : la métrique et l’espace de noms, la statistique (Average, Sum, Maximum, etc.), la période (la fréquence d’évaluation de la métrique, en secondes), le nombre de périodes d’évaluation (le nombre de périodes consécutives pendant lesquelles le seuil doit être franchi), la valeur du seuil et l’opérateur de comparaison. L’alarme se déclenche lorsque la métrique franchit le seuil pendant le nombre indiqué de périodes d’évaluation consécutives.

# Create an alarm: trigger when CPU > 70% for 2 consecutive 5-min periods
aws cloudwatch put-metric-alarm \
  --alarm-name HighCPUAlarm \
  --alarm-description 'Trigger when EC2 CPU exceeds 70%' \
  --metric-name CPUUtilization \
  --namespace AWS/EC2 \
  --dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
  --statistic Average \
  --period 300 \
  --evaluation-periods 2 \
  --threshold 70 \
  --comparison-operator GreaterThanThreshold \
  --alarm-actions arn:aws:sns:us-east-1:111122223333:AlertTeam

Actions des alarmes : SNS, mise à l’échelle automatique, EC2

Les actions des alarmes peuvent cibler plusieurs destinations : les rubriques Amazon SNS (pour envoyer un e-mail, un SMS ou déclencher Lambda), les politiques de mise à l’échelle automatique (pour réduire ou augmenter la taille d’un ASG) et les actions EC2 (pour arrêter, supprimer, redémarrer ou récupérer une instance EC2). Pour chaque état (OK, ALARM, INSUFFICIENT_DATA), vous pouvez indiquer un ensemble d’actions différent — par exemple, notifier l’équipe lorsque l’état est ALARM, envoyer une notification de rétablissement avec OK et générer une alerte pour INSUFFICIENT_DATA afin de détecter les lacunes de supervision.

# Alarm that stops an idle EC2 instance when CPU < 1% for 30 min
aws cloudwatch put-metric-alarm \
  --alarm-name LowCPUStopInstance \
  --metric-name CPUUtilization \
  --namespace AWS/EC2 \
  --dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
  --statistic Average \
  --period 300 \
  --evaluation-periods 6 \
  --threshold 1 \
  --comparison-operator LessThanThreshold \
  --alarm-actions arn:aws:swf:us-east-1:111122223333:action/actions/AWS_EC2.InstanceId.Stop/1.0

Traitement des données manquantes

Lorsque CloudWatch évalue une alarme et que certains points de données sont manquants, vous devez décider comment les traiter. Les options sont : notBreaching (considérer les données manquantes comme étant dans le seuil — l’alarme reste OK si les autres données sont correctes), breaching (considérer les données manquantes comme dépassant le seuil — l’alarme passe à ALARM), ignore (l’état de l’alarme ne change pas) et missing (l’alarme passe à INSUFFICIENT_DATA). Choisir la mauvaise option entraîne des faux positifs ou des défaillances silencieuses — une subtilité importante de l’examen SAA-C03.

# Set missing data treatment on an alarm
aws cloudwatch put-metric-alarm \
  --alarm-name WebsiteLatencyAlarm \
  --metric-name TargetResponseTime \
  --namespace AWS/ApplicationELB \
  --statistic Average \
  --period 60 \
  --evaluation-periods 3 \
  --threshold 2.0 \
  --comparison-operator GreaterThanThreshold \
  --treat-missing-data breaching \
  --alarm-actions arn:aws:sns:us-east-1:111122223333:Ops

Résolution des alarmes et périodes d’évaluation

La résolution de l’alarme correspond au produit de la période par le nombre de périodes d’évaluation. Par exemple, une période de 60 secondes avec 5 périodes d’évaluation signifie que l’alarme prend en compte 5 points de données consécutifs d’une minute. Par défaut, l’alarme ne passe à l’état ALARM que lorsque les cinq périodes franchissent le seuil. Vous pouvez configurer datapoints-to-alarm pour exiger que seuls M points sur N franchissent le seuil — par exemple, 3 sur 5 — ce qui réduit les faux positifs dus aux pics transitoires.

# Alarm that requires 3 out of 5 periods to breach (reduces false positives)
aws cloudwatch put-metric-alarm \
  --alarm-name CPUSpike \
  --metric-name CPUUtilization \
  --namespace AWS/EC2 \
  --dimensions Name=AutoScalingGroupName,Value=my-asg \
  --statistic Average \
  --period 60 \
  --evaluation-periods 5 \
  --datapoints-to-alarm 3 \
  --threshold 80 \
  --comparison-operator GreaterThanThreshold \
  --alarm-actions arn:aws:autoscaling:us-east-1:111122223333:scalingPolicy:...

Alarmes composites : combiner plusieurs alarmes

Une alarme composite évalue l’état de plusieurs autres alarmes à l’aide de la logique booléenne (AND, OR, NOT). Elle passe à l’état ALARM uniquement lorsque l’évaluation de son expression de règle est vraie. Les alarmes composites servent à réduire le bruit des alertes — par exemple, générer une alerte uniquement si les alarmes de processeur élevé et de latence élevée se déclenchent simultanément, car un processeur élevé peut être acceptable à lui seul pendant un traitement par lots. Vous pouvez également utiliser des alarmes composites pour supprimer les alarmes enfants pendant les fenêtres de maintenance.

# Create a composite alarm (alerts only when BOTH CPU and latency are high)
aws cloudwatch put-composite-alarm \
  --alarm-name HighLoadComposite \
  --alarm-rule 'ALARM("HighCPUAlarm") AND ALARM("HighLatencyAlarm")' \
  --alarm-actions arn:aws:sns:us-east-1:111122223333:CriticalOps \
  --alarm-description 'Alert only when both CPU and latency are elevated'

Suppression des alarmes avec des alarmes composites

Les alarmes composites prennent en charge les actions de suppression d’alarme — vous pouvez configurer une alarme composite pour supprimer ses alarmes enfants pendant une maintenance planifiée. Par exemple, pendant une fenêtre de déploiement, vous pouvez définir une alarme composite qui combine une alarme « MaintenanceMode » avec une logique OR, afin de supprimer toutes les notifications des alarmes enfants pendant la maintenance. Cela évite une avalanche d’alertes lorsque vous mettez intentionnellement des services hors ligne pour effectuer des mises à niveau.

# Composite alarm with suppression: alert UNLESS maintenance is active
aws cloudwatch put-composite-alarm \
  --alarm-name ProductionAlerts \
  --alarm-rule 'ALARM("HighCPUAlarm") AND NOT ALARM("MaintenanceModeAlarm")' \
  --alarm-actions arn:aws:sns:us-east-1:111122223333:ProductionOps

Intégration aux politiques de mise à l’échelle automatique

Les groupes Auto Scaling utilisent les alarmes CloudWatch comme déclencheurs pour les politiques de mise à l’échelle par étapes et de mise à l’échelle simple. Lorsque l’alarme passe à l’état ALARM, la politique de mise à l’échelle s’exécute. Pour la mise à l’échelle par étapes, vous définissez plusieurs ajustements de mise à l’échelle correspondant à différentes plages de seuils — par exemple, ajouter 1 instance si le processeur est entre 70 et 80 %, en ajouter 3 entre 80 et 90 % et en ajouter 5 au-delà de 90 %. L’alarme déclenche la première étape applicable en fonction du niveau de dépassement lors de l’évaluation.

# Create a scale-out alarm linked to an ASG scaling policy
aws cloudwatch put-metric-alarm \
  --alarm-name ScaleOutTrigger \
  --metric-name CPUUtilization \
  --namespace AWS/EC2 \
  --dimensions Name=AutoScalingGroupName,Value=my-asg \
  --statistic Average \
  --period 60 \
  --evaluation-periods 2 \
  --threshold 70 \
  --comparison-operator GreaterThanThreshold \
  --alarm-actions arn:aws:autoscaling:us-east-1:111122223333:scalingPolicy:POLICY_ARN

Alarmes de facturation CloudWatch

Vous pouvez créer des alarmes de facturation dans CloudWatch pour être averti lorsque vos frais AWS estimés dépassent un seuil. Les métriques de facturation sont publiées uniquement dans la région us-east-1, quel que soit l’emplacement de vos ressources, et sont mises à jour environ toutes les 6 heures. Pour activer les alarmes de facturation, vous devez d’abord activer les Billing Alerts dans la console AWS Billing. L’outil le plus précis est AWS Budgets, mais les alarmes de facturation CloudWatch restent une option valide évaluée à l’examen.

# Create a billing alarm for $100 threshold
aws cloudwatch put-metric-alarm \
  --region us-east-1 \
  --alarm-name MonthlyBillingAlert \
  --alarm-description 'Alert when estimated charges exceed $100' \
  --metric-name EstimatedCharges \
  --namespace AWS/Billing \
  --dimensions Name=Currency,Value=USD \
  --statistic Maximum \
  --period 86400 \
  --evaluation-periods 1 \
  --threshold 100 \
  --comparison-operator GreaterThanThreshold \
  --alarm-actions arn:aws:sns:us-east-1:111122223333:BillingAlerts

Tester et superviser les alarmes

Vous pouvez définir manuellement l’état d’une alarme à l’aide de la commande set-alarm-state afin de tester les actions de l’alarme sans attendre qu’un seuil réel soit franchi. Cela permet de vérifier que vos rubriques SNS, vos politiques de mise à l’échelle automatique et vos fonctions Lambda réagissent correctement. Testez toujours les actions de vos alarmes dans un environnement hors production et vérifiez que les abonnements par e-mail de la rubrique SNS appropriée ont été confirmés avant de vous fier aux alarmes pour les alertes de production.

# Manually trigger an alarm for testing (does NOT persist — reverts on next evaluation)
aws cloudwatch set-alarm-state \
  --alarm-name HighCPUAlarm \
  --state-value ALARM \
  --state-reason 'Testing alarm action'

# Watch alarm state history
aws cloudwatch describe-alarm-history \
  --alarm-name HighCPUAlarm \
  --history-item-type StateUpdate \
  --query 'AlarmHistoryItems[].{Time:Timestamp,Summary:HistorySummary}'

Vérification rapide

Testez votre compréhension des concepts AWS Solutions Architect (SAA-C03) abordés dans cette leçon.

Récapitulatif de la leçon

Dans cette leçon, vous avez appris que les alarmes ont trois états (OK, ALARM, INSUFFICIENT_DATA) et peuvent déclencher des actions SNS, Auto Scaling et EC2, que datapoints-to-alarm permet une évaluation M-sur-N afin de réduire les faux positifs et que les alarmes composites utilisent la logique booléenne pour combiner plusieurs alarmes et réduire le bruit des alertes. Nous allons maintenant découvrir CloudWatch Logs et Log Insights pour la gestion centralisée des journaux.

Questions Fréquemment Posées

La leçon « Alarmes CloudWatch et alarmes composites » est-elle gratuite ?

Oui — le texte complet de « Alarmes CloudWatch et alarmes composites » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AWS Solutions Architect, passe à CoddyKit PRO. Le cours AWS Solutions Architect comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Alarmes CloudWatch et alarmes composites » ?

Définissez des alarmes fondées sur des seuils pour déclencher la mise à l’échelle automatique ou des notifications SNS, puis combinez plusieurs alarmes en une alarme composite afin de réduire le brui… Tu pratiques AWS Solutions Architect avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AWS Solutions Architect ?

Aucune expérience préalable n'est requise. AWS Solutions Architect sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Alarmes CloudWatch et alarmes composites » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AWS Solutions Architect ?

Oui. Chaque leçon AWS Solutions Architect inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Métriques, espaces de noms et dimensions CloudWatch
  2. Alarmes CloudWatch et alarmes composites
  3. Journaux CloudWatch et Log Insights
  4. Tableaux de bord CloudWatch et Container Insights
← Retour à AWS Solutions Architect