Dépannage des applications déployées

Déployer des applications sur AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Task timed out

  • Une fonction échoue, mais seulement parfois
  • Le journal indique « Task timed out »
  • La signature révèle la vraie cause

Un chronomètre à côté d'une ligne de journal d'erreur montrant une tâche Lambda expirée

Déployer des applications sur AWS

Signatures d'échec Lambda courantes

Grille 2x2 de signatures d'échec Lambda : Timeout avec « task-timed-out » dans le journal, Throttled avec TooManyRequestsException, Accès refusé avec AccessDeniedException, et Mémoire insuffisante avec erreur signal-killed

  • Timeout : « Task timed out after N seconds »
  • Throttling : TooManyRequestsException
  • Refus IAM : AccessDenied, not authorized
  • Mémoire insuffisante : runtime interrompu en cours d'exécution
Déployer des applications sur AWS

Premiers réflexes face à une fonction défaillante

  • Lisez le message d'erreur avant toute modification
  • Faites-le correspondre à une signature connue
  • Vérifiez la latence en aval pour les timeouts
  • Changez un élément, puis retestez

Boucle de décision de dépannage : lire le message d'erreur, faire correspondre à une signature connue, vérifier la latence en aval, changer un élément puis retester

Déployer des applications sur AWS

CloudWatch Logs Insights

Une requête Logs Insights utilise filter pour restreindre et stats pour agréger. Ici, elle compte les erreurs par minute :

fields @timestamp, @message
| filter level = "ERROR"
| stats count() as errors by bin(1m)
| sort errors desc
Déployer des applications sur AWS

Déboguer une intégration des deux côtés

  • Les pannes surviennent souvent entre services
  • Lisez le journal de l'appelant et de l'appelé
  • Faites correspondre par request ID ou trace ID
  • L'écart entre les deux révèle la rupture

Journaux de l'appelant et de l'appelé alignés côte à côte par request ID, avec un écart indiqué comme point de rupture d'intégration où la requête s'arrête

Déployer des applications sur AWS

Contrôles d'intégrité et sondes de disponibilité

Un équilibreur de charge achemine le trafic vers des cibles saines avec coches vertes, et une cible défaillante est retirée après plusieurs échecs de contrôle d'intégrité

  • Health check : l'instance est‑elle vivante et répond‑elle ?
  • Les équilibreurs envoient seulement vers des cibles saines
  • Readiness : est‑elle prête à recevoir du trafic ?
  • Des échecs répétés retirent la cible de la rotation
Déployer des applications sur AWS

Mode d'emploi du dépannage

  • Lisez l'erreur et associez la signature
  • Interrogez les journaux avec Logs Insights pour cadrer
  • Corrélez les deux côtés par request ou trace ID
  • Modifiez un élément et vérifiez

Guide de dépannage en quatre étapes : lire l'erreur et associer la signature, interroger les journaux avec Insights pour cadrer, corréler les deux côtés par trace ID, modifier un élément et vérifier

Déployer des applications sur AWS

Passons à la pratique !

Déployer des applications sur AWS

Preparing Video For Download...