Эластичный Benstalk
С Elastic Beanstalk у вас есть доступ к Платформе как Сервису (PaaS), и вы можете управлять некоторыми аспектами инфраструктуры. Разработчики могут создавать, тестировать и развертывать приложения на платформе. Вам не нужно заниматься подготовкой, балансировкой нагрузки или масштабированием. Elastic Beanstalk поддерживает множество серверных сред, включая Apache HTTP Server, Nginx, Microsoft IIS и Apache Tomcat. Он имеет мощную поддержку контейнеров Docker, что позволяет легко развертывать приложения.
Разработчики могут использовать либо командную строку, либо Elastic Beanstalk Management Console. Консоль позволяет им настраивать конфигурации и управлять средами и приложениями.
Lambda
Разработчики, загружающие в Lambda, не должны иметь дело со средой своего кода. Это «безсерверный» сервис, который позволяет внешнему коду или событиям вызывать функции. Лямбда не хранит данные, но предоставляет доступ к другим службам, которые делают. То, что действительно делает Lambda привлекательным, заключается в том, что вы ничего не платите, кроме случаев, когда на самом деле запускаете код на нем. Вы можете извлекать из своих приложений трудоемкие компоненты и развертывать их на Lambda по очень низкой цене.
Шаговые функции AWS реализуют конечный автомат, позволяя вам вызывать серию лямбда-функций и обрабатывать ошибки. Лямбда-функции могут служить бэкэндом для приложения, работающего в другом месте, или вы даже можете создать веб-приложение, используя серию лямбда-функций.
Да, вы можете создать RESTful API, используя лямбда-архитектуру без серверов, API-шлюз, S3, SQS, SNS, cognito, DynamoDB, вызывая серию лямбда-функций, вызывающих друг друга последовательно.
Elastic Beanstalk будет в основном иметь дело с инициализацией экземпляра EC2, балансировкой нагрузки или масштабированием и т. Д. (Не с лямбдами).
Вы даже можете использовать Elastic Beanstalk и Lambda вместе. Облегченное приложение на EC2, управляемое с помощью Elastic Beanstalk, может использовать Lambda для обработки в тяжелых условиях. Приложение может работать на недорогом экземпляре, и затраты на Lambda будут значительно меньше, чем на экземпляры более высокого уровня, которые в противном случае были бы необходимы.
У лямбды есть жесткие ограничения. Полезная нагрузка тела запроса не может превышать 6 МБ. Продолжительность запроса не может превышать 300 секунд. Это делает его непригодным для передачи больших блоков данных или для функций, которые ждут долго, но часто есть обходные пути.
Существуют также ограничения на развертывание; пакет развертывания не может превышать 50 МБ. Лямбда-код может включать в себя существующие библиотеки, но могут возникнуть проблемы с очень большими библиотеками.