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

Как выбрать между Elastic Container Service (ECS) или Elastic Container Registry (ECR), Elastic Beanstalk и Lambda?

Задний план: Я работал с EC2 и RDS. Недавно я получил запрос от клиента, в котором он хочет разрабатывать как мобильные, так и веб-приложения с использованием Amazon Web Services, и ему нужен совет, какой сервис ему следует использовать?

Кроме того, я просмотрел несколько руководств на YouTube и Google, чтобы понять эти службы, но до сих пор не могу понять, с какой службой он должен работать.

Проблема: У меня нет должных знаний и опыта работы с вышеуказанными сервисами. Поэтому мне нужны советы людей, которые имеют опыт работы с ними.

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

Эластичный бобовый стебель это ваш традиционный хостинг - вы можете загрузить PHP или Java или любое другое приложение, например Wordpress, настроить базу данных и т. д. и начать. Есть некоторые умные устройства для масштабирования, восстановления и т. Д., Но это все еще традиционная хостинговая платформа.

Контейнеры ECS все еще может запускать ваше традиционное приложение, но есть еще некоторые особенности - в первую очередь контейнеры нет постоянного хранилища и есть эфемерный, они могут приходить и уходить, и их можно перезапустить в любое время. Это означает, что они должны быть построены и готовы к работать без ручной настройки / вмешательства. Есть способы обеспечить постоянное хранилище для контейнеров, но лучше, если вы можете этого избежать. Создайте свое приложение таким образом, чтобы оно хранило все свои данные в базе данных, а все файлы, например, в S3. Кстати ECR (Эластичный реестр контейнеров) - это только хранилище для ваших контейнеров. Он должен использоваться с ECS.

Лямбда - это облачная безсерверная концепция, в которой приложение разделено на небольшие функции, которые обслуживают различные запросы API. Интерфейс веб-сайта обычно создается, например, на React, Vue или аналогичном и обслуживается из S3 / CloudFront. Затем он выполняет вызовы API к лямбдам через шлюз API.

Бессерверные приложения и контейнеры обычно масштабируется лучше, чем традиционные приложения если они сделаны правильно. С другой стороны, создание вашего первого бессерверного приложения будет довольно сложной кривой обучения, поскольку некоторые концепции отличаются от того, что вы могли использовать.

Это очень краткий обзор. Эту тему можно обсуждать часами :)

Попробуйте погуглить что-нибудь вроде «лучших практик разработки бессерверных приложений» или «лучших практик разработки контейнерных приложений», если вы хотите пойти по этому пути.

Надеюсь, это поможет :)

В дополнение к предыдущему ответу - эластичный бобовый стебель - это скорее Платформа для домашних животных а Docker (ECS) и Lambda - Крупный рогатый скот. Это также означает, что Docker и Lambda без гражданства Это означает, что они не (не должны) хранить какое-либо состояние локально, все находится в базе данных, в кластере memcache и в S3. Beanstalk, с другой стороны, может хранить локальное состояние, но это не рекомендуется в современных приложениях, поскольку усложняет масштабирование.

Загляните сюда, если вы не знакомы с Концепция домашних животных и крупного рогатого скота.