Problemen oplossen met gedeployde applicaties

Applicaties implementeren op AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Task timed out

  • Een functie faalt, maar alleen soms
  • In het log staat "Task timed out"
  • De signatuur wijst naar de echte oorzaak

Een stopwatch naast een foutlogregel met een Lambda-taak die is uitgetimed

Applicaties implementeren op AWS

De meest voorkomende Lambda-foutsignaturen

2x2-raster van Lambda-foutsignaturen: Timeout met task-timed-out-log, Throttled met TooManyRequestsException, Access Denied met AccessDeniedException en Out of Memory met signal-killed-fout

  • Timeout: "Task timed out after N seconds"
  • Throttle: TooManyRequestsException
  • IAM-ontzegging: AccessDenied, not authorized
  • Out of memory: runtime beëindigd tijdens uitvoering
Applicaties implementeren op AWS

Eerste reactie op een falende functie

  • Lees eerst het foutbericht voor je iets wijzigt
  • Koppel het aan een bekende signatuur
  • Check downstream latentie bij time-outs
  • Verander één ding en test opnieuw

Beslisloop voor troubleshooting: lees foutbericht, koppel aan bekende signatuur, controleer downstream-latentie, wijzig één ding en test opnieuw

Applicaties implementeren op AWS

CloudWatch Logs Insights

Een Logs Insights-query gebruikt filter om te verfijnen en stats om te aggregeren. Hier telt hij fouten per minuut:

fields @timestamp, @message
| filter level = "ERROR"
| stats count() as errors by bin(1m)
| sort errors desc
Applicaties implementeren op AWS

Integratiefouten debuggen vanaf beide kanten

  • Fouten zitten vaak tussen services
  • Lees het log van de caller én de callee
  • Match op request-ID of trace-ID
  • De kloof ertussen toont de breuk

Caller- en callee-logs naast elkaar uitgelijnd op request-ID, met ertussen een gat als breukpunt waar het verzoek stopt

Applicaties implementeren op AWS

Health checks en readiness-probes

Load balancer die verkeer naar gezonde doelen met groene vinkjes stuurt, en een falend doel uit rotatie haalt na opeenvolgende mislukte health checks

  • Health check: leeft de instantie en bedient hij?
  • Load balancers routeren alleen naar gezonde doelen
  • Readiness: is hij al klaar om verkeer te ontvangen?
  • Mislukte checks halen een doel uit de rotatie
Applicaties implementeren op AWS

Een troubleshooting-playbook

  • Lees de fout en koppel de signatuur
  • Query logs met Logs Insights om te scopen
  • Correleer beide kanten via request- of trace-ID
  • Wijzig één ding en verifieer

Troubleshooting-stappenplan in vier stappen: Lees fout en koppel signatuur, Query logs met Insights om te scopen, Correlateer beide kanten via trace-ID, Wijzig één ding en verifieer

Applicaties implementeren op AWS

Laten we oefenen!

Applicaties implementeren op AWS

Preparing Video For Download...