AWS CloudFormation предоставляет разработчикам и системным администраторам простой способ для создания набора связанных ресурсов AWS и их упорядоченного и предсказуемого распределения. В следующих статьях и документах приведены инструкции по созданию шаблонов и использованию различных возможностей AWS CloudFormation, связанных с выделением ресурсов AWS.
AWS CloudFormation Designer – это визуальный инструмент, позволяющий добавлять ресурсы в шаблоны путем перетаскивания в графическом интерфейсе. С его помощью можно легко добавлять, изменять и удалять ресурсы, при этом файл JSON обновляется автоматически. При изменении шаблона, связанного с работающим стеком, можно приводить стек в соответствие с шаблоном путем обновления стека.
Сервис AWS CloudFormation позволяет без труда создать набор ресурсов, требуемых для работы вашего приложения, таких как инстансы Amazon EC2, инстансы баз данных Amazon RDS и балансировщики нагрузки Elastic Load Balancing. На основе шаблона с описанием требуемых ресурсов сервис AWS CloudFormation обеспечивает упорядоченное и предсказуемое распределение ресурсов, управление ими и восстановление в случае возникновения сбоев или других проблем. Сервис выполняет распределение всех необходимых ресурсов, но возникает очевидный вопрос, как именно выполняется развертывание, настройка и запуск ПО приложения на инстансах Amazon EC2. Сервис предоставляет целый ряд настроек для уточнения сроков подготовки приложения к работе и других моментов, требующих гибкости при развертывании новых версий программного обеспечения.
Сервис AWS CloudFormation поможет сконфигурировать и/или установить приложение, а также выполнить начальную загрузку средств развертывания и управления, которые вы уже используете в своей среде. Chef – это решение для автоматизации инфраструктуры с открытым исходным кодом от Opscode на языке Ruby, позволяющее автоматизировать настройку ваших систем и выполняющихся на их основе приложений. AWS CloudFormation и Chef можно использовать совместно для автоматизации всех процессов развертывания и управления, начиная с ресурсов AWS и заканчивая конкретными объектами ваших приложений.
Сервис AWS CloudFormation поможет сконфигурировать и/или установить приложение, а также выполнить начальную загрузку средств развертывания и управления, которые вы уже используете в своей среде. Puppet – это платформа с открытым исходным кодом для распределения, настройки и обновления приложений и компонентов операционной системы. AWS CloudFormation и Puppet можно использовать совместно для автоматизации всех процессов развертывания и управления, начиная с ресурсов AWS и заканчивая конкретными объектами ваших приложений.
Запуск сервиса AWS CloudFormation – это еще один важный шаг к упрощению процесса развертывания приложений в облаке для клиентов AWS. Нередко приложение требует создания нескольких ресурсов инфраструктуры, и сервис AWS CloudFormation делает процесс создания и использования наборов ресурсов AWS простым и предсказуемым. С помощью декларативных шаблонов можно построить стеки ресурсов с гарантированным созданием всех необходимых ресурсов в правильной последовательности и с подтверждением правильности.
Сегодня многие клиенты используют сервисы AWS в режиме, который можно назвать режимом «повара-экспериментатора»: запускают несколько инстансов, присваивают им эластичные IP-адреса, создают несколько очередей сообщений и т. д. Иногда этот процесс выполняется полуавтоматически при помощи скриптов или шаблонов, а иногда полностью вручную. По мере роста сложности системы запуск подходящих комбинаций AMI, назначение им ролей, обработка аварийных ситуаций и координация всех элементов системы в целом становится все более непростой задачей. Но теперь пришло время перейти от готовки «на глаз» к использованию точных рецептов!
В статье описано использование AMI Amazon Linux и сервиса AWS CloudFormation для динамического запуска и настройки приложения во время загрузки. В примере использован новый ресурс WaitCondition с поддержкой AWS CloudFormation, позволяющий отложить окончательное создание стека до момента, когда будет настроено и запущено приложение Ruby on Rails. В примере также использована поддержка AMI Amazon Linux приложением Cloud-init с открытым исходным кодом от компании Canonical. Приложение Cloud-init с помощью параметра UserData сервиса Amazon Elastic Compute Cloud (Amazon EC2) позволяет задавать действия, выполняемые на инстансе во время загрузки.
В этой небольшой презентации рассказано об оркестрации и автоматизации распределения ресурсов в облаке.