Как оптимизировать запрос AWS Backend EC2 + Lamda?
Всем привет!
У меня есть бакенд, который хостится на инстансе EC2 AWS. Инстанс тип сейчас стоит t2.micro (1 vCPU + 1 Gib memory).
Однажды, в приложение зашло несколько сотен юзеров, и многие столкнулись с проблемой длительного отклика сервера. Я заметил, что это связано с вызовом запроса, который вызывает лямбда функцию. Лябмда функция эта сама по себе длиться долго, и пока видимо она обрабатывается, я предположил 2 варианта: 1) лямбда функция сама по себе не может принимать новые запросы с какого-то момента, пока обрабатывает предыдущие, 2) сервер блокирует некоторые новые запросы, пока ждет ответы от предыдущих вызовов от лямбда функции.
Посмотрел по настройкам функции, она использует все Unreversed Concurrency. Одновременных вызовов максимум по метрикам было 5. И начались жалобы.
Всё-таки, таймаутиться зачастую именно выполнение лямбды (там 30 сек был лимит), но и сервер в целом начинает затармаживаться.
Пожалуйста, посоветуйте, как можно улучшить возможности сервера к нагрузке, нужно ли смотреть в сторону улучшения сервера в целом, или только оптимизации вот этой функции? Спасибо всем.
Persotr27, ну сам подумай, нормальная ли это архитектура приложения, когда оно обслуживает много пользователей одновременно и, при этом, ждёт пока на каждый запрос придёт ответ от функции.