@Persotr27

Как оптимизировать запрос AWS Backend EC2 + Lamda?

Всем привет!

У меня есть бакенд, который хостится на инстансе EC2 AWS. Инстанс тип сейчас стоит t2.micro (1 vCPU + 1 Gib memory).

Однажды, в приложение зашло несколько сотен юзеров, и многие столкнулись с проблемой длительного отклика сервера. Я заметил, что это связано с вызовом запроса, который вызывает лямбда функцию. Лябмда функция эта сама по себе длиться долго, и пока видимо она обрабатывается, я предположил 2 варианта: 1) лямбда функция сама по себе не может принимать новые запросы с какого-то момента, пока обрабатывает предыдущие, 2) сервер блокирует некоторые новые запросы, пока ждет ответы от предыдущих вызовов от лямбда функции.

Посмотрел по настройкам функции, она использует все Unreversed Concurrency. Одновременных вызовов максимум по метрикам было 5. И начались жалобы.

Всё-таки, таймаутиться зачастую именно выполнение лямбды (там 30 сек был лимит), но и сервер в целом начинает затармаживаться.

Пожалуйста, посоветуйте, как можно улучшить возможности сервера к нагрузке, нужно ли смотреть в сторону улучшения сервера в целом, или только оптимизации вот этой функции? Спасибо всем.
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
i229194964
@i229194964
Веб разработчик
const AWS = require('aws-sdk');
const lambda = new AWS.Lambda();

const params = {
  FunctionName: 'YourLambdaFunctionName',
  InvocationType: 'RequestResponse', // Используйте 'Event' для асинхронного вызова
  Payload: JSON.stringify({ key: 'value' }) // Передайте данные в вашу Lambda-функцию
};

lambda.invoke(params, function (err, data) {
  if (err) {
    console.error(err, err.stack);
  } else {
    console.log(data);
  }
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы