AWS Снижает влияние webhooks ec2 с помощью очереди - PullRequest
0 голосов
/ 16 октября 2018

У меня есть веб-приложение PHP, которое работает на сервере ec2.Приложение интегрировано с другим сервисом, который включает в себя подписку на несколько веб-хуков.

Количество запросов, которые сервер получает от этих веб-крючков, стало неуправляемым, и я ищу более эффективный способ обработки данных, поступающих с этих веб-крючков.

Первоначально я думал о том, чтобы использовать API-шлюз и помещать эти запросы в очередь SQS и читать из этой очереди пакетами.

Однако я хотел бы, чтобы эти пакеты читались экземпляром ec2потому что код, используемый для обработки веб-крючков, повторно используется в моем приложении.

Возможно ли это, или я вынужден использовать лямбда-функцию с SQS?Есть ли лучший способ?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

.,,я вынужден использовать функцию lamda с SQS?

SQS плюс Lambda в основном бесплатно.В настоящее время вы получаете 1 миллион (миллион) лямбда-вызовов и 1 миллион (миллион) запросов SQS в месяц.Помните, что эти запросы SQS могут содержать до 10 сообщений, и это потенциальные 10 миллионов сообщений, все внутри уровня бесплатного пользования.Ваш экземпляр EC2, вероятно, всегда включен.Ваша лямбда-функция не является.Даже если вы используете Lambda только для передачи данных SQS в хранилище данных, такое как RDBMS, для вашего EC2 для периодического опроса, операция будет пуленепробиваемой и очень недорогой.С введением SQS вы можете перевести общий код EC2 в функцию (и) лямбда-выражения.Теперь они имеют время выполнения 15 минут.

Чтобы привести мои источники:

0 голосов
/ 16 октября 2018

Подход, который вы предложили (API Gateway + SQS), будет работать просто отлично.Нет необходимости использовать AWS Lambda.При написании кода приложения, получающего сообщения из вашей очереди SQS, вы захотите использовать AWS SDK для PHP .

Я использовал этот шаблон ранее, и это отличное решение.

...