Назад | Перейти на главную страницу

использование лямбда aws в качестве веб-сервера узла

Я слышал о людях, использующих лямбда-выражения AWS в качестве места для запуска веб-серверов node express, что, на мой взгляд, является ужасной идеей по следующим причинам:

Я открыт для мысли, что я ошибаюсь в этом :).

Я говорю о критически важном веб-сайте, а не о блоге или чем-то подобном.

Прав ли я, или aws lamdas - надежное место для размещения сервера узла.

Похоже, вы упустили из виду, что эта схема на самом деле не запускает веб-сервер в Lambda - это даже невозможно, потому что функции Lambda не имеют режима демона.

Контейнер Lambda, который в настоящее время не обрабатывает вызов функции, находится в приостановленной анимации, и ему запрещен доступ к базовому процессору. Он не может слушать сокет.

Веб-сервером является AWS API Gateway или Application Load Balancer, оба из которых принимают запросы средств просмотра и используют свои полезные данные для вызова функции Lambda. Нет необходимости в Nginx, но технически вы все равно можете его использовать, это было бы совершенно бессмысленно ... но CloudFront - хороший бессерверный обратный прокси-сервер, который может, скажем, отправлять запросы для /assets/* в корзину S3, отправляя все остальное в приложение, стоящее за API Gateway.

Таким образом, аргумент о том, что это не намеченная цель, кажется, основан на непонимании того, что происходит.

Также в AWS есть официальная библиотека именно для этой цели.

Запускайте бессерверные приложения и REST API с помощью существующей инфраструктуры приложений Node.js поверх AWS Lambda и Amazon API Gateway

https://github.com/awslabs/aws-serverless-express

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

Для новых приложений, в том числе в рамках более спорно, так как это слой над головой, что не является строго необходимым, но остальной частью архитектуры не изменится, если опустить рамки - вы можете создать полный веб-сайт на функции Lambda, в Node.js без Express, и это в основном та же настройка. Веб-сервер - это API Gateway или ALB, или может быть просто CloudFront, если вы используете Lambda @ Edge для своего кода JS или Python.