Solución de problemas en aplicaciones desplegadas

Implementación de aplicaciones en AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Se agotó el tiempo de la tarea

  • Una función falla, pero solo a veces
  • El registro dice «Task timed out»
  • La firma apunta a la causa real

Un cronómetro junto a una línea de registro de error que muestra una tarea de Lambda que agotó el tiempo

Implementación de aplicaciones en AWS

Firmas comunes de fallos en Lambda

Cuadrícula 2x2 de firmas de fallos de Lambda: Timeout con registro task-timed-out, Throttled con TooManyRequestsException, Access Denied con AccessDeniedException y Out of Memory con error signal-killed

  • Timeout: «Task timed out after N seconds»
  • Throttle: TooManyRequestsException
  • Denegación IAM: AccessDenied, not authorized
  • Sin memoria: runtime terminado a mitad de ejecución
Implementación de aplicaciones en AWS

Primera respuesta ante una función que falla

  • Lee el mensaje de error antes de cambiar nada
  • Asígnalo a una firma conocida
  • Revisa la latencia downstream para timeouts
  • Cambia una cosa y vuelve a probar

Bucle de decisión para diagnosticar: leer el mensaje de error, asociarlo a una firma conocida, comprobar latencia downstream, cambiar una cosa y volver a probar

Implementación de aplicaciones en AWS

CloudWatch Logs Insights

Una consulta de Logs Insights usa filter para acotar y stats para agregar. Aquí cuenta errores por minuto:

fields @timestamp, @message
| filter level = "ERROR"
| stats count() as errors by bin(1m)
| sort errors desc
Implementación de aplicaciones en AWS

Depurar fallos de integración desde ambos lados

  • Los fallos suelen estar entre servicios
  • Lee el registro del emisor y del receptor
  • Haz coincidir por request ID o trace ID
  • La brecha entre ambos revela el corte

Registros de emisor y receptor alineados por request ID, con un hueco entre ellos marcado como el punto de ruptura de la integración donde se detiene la solicitud

Implementación de aplicaciones en AWS

Health checks y readiness probes

Balanceador de carga que enruta tráfico a destinos sanos con marcas verdes, y un destino con fallos retirado de la rotación tras varios fallos de verificación de estado

  • Health check: ¿la instancia está viva y sirviendo?
  • Los balanceadores solo enrutan a destinos sanos
  • Readiness: ¿ya está lista para recibir tráfico?
  • Si fallan, se saca el destino de la rotación
Implementación de aplicaciones en AWS

Guía para solucionar problemas

  • Lee el error y asocia la firma
  • Consulta registros con Logs Insights para acotarlo
  • Correlaciona ambos lados por request o trace ID
  • Cambia una cosa y verifica

Guía de 4 pasos para diagnosticar: leer error y asociar firma, consultar registros con Insights para acotar, correlacionar ambos lados por trace ID, cambiar una cosa y verificar

Implementación de aplicaciones en AWS

¡Vamos a practicar!

Implementación de aplicaciones en AWS

Preparing Video For Download...