Я думаю об использовании Puppet Enterprise для развертывания наборов серверов / сервисов в Amazon Web Services. Насколько я могу судить, лучший способ сделать это - через CloudFormation.
На основании того, что я прочитал, CloudFormation определяет, как настраивать / создавать службы. Принимая во внимание, что вы используете Puppet для настройки и поддерживать конфигурацию сервера / службы.
Итак, два вопроса:
Задний план
Моя организация использует Elastic Beanstalk для публикации своих существующих веб-приложений / сервисов, и я хотел бы либо сохранить этот рабочий процесс, либо перейти с Beanstalk на что-то другое, если позволит время.
Краткий ответ: нет.
На самом деле вы не управляете своей инфраструктурой (или базовой технологией приложения) с помощью Elastic Beanstalk, вы просто загружаете свое приложение (например, используете git для отправки кода) и Beanstalk с развертыванием его для вас.
https://aws.amazon.com/elasticbeanstalk/details/
AWS Elastic Beanstalk - это простой в использовании сервис управления приложениями для создания веб-приложений и веб-сервисов с использованием популярных контейнеров приложений, таких как Java, PHP, Python, Ruby и .NET. Клиенты загружают свой код, а Elastic Beanstalk автоматически делает все остальное..
Да. CF Может помочь вам управлять длинным списком ресурсов AWS включая Бобовый стебель.
Документация CF - отличное место для начала http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
Вот ресурсы, которыми может управлять CF:
Если вам нужен больший контроль, вы можете взглянуть на OpsWorks https://aws.amazon.com/opsworks/ который позволяет вам управлять конфигурацией операционной системы через Chef (инструмент CM, похожий на Puppet).
Если вам нужен еще БОЛЬШЕ контроля, вы можете использовать CloudFormation напрямую, таким образом, вы сможете управлять всеми аспектами своей инфраструктуры (и тогда у вас будет полный контроль над EC2, чтобы управлять так, как вы считаете нужным, например, с помощью инструмента CM, такого как Puppet, Chef или Ansible).
https://aws.amazon.com/opsworks/faqs/
OpsWorks и Beanstalk - это службы управления приложениями.
AWS OpsWorks и AWS CloudFormation - это сервисы управления приложениями, которые поддерживают моделирование приложений, развертывание, настройку, управление и связанные с ними действия. Оба поддерживают широкий спектр архитектурных шаблонов, от простых веб-приложений до очень сложных приложений. AWS OpsWorks и AWS CloudFormation различаются уровнем абстракции и областями внимания.
CF позволяет управлять практически любым ресурсом AWS
AWS CloudFormation - это сервис строительных блоков, который позволяет клиентам выделять практически любой ресурс AWS и управлять им с помощью языка, специфичного для домена на основе JSON.
OpsWorks позволяет вам делать больше, чем Beanstalk
AWS OpsWorks поддерживает более широкий спектр архитектурных шаблонов, чем Elastic Beanstalk. В то время как AWS Elastic Beanstalk специально оптимизирован для наиболее распространенных веб-приложений и шаблонов веб-сервисов и промежуточного программного обеспечения приложений, AWS OpsWorks поддерживает широкий спектр архитектурных шаблонов, от простых веб-приложений до очень сложных приложений.
Мне нравится рассматривать эти параметры в виде шкалы (слева направо), при этом левую проще использовать, а правую давать вам больше контроля (но требуется больше усилий для поддержания):
Beanstalk -> OpsWorks -> CloudFormation.