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