Запуск лямбда из s3 vs Запуск лямбда из sqs - PullRequest
0 голосов
/ 23 января 2020

Я работаю над требованием, когда вам нужно отправить формы в базу данных RDS. Формы не должны быть больше 20 КБ. Могут быть пики для отправки формы, и нам может потребоваться поддержка 300 000 одновременно работающих пользователей.

Есть несколько вариантов, которые я могу придумать

1) Клиент -> Шлюз Api -> Лямбда - > S3 (триггер) -> лямбда -> RDS

2) Клиент -> Api-шлюз -> лямбда -> SQS (триггер) -> лямбда -> RDS

Во 2-м подходе лямбда (выделенная жирным шрифтом) также будет храниться в S3 (не показано) для постоянного хранения формы на случай, если мне потребуется go вернуть назад и повторно обработать их.

Мы должны рассмотреть следующие вещи:

1) Пропускная способность записи (лямбда-запись в s3 или sqs должна быть быстрой)

2) Постоянное хранилище (я могу go назад и воспроизвести сообщения)

3) В случае сбоя вставки в RDS, например, DLQ

1 Ответ

1 голос
/ 24 января 2020

Единственным потенциальным узким местом в этой системе будет Amazon RDS.

Поэтому использование очереди Amazon SQS с безопаснее, чем прямой вызов Lambda. Если лямбда-функция, запущенная из SQS, не работает, то сообщение можно повторить позже или переместить в очередь недоставленных сообщений. Это также было бы более устойчивым к шипам траффи c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...