Saltar al contenido
aprendeaws.dev

Módulo 10 · Operación y automatización/Lección 59

CloudWatch: métricas, logs y alarmas

El tablero de instrumentos: qué está pasando, qué pasó y quién se entera cuando algo se sale de lo normal.

Al terminar podrás

  • →Diferenciar métricas, logs, alarmas y paneles
  • →Crear una alarma que notifique por SNS
  • →Seguir una petición entre servicios con AWS X-Ray

Una aplicación en producción nunca está «terminada»: la usan personas reales, a horas raras, con picos que nadie previó. Necesitas ver qué está pasando ahora, revisar qué pasó anoche y enterarte antes que tus usuarios cuando algo se sale de lo normal.

Amazon CloudWatch es el servicio de observabilidad de AWS. Junta cuatro piezas: métricas, logs, alarmas y paneles. Casi todos los servicios de AWS le envían datos sin que hagas nada.

Métricas: los sensores

Una métrica es una serie de números en el tiempo: uso de CPU cada 5 minutos, peticiones por segundo, errores 5xx. Cada métrica vive en un espacio de nombres (namespace) que agrupa por servicio, como AWS/EC2 o AWS/Lambda, y se identifica con dimensiones: pares clave-valor como InstanceId=i-0abc123 que dicen de qué recurso es el dato.

  • Métricas por defecto: las que cada servicio publica solo. En EC2: CPU, red, operaciones de disco y los chequeos de estado.
  • Métricas personalizadas: las que publicas tú, con el agente de CloudWatch o con la API PutMetricData. La memoria RAM y el espacio libre en disco de una EC2 no vienen por defecto: el hipervisor no ve dentro del sistema operativo, así que necesitas el agente.
  • Monitoreo básico y detallado: por defecto, EC2 envía sus métricas cada 5 minutos (los chequeos de estado, cada minuto). Con el monitoreo detallado las recibes cada minuto, con costo adicional.

Logs: las cámaras

CloudWatch Logs guarda texto con fecha: lo que escribe tu aplicación, los registros de Lambda, los VPC Flow Logs, los de API Gateway. Se organizan en grupos de logs (log groups), normalmente uno por aplicación o función, y dentro de cada grupo, en flujos (log streams), uno por instancia o contenedor. A cada grupo le defines cuánto tiempo conservar los datos.

Para buscar, CloudWatch Logs Insights te deja consultar millones de líneas con un lenguaje sencillo: «las 20 rutas con más errores en la última hora». Y con un filtro de métricas conviertes un patrón de texto (por ejemplo, cada línea con ERROR) en una métrica sobre la que puedes poner una alarma.

Alarmas: quién se entera

Una alarma vigila una métrica y compara su valor con un umbral durante cierto número de periodos. Así evitas que un pico de diez segundos despierte a alguien a las 3 de la mañana. Tiene tres estados:

EstadoQué significa
OKLa métrica está dentro del umbral
ALARMLa métrica cruzó el umbral durante los periodos definidos
INSUFFICIENT_DATANo hay datos suficientes para decidirRecién creada, o el recurso dejó de enviar datos

Al cambiar de estado, la alarma ejecuta acciones:

  • Notificar a un tema de Amazon SNS, que reparte a correos, SMS, Lambda o Slack.
  • Escalar: disparar una política de Auto Scaling para agregar o quitar instancias.
  • Actuar sobre la EC2: detenerla, terminarla, reiniciarla o recuperarla en otro hardware.
  1. 1

    Crea un tema de SNS

    Por ejemplo alertas-produccion, y suscribe tu correo. Confirma la suscripción desde el correo.
  2. 2

    Elige la métrica

    En CloudWatch → Alarms → Create alarm, selecciona AWS/EC2 → CPUUtilization de tu instancia.
  3. 3

    Define la condición

    Mayor que 80 % durante 3 de 3 periodos de 5 minutos. Así ignoras picos sueltos.
  4. 4

    Conecta la acción

    En estado ALARM, notificar al tema alertas-produccion. Agrega también una notificación al volver a OK.

Los paneles (dashboards) juntan gráficas de métricas, resultados de Logs Insights y estados de alarmas en una sola pantalla. Pueden mezclar datos de varias regiones y cuentas.

Seguir una petición: X-Ray y Application Signals

Cuando una petición pasa por API Gateway, una Lambda, una cola y una base de datos, las métricas te dicen que «está lento», pero no dónde. AWS X-Ray sigue cada petición de punta a punta y arma una traza: cuánto tardó cada salto y cuál falló. Con muchas trazas dibuja un mapa de servicios con los tramos lentos resaltados.

CloudWatch Application Signals va un paso más allá: instrumenta tus aplicaciones de forma automática y te muestra por servicio la latencia, los errores y el volumen, y te deja definir objetivos de nivel de servicio (SLO).

  • Amazon CloudWatch

    Los sensores y las pantallas

    Métricas, alarmas y paneles de todos tus recursos.
  • CloudWatch Logs

    Las grabaciones de las cámaras

    Guarda, busca y analiza los registros de texto de tus aplicaciones y servicios.
  • Alarma de CloudWatch

    La alarma que llama al técnico

    Vigila una métrica y avisa o actúa cuando cruza un umbral.
  • AWS X-Ray

    Seguir a un visitante cámara por cámara

    Trazas de cada petición entre servicios y el mapa de dependencias.

Quiz

Pon a prueba lo que aprendiste

0 de 5 correctas · 5 sin responder

  1. 1.Necesitas ver el uso de memoria de tus instancias EC2 en CloudWatch. ¿Qué haces?

  2. 2.El equipo quiere recibir un correo cuando la CPU de un servidor pase del 80 % durante 15 minutos. ¿Qué combinación usa?

  3. 3.Una API lenta pasa por API Gateway, tres funciones Lambda y DynamoDB. ¿Qué servicio muestra en qué tramo se pierde el tiempo?

  4. 4.Acabas de crear una alarma y aún no hay datos de la métrica. ¿En qué estado está?

  5. 5.¿Cada cuánto envía EC2 sus métricas de CPU a CloudWatch si no cambias nada?