Alarmas y alarmas compuestas de CloudWatch
Configure alarmas basadas en umbrales para activar Auto Scaling o notificaciones de SNS y combine varias alarmas en una alarma compuesta para reducir el ruido de las alertas
Alarmas y alarmas compuestas de CloudWatch es una lección gratuita de Cloud & IT Cert Prep en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cloud & IT Cert Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
¿Qué es una alarma de CloudWatch?
Una alarma de CloudWatch supervisa una única métrica o el resultado de una expresión de operaciones matemáticas de métricas durante un período que usted especifica. Cuando la métrica supera el umbral que ha definido, la alarma cambia de estado y puede desencadenar una acción automáticamente, como enviar una notificación de SNS, escalar un grupo de Auto Scaling, detener una instancia de EC2 o ejecutar un elemento de trabajo de Systems Manager. Las alarmas son el mecanismo principal para responder automáticamente a eventos operativos en AWS.
Estados de las alarmas
Una alarma de CloudWatch siempre se encuentra en uno de tres estados: OK: la métrica está dentro del umbral definido; ALARM: la métrica ha superado el umbral durante el número de períodos de evaluación requerido; INSUFFICIENT_DATA: la alarma se acaba de crear, la métrica no está disponible o todavía no se han recopilado suficientes datos. Las transiciones entre estados desencadenan las acciones configuradas para ese cambio de estado; puede tener diferentes temas de SNS para los estados OK, ALARM e 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'Creación de una alarma de CloudWatch
Al crear una alarma, debe especificar: la métrica y el espacio de nombres, la estadística (Average, Sum, Maximum, etc.), el período (cada cuántos segundos se evalúa la métrica), los períodos de evaluación (cuántos períodos consecutivos deben superar el umbral), el valor del umbral y el operador de comparación. La alarma se activa cuando la métrica supera el umbral durante el número especificado de períodos de evaluación consecutivos.
# 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:AlertTeamAcciones de alarma: SNS, Auto Scaling y EC2
Las acciones de alarma pueden dirigirse a varios destinos: temas de Amazon SNS (para enviar correo electrónico, SMS o activar Lambda), políticas de Auto Scaling (para reducir o aumentar un ASG) y acciones de EC2 (para detener, terminar, reiniciar o recuperar una instancia de EC2). Para cada estado (OK, ALARM, INSUFFICIENT_DATA) puede especificar un conjunto diferente de acciones; por ejemplo, notificar al equipo cuando se produzca ALARM, notificar la recuperación mediante OK y generar una alerta para INSUFFICIENT_DATA a fin de detectar brechas de supervisión.
# 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.0Tratamiento de datos faltantes
Cuando CloudWatch evalúa una alarma y faltan algunos puntos de datos, debe decidir cómo tratarlos. Las opciones son: notBreaching (tratar los datos faltantes como si estuvieran dentro del umbral; la alarma permanece en OK si los demás datos también están en OK), breaching (tratar los datos faltantes como si superaran el umbral; la alarma pasa a ALARM), ignore (el estado de la alarma no cambia) y missing (la alarma pasa a INSUFFICIENT_DATA). Elegir la opción incorrecta provoca falsos positivos o fallos silenciosos: un matiz importante del 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:OpsResolución de alarmas y períodos de evaluación
La resolución de la alarma es el producto de período × períodos de evaluación. Por ejemplo, un período de 60 segundos con 5 períodos de evaluación significa que la alarma considera 5 puntos de datos consecutivos de 1 minuto. De forma predeterminada, la alarma solo pasa a ALARM cuando los cinco períodos superan el umbral. Puede configurar datapoints-to-alarm para requerir que solo M de N períodos superen el umbral —por ejemplo, 3 de 5—, lo que reduce los falsos positivos provocados por picos transitorios.
# 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:...Alarmas compuestas: combinación de varias alarmas
Una alarma compuesta evalúa el estado de varias alarmas mediante lógica booleana (AND, OR, NOT). Pasa al estado ALARM únicamente cuando la expresión de su regla se evalúa como verdadera. Las alarmas compuestas se utilizan para reducir el ruido de las alertas; por ejemplo, para generar una alerta solo si las alarmas de CPU alta Y latencia alta se activan simultáneamente, ya que una CPU alta por sí sola puede ser aceptable durante el procesamiento por lotes. También puede usar alarmas compuestas para suprimir las alarmas secundarias durante las ventanas de mantenimiento.
# 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'Supresión de alarmas con alarmas compuestas
Las alarmas compuestas admiten acciones de supresión de alarmas: puede configurar una alarma compuesta para suprimir sus alarmas secundarias durante un mantenimiento planificado. Por ejemplo, durante una ventana de implementación, podría configurar una alarma compuesta que combine una alarma 'MaintenanceMode' con lógica OR y suprima todas las notificaciones de las alarmas secundarias mientras el mantenimiento esté activo. Esto evita una avalancha de alertas cuando desconecta intencionadamente servicios para realizar actualizaciones.
# 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:ProductionOpsIntegración con políticas de Auto Scaling
Los grupos de Auto Scaling utilizan alarmas de CloudWatch como desencadenadores de políticas de step scaling y simple scaling. Cuando la alarma pasa al estado ALARM, se ejecuta la política de escalado. En el caso de step scaling, se definen varios ajustes de escalado para diferentes rangos de umbral; por ejemplo, añadir 1 instancia si la CPU está entre el 70 % y el 80 %, añadir 3 si está entre el 80 % y el 90 % y añadir 5 si supera el 90 %. La alarma activa el primer paso aplicable según el nivel de superación del umbral en el momento de la evaluación.
# 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_ARNAlarmas de facturación de CloudWatch
Puede crear alarmas de facturación en CloudWatch para recibir una notificación cuando los cargos estimados de AWS superen un umbral. Las métricas de facturación solo se publican en la región us-east-1, independientemente de dónde se ejecuten sus recursos, y se actualizan aproximadamente cada 6 horas. Para habilitar las alarmas de facturación, primero debe activar Billing Alerts en la consola de facturación de AWS. La herramienta más precisa es AWS Budgets, pero las alarmas de facturación de CloudWatch siguen siendo una opción válida que se evalúa en el 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:BillingAlertsPrueba y supervisión de alarmas
Puede establecer manualmente el estado de una alarma mediante el comando set-alarm-state para probar las acciones de la alarma sin esperar a que se supere un umbral real. Esto resulta útil para verificar que los temas de SNS, las políticas de Auto Scaling y las funciones de Lambda responden correctamente. Pruebe siempre las acciones de alarma en un entorno que no sea de producción y compruebe que las suscripciones de correo electrónico del tema de SNS correcto estén confirmadas antes de confiar en las alarmas para generar alertas en producción.
# 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}'Comprobación rápida
Compruebe sus conocimientos sobre los conceptos de AWS Solutions Architect (SAA-C03) tratados en esta lección.
Resumen de la lección
En esta lección ha aprendido que las alarmas tienen tres estados (OK, ALARM, INSUFFICIENT_DATA) y pueden activar acciones de SNS, Auto Scaling y EC2; que datapoints-to-alarm permite realizar evaluaciones M-de-N para reducir los falsos positivos; y que las alarmas compuestas utilizan lógica booleana para combinar varias alarmas y reducir el ruido de las alertas. A continuación, exploraremos CloudWatch Logs y Log Insights para la gestión centralizada de registros.
Preguntas frecuentes
¿La lección «Alarmas y alarmas compuestas de CloudWatch» es gratis?
Sí — el texto completo de «Alarmas y alarmas compuestas de CloudWatch» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cloud & IT Cert Prep, actualiza a CoddyKit PRO. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
¿Qué aprenderé en «Alarmas y alarmas compuestas de CloudWatch»?
Configure alarmas basadas en umbrales para activar Auto Scaling o notificaciones de SNS y combine varias alarmas en una alarma compuesta para reducir el ruido de las alertas Practicas Cloud & IT Cert Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cloud & IT Cert Prep?
No se requiere experiencia previa. Cloud & IT Cert Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Alarmas y alarmas compuestas de CloudWatch»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cloud & IT Cert Prep?
Sí. Cada lección de Cloud & IT Cert Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Métricas, espacios de nombres y dimensiones de CloudWatch
- Alarmas y alarmas compuestas de CloudWatch
- Logs y Log Insights de CloudWatch
- Paneles de CloudWatch y Container Insights