В чем разница между Elastic Beanstalk и CloudFormation для проекта .NET?

Я разработал приложение .NET MVC и начал играть с AWS и развертывать его с помощью Visual Studio Toolkit. Я успешно развернул приложение, используя опцию Elastic Beanstalk в наборе инструментов.

Когда я просматривал учебники по развертыванию приложений .NET на AWS с помощью этого набора инструментов, я заметил, что есть учебники по развертыванию с помощью обоих Elastic. Beanstalk и CloudFormation . В чем разница между этими двумя?

Из того, что я могу сказать, похоже, что оба они по сути делают одно и то же - облегчают развертывание приложения в облаке AWS (настройка экземпляров EC2, балансировка нагрузки, автоматическое масштабирование и т. д.). Я пытался читать их обоих, но, похоже, я не могу получить ничего, кроме набора модных слов, которые звучат для меня как одно и то же. Я даже нашел на веб-сайте AWS FAQ , который должен ответить на этот точный вопрос, но пока не знаю действительно понимаю.

Должен ли я использовать один или другой? Оба?

78 голосов | спросил kspearrin 20 Jam1000000amSun, 20 Jan 2013 10:05:44 +040013 2013, 10:05:44

6 ответов


0

Они на самом деле довольно разные. Elastic Beanstalk предназначен для облегчения жизни разработчиков. CloudFormation призвана облегчить жизнь системным инженерам.

Elastic Beanstalk - это PaaS-подобный слой поверх сервисов IaaS AWS, который абстрагирует базовые экземпляры EC2, Elastic Load Balancer, группы автоматического масштабирования и т. д. Это значительно упрощает работу разработчиков, которые не хотят иметь дело со всеми системными вещами, чтобы быстро развернуть их приложение на AWS. Это очень похоже на другие продукты PaaS, такие как Heroku, EngineYard, Google App Engine и т. Д. С Elastic Beanstalk вам не нужно понимать, как работает какая-либо из лежащих в основе магии.

CloudFormation, с другой стороны, автоматически ничего не делает. Это просто способ определить все ресурсы, необходимые для развертывания в огромном файле JSON. Таким образом, шаблон CloudFormation может фактически создать две среды ElasticBeanstalk (производственную и промежуточную), пару кластеров ElasticCache, таблицу DyanmoDB и затем соответствующий DNS в Route53. Затем я загружаю этот шаблон в AWS, ухожу, и через 45 минут все готово и ждет. Так как это просто текстовый файл JSON, я могу вставить его в свой исходный код, который обеспечивает отличный способ создания версий моих приложений. Это также гарантирует, что у меня есть повторяемая, «хорошо известная» конфигурация, которую я могу быстро развернуть в другом регионе.

ответил jamieb 21 Jam1000000amMon, 21 Jan 2013 01:53:02 +040013 2013, 01:53:02
0

Чтобы быстро приступить к развертыванию стандартного веб-приложения .NET, Elastic Beanstalk - это то, что вам нужно.

 Сравнительная графика служб приложений

AWS CloudFormation : «Подготовка на основе шаблонов»

  

AWS CloudFormation предоставляет разработчикам и системным администраторам простой способ создавать и управлять коллекцией связанных ресурсов AWS, упорядочивая и обновляя их упорядоченным и предсказуемым образом.

CloudFormation (CFn) - это легкая низкоуровневая абстракция по сравнению с существующими API-интерфейсами AWS. Используя статический JSON /YAML шаблон , вы заявляете набор ресурсов (например, экземпляр EC2 или корзина S3 ), которые соответствуют операциям CRUD на AWS API-интерфейсы.

Когда вы создаете стек CloudFormation, CloudFormation вызывает соответствующие API для создания связанных ресурсов, а когда вы удаляете стек, CloudFormation вызывает соответствующие API для их удаления. Большинство (но не все) API-интерфейсы AWS поддерживаются.

AWS Elastic Beanstalk : «Веб-приложения стали проще»

  

AWS Elastic Beanstalk - это простой в использовании сервис для развертывания и масштабирования веб-приложений и сервисов, разработанный с помощью Java , .NET , PHP , Node.js , Python , Ruby , Перейти и Docker на знакомых серверах, таких как Apache, Nginx, Passenger и IIS.

     

Вы можете просто загрузить свой код, и Elastic Beanstalk автоматически обработает развертывание, от предоставления емкости, балансировки нагрузки, автоматического масштабирования до мониторинга работоспособности приложения.

Elastic Beanstalk (EB) - это управляемая «платформа как услуга» (PaaS) для хостинга веб-приложений более высокого уровня, аналогичная по объему Heroku . Вместо того, чтобы напрямую работать с низкоуровневыми ресурсами AWS, EB предоставляет полностью управляемую платформу, где вы создать среду приложения , используя веб-интерфейс , выберите платформа , которую использует ваше приложение, создайте и загрузите исходный пакет , а EB обрабатывает все остальное.

Используя EB, вы получаете всевозможные встроенные функции для мониторинг среды вашего приложения и развертывание новых версий вашего приложения .

Компания EB использует CloudFormation для создания и управления различными ресурсами AWS приложения. Вы можете настроить и расширить среду EB по умолчанию, добавив ресурсы CloudFormation в файл конфигурации EB , развернутый вместе с вашим приложением.

Заключение

Если ваше приложение является стандартным приложением веб-уровня, использующим одну из поддерживаемых платформ Elastic Beanstalk, и вы хотите простой в управлении и масштабируемый хостинг для своего приложения, используйте Elastic Beanstalk .

Если вы:

  • Хотите напрямую управлять всеми ресурсами AWS вашего приложения;
  • Хотите управлять или тщательно настраивать процесс подготовки экземпляра или развертывания;
  • Необходимо использовать платформу приложений, не поддерживаемую Elastic Beanstalk; или
  • Просто не нужно /не нужно никаких высокоуровневых функций Elastic Beanstalk

затем используйте CloudFormation напрямую и избегайте добавленного слоя конфигурации Elastic Beanstalk.

ответил wjordan 4 Jpm1000000pmWed, 04 Jan 2017 20:45:46 +030017 2017, 20:45:46
0

Есть и другие отличия, на которые стоит обратить внимание. Эластичный бобовый стебель выполнен в виде контейнера для одного приложения. У меня есть несколько веб-сайтов и сервисов, но мне было очень сложно развернуть несколько веб-сайтов с beanstalk, и после нескольких попыток AWS посоветовал использовать облачное образование в этой ситуации, поскольку он обладает дополнительной гибкостью. Вот очень полезная статья о начальной загрузке формирования облака AWS и обновлении работающего сайта здесь Это намного понятнее, чем страницы AWS. Все еще пытаемся понять, сможем ли мы развернуть из VS прямо в шаблон формирования облака, хранящийся на S3, и заставить его автоматически обновляться, как beanstalk ...

ответил Matt 23 MonEurope/Moscow2013-12-23T13:23:39+04:00Europe/Moscow12bEurope/MoscowMon, 23 Dec 2013 13:23:39 +0400 2013, 13:23:39
0

Cloud Formation - это служба, которая позволяет развертывать службы AWS. Вы создаете файл шаблона, который описывает, какие услуги вы хотите. При развертывании этого шаблона Cloud Formation создает для вас ресурсы в виде «пакета». Все ресурсы, которые вы определили в своем шаблоне, запускаются и завершаются вместе. Примеры типов ресурсов, которые могут быть созданы с помощью Cloud Formation: S3, экземпляры EC2, AutoScaling, DynamoDb и т. Д. Для EC2 Cloud Formation также дает вам возможность использовать сценарии "cfn-init"; который можно использовать вместе с шаблоном для загрузки ваших экземпляров.

Elastic Beanstalk использует шаблоны и сценарии Cloud Formation для: 1. создания балансировщика нагрузки и группы автоматического масштабирования, 2. копирования кода на S3, 3. загрузки экземпляра Ec2 для загрузки кода с S3 и его развертывания.

Cloud Formation не так прост в использовании, как EB, но он намного мощнее, потому что вы можете создавать ресурсы, отличные от экземпляров EC2, управлять сценарием cfn-init и т. д.

ответил Edwin 21 Jam1000000amMon, 21 Jan 2013 02:02:07 +040013 2013, 02:02:07
0

Elastic Beanstalk автоматически обрабатывает развертывание, от предоставления емкости, балансировки нагрузки, автоматического масштабирования до мониторинга работоспособности приложения на основе кода, который вы загружаете в него, в то время как CloudFormation представляет собой механизм автоматической подготовки, предназначенный для развертывания целых облачных сред через JSON сценарий.

ответил Mahesh Bablu 15 Jam1000000amMon, 15 Jan 2018 09:15:24 +030018 2018, 09:15:24
0

Elastic beanstalk автоматически обрабатывает развертывание вашего кода - от выделения ресурсов, балансировки нагрузки, автоматического масштабирования до мониторинга работоспособности приложений на основе кода, который вы загружаете в него, тогда как cloudFormation - это автоматизированный механизм, предназначенный для развертывания целых облачных сред. с помощью сценария JSON.

ответил Prateek Gupta 13 J000000Friday18 2018, 14:10:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132