это вопрос из двух частей.
Мы переносим локальную структуру в облако aws. Платформа связывает влиятельных людей Instagram с брендами, заинтересованными в маркетинге своих продуктов.
Инфлюэнсеры получают ссылки на торговые марки для отображения в своих аккаунтах в Instagram. Есть одна функциональность, где нам нужно подсчитать, сколько подписчиков пролистывает определенную ссылку для влиятельного лица. Нашей первой реализацией было создание лямбды, которая получает запрос через шлюз API, содержащий данные, идентифицирующие влияющего и бренд, отправляет в SQS соответствующие данные и отправляет перенаправление на URL бренда.
Проблема сложная,Это означает, что клиент попросил, чтобы наше решение могло обрабатывать не менее 20 тысяч одновременных запросов, поскольку в прошлом некоторые из их влиятельных лиц, имевших миллионы подписчиков, могли генерировать такие мгновенные «скачки»когда они что-то опубликовали. Пределы лямбды для нашего региона составляли 1000 одновременных исполнений в секунду. Мы попросили AWS поднять его, и они подняли его до 2500 запросов в секунду. Все еще намного ниже того, что спрашивает потребитель. Существует также ограничения одновременных запросов API-шлюза для рассмотрения. Похоже, что шлюз API также начинает слишком много запросов.
Есть ли лучший способ справиться с такого рода требования? Какова будет лучшая практика? Нам просто нужно сосчитать, что какой-то влиятельный человек получил удар вверх и перенаправить. Сегодня мы просто создаем ссылку с идентификатором влияния, идентификатором бренда и URL-адресом для перенаправления. Есть ли лучшая альтернатива для решения этой проблемы, чем использование лямбд? Можно ли справиться с этим с помощью безсерверного подхода? Было бы лучше использовать несколько серверов EC2 или использовать beanstalk с apache или nginx?
А теперь второй вопрос. Как мы можем протестировать такие параллельные запросы с AWS? Просто используя Jmeter, когда мы увеличиваем количество одновременных запросов, наша лямбда-функция даже не получает их. Я полагаю, что слишком много запросов к AWS можно было бы ошибочно считать DDOS-атакой. Как протестировать любые решения AWS, которые должны быть способны принимать очень высокие одновременные запросы?
Спасибо.
Редактировать: Чтобы было ясно, мы не предоставляем контент пользователю. Нам просто нужно посчитать, что кто-то сделал запрос, и сделать перенаправление. Информация о том, кто сделал запрос и URL, который будет перенаправлен, будет указана в параметрах по запрашиваемой ссылке. Нам просто нужно собрать эту информацию, которую легко сделать в лямбде, и выполнить перенаправление 301.