Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

Для быстрого развертывания стандартного веб-приложения .NET Elastic Beanstalk - это правильный сервис для вас.

Графика сравнения сервисов приложений http://www.allthingsdistributed.com/images/app-svcs-comparison-graphic.png

AWS CloudFormation: "Создание шаблонов"

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

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

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

AWS Elastic Beanstalk: "Веб-приложения Made Easy"

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

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

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

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

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

Заключение

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

Если вы:

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

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