← Volver al catálogo

Amazon CloudWatch

En una frase: Recoge métricas y logs, dibuja paneles y lanza alarmas cuando algo se sale de rango
Documentación oficial: Documentación de Amazon CloudWatch ↗
Incluye: Amazon CloudWatch Logs

Qué es

Amazon CloudWatch es el servicio de observabilidad de AWS. Recoge métricas y logs de los servicios de AWS y de tus aplicaciones, permite crear alarmas que reaccionan automáticamente y paneles para visualizarlo todo. Es la primera herramienta para saber qué está pasando en producción.

Conceptos clave

  • Métricas: series temporales agrupadas en espacios de nombres y dimensiones. EC2 (Elastic Compute Cloud) envía métricas cada 5 minutos por defecto, o cada minuto con la monitorización detallada. Las métricas personalizadas pueden tener resolución de hasta 1 segundo.
  • Memoria y disco de EC2 no vienen por defecto: hace falta el agente de CloudWatch en la instancia (que también envía logs del sistema).
  • Alarmas: estados OK, ALARM e INSUFFICIENT_DATA. Acciones: notificar por SNS (Simple Notification Service), escalar con Auto Scaling, parar, reiniciar o recuperar una instancia EC2, o abrir incidencias. Las alarmas compuestas combinan varias para reducir el ruido, y la detección de anomalías aprende el patrón normal.
  • CloudWatch Logs: grupos y flujos de logs. La retención por defecto es indefinida. Los filtros de métricas convierten patrones de los logs en métricas, los filtros de suscripción envían los logs en tiempo real a Lambda, Firehose u OpenSearch, y Logs Insights permite consultarlos con un lenguaje de consulta. También se pueden exportar a S3 (Simple Storage Service).
  • Paneles (dashboards): pueden combinar métricas de varias cuentas y regiones.
  • Otras funciones: Synthetics (canarios que prueban endpoints), RUM (usuarios reales), Application Signals, Container Insights y Lambda Insights.
  • Los eventos de cambios de estado de AWS los gestiona Amazon EventBridge (antes CloudWatch Events).

Casos de uso típicos

  • Alertar por correo o chat cuando suben los errores o la latencia de una API (Application Programming Interface: interfaz para que los programas se comuniquen).
  • Escalar un grupo de Auto Scaling según la CPU (Central Processing Unit: procesador) o una métrica personalizada.
  • Centralizar los logs de aplicaciones y depurar con Logs Insights.
  • Recuperar automáticamente una instancia EC2 si falla su comprobación de estado del sistema.
  • Paneles operativos para un equipo.

Cuándo NO usarlo

  • Para auditar quién hizo una llamada a la API de AWS: eso es CloudTrail.
  • Para evaluar si la configuración de los recursos cumple unas reglas y ver su historial: AWS Config.
  • Para trazar peticiones entre microservicios: X-Ray o Application Signals.

Comparativa con servicios parecidos

PreguntaServicio
¿Cómo está funcionando? (rendimiento, errores)CloudWatch
¿Quién hizo qué y cuándo en la API de AWS?CloudTrail
¿Cómo estaba configurado un recurso y cumple las normas?AWS Config
¿Por dónde pasó una petición y dónde se tardó?X-Ray

Modelo de precios

Hay un nivel gratuito con métricas básicas, algunas alarmas y algo de ingesta de logs. A partir de ahí se paga por métrica personalizada, por alarma, por GB de logs ingeridos y almacenados, por GB analizado con Logs Insights, por panel y por peticiones a la API. Fijar una retención en los grupos de logs evita pagar almacenamiento indefinido.

Seguridad y alta disponibilidad

Así lo uso en Kopi

En Kopi, cada función Lambda escribe automáticamente en su grupo de logs, y es lo primero que miro cuando algo falla en producción. El rol de ejecución lleva los permisos de logs:CreateLogGroup, CreateLogStream y PutLogEvents. Todos los grupos tienen una retención de 30 días: por defecto los logs no caducan nunca, y un mes basta para depurar sin acumular indefinidamente datos con identificadores de usuario. Como la retención es por grupo y Lambda crea el suyo sin retención en la primera invocación, al desplegar una función nueva creo antes su grupo y le fijo los 30 días. A esta escala no hay alarmas ni paneles; el siguiente paso natural sería una alarma sobre las métricas Errors y Throttles de Lambda.

Trampas de examen

  • "Memoria o espacio en disco de EC2": agente de CloudWatch (no son métricas por defecto).
  • "¿Quién borró el recurso?": CloudTrail, no CloudWatch.
  • "Contar errores en los logs y alertar": filtro de métricas más alarma.
  • "Procesar logs en tiempo real": filtro de suscripción hacia Lambda, Firehose u OpenSearch.
  • "Recuperar la instancia si falla el hardware": alarma con la acción de recuperación de EC2.
  • "Métricas cada minuto en EC2": monitorización detallada.

Preguntas de práctica

Preguntas originales escritas para estos apuntes. No son preguntas reales de examen.

Fuentes