Усунення несправностей у розгорнутих застосунках

Розгортання застосунків в AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Перевищено час виконання завдання

  • Функція падає, але лише інколи
  • У журналі: "Task timed out"
  • Сигнатура вказує на справжню причину

Секундомір поруч із рядком журналу про помилку, де показано, що Lambda-завдання перевищило час очікування

Розгортання застосунків в AWS

Поширені сигнатури збоїв Lambda

Сітка 2x2 із сигнатурами збоїв Lambda: Timeout із записом task-timed-out, Throttled із TooManyRequestsException, Access Denied із AccessDeniedException та Out of Memory із помилкою signal-killed

  • Timeout: "Task timed out after N seconds"
  • Throttle: TooManyRequestsException
  • Відмова IAM: AccessDenied, not authorized
  • Брак памʼяті: середовище завершено посеред виконання
Розгортання застосунків в AWS

Перші дії при збої функції

  • Спершу прочитайте повідомлення про помилку
  • Зіставте його з відомою сигнатурою
  • Перевірте затримку нижчестоячого виклику для таймаутів
  • Змініть щось одне й повторно протестуйте

Цикл ухвалення рішень під час налагодження: прочитати помилку, зіставити з відомою сигнатурою, перевірити затримку нижчестоячих сервісів, змінити щось одне і повторно протестувати

Розгортання застосунків в AWS

CloudWatch Logs Insights

Запит Logs Insights використовує filter для звуження та stats для агрегування. Тут він рахує помилки за хвилинами:

fields @timestamp, @message
| filter level = "ERROR"
| stats count() as errors by bin(1m)
| sort errors desc
Розгортання застосунків в AWS

Налагодження збоїв інтеграції з обох боків

  • Збої часто трапляються між сервісами
  • Читайте журнал викликача і викликаного
  • Зіставляйте за request ID або trace ID
  • Розрив між ними показує місце збою інтеграції

Журнали викликача й викликаного вирівняні поруч за request ID, між ними прогалина, позначена як точка розриву інтеграції, де запит зупинився

Розгортання застосунків в AWS

Перевірки стану та проби готовності

Балансувальник навантаження спрямовує трафік до здорових цілей із зеленими позначками, а несправну ціль вилучено з ротації після кількох збоїв перевірки стану

  • Перевірка стану: інстанс живий і обслуговує?
  • Балансувальники ведуть лише до здорових цілей
  • Готовність: чи готовий уже приймати трафік?
  • Невдалі перевірки виводять ціль із ротації
Розгортання застосунків в AWS

Памʼятка з налагодження

  • Прочитайте помилку й зіставте сигнатуру
  • Запитуйте журнали в Logs Insights, щоб окреслити проблему
  • Корелюйте обидва боки за request або trace ID
  • Змініть одне і перевірте

Покрокова інструкція з налагодження: прочитати помилку і зіставити сигнатуру, запитати журнали в Insights, корелювати обидва боки за trace ID, змінити одне і перевірити

Розгортання застосунків в AWS

Давайте потренуємось!

Розгортання застосунків в AWS

Preparing Video For Download...