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


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

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

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

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

6 69

6 ответов:

Они на самом деле очень разные. Эластичный Бобовый Стебель призван облегчить жизнь разработчиков. CloudFormation предназначена для облегчения жизни системных инженеров.

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

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

для быстрого развертывания стандартного веб-приложения .NET,Эластичный Бобовый Стебель - это правильный сервис для вас.

App Services Comparison Graphic

AWS CloudFormation: "Инициализация На Основе Шаблонов"

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

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

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

AWS Elastic Beanstalk: "Web Apps Made Easy"

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

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

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

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

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

вывод

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

Если вы:

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

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

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

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

Elastic Beanstalk использует шаблоны формирования облаков и scipts для: 1. Создайте группу балансировки нагрузки и автоматического масштабирования, 2. Скопируйте код в S3, 3. Загрузите экземпляр Ec2, чтобы загрузить код из S3 и развернуть его.

формирование облака не так просто в использовании, как EB, но оно намного мощнее, потому что вы можете создавать ресурсы, отличные от EC2 случаях, контроля как на Android-скрипт, и т. д.

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

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