Общие

Вопрос: Что такое AWS CloudFormation?

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

Вопрос: В чем AWS CloudFormation может помочь разработчикам?

Разработчики могут развертывать и обновлять вычислительные ресурсы, ресурсы баз данных и многие другие ресурсы простым декларативным способом, который позволяет абстрагироваться от сложностей использования API конкретных ресурсов. Сервис AWS CloudFormation предназначен для воспроизводимого, предсказуемого и безопасного управления жизненными циклами ресурсов; он также делает возможным автоматический возврат к предыдущей конфигурации, автоматизацию управления состоянием и управление ресурсами по всем аккаунтам и регионам. Недавние улучшения и добавленные варианты позволяют создавать ресурсы различными способами, в том числе с использованием AWS CDK для написания кода на более высокоуровневых языках, импорта существующих ресурсов и обнаружения отклонений конфигурации, а также нового реестра, который упрощает создание настраиваемых типов, наследующих многие основные преимущества CloudFormation.

Вопрос: Чем сервис CloudFormation отличается от сервиса AWS Elastic Beanstalk?

Эти сервисы являются взаимодополняющими. AWS Elastic Beanstalk предоставляет среду для простого развертывания и запуска приложений в облаке. Он интегрируется с инструментами разработчика и обеспечивает единый центр управления жизненным циклом приложений. Если рабочими нагрузками приложения можно управлять как рабочими нагрузками Elastic Beanstalk, создавать и обновлять приложения станет еще проще. Внутренние механизмы Elastic Beanstalk используют CloudFormation для создания и обслуживания ресурсов. Если приложение требует более специфического управления, дополнительные функциональные возможности CloudFormation обеспечивают больше вариантов управления рабочими нагрузками.

Сервис AWS CloudFormation – удобное средство выделения разнообразных ресурсов AWS и сторонних поставщиков. Он обеспечивает поддержку инфраструктурных требований многих типов приложений, таких как существующие корпоративные приложения, приложения прежних версий, приложения на основе различных ресурсов AWS и решения на основе контейнеров (в том числе построенные с использованием AWS Elastic Beanstalk).

Таким образом, среда приложений Elastic Beanstalk – это один из типов ресурсов AWS, поддерживаемых сервисом AWS CloudFormation. Это, в частности, позволяет создать и использовать приложение в среде AWS Elastic Beanstalk и хранить данные приложения в базе данных RDS. К этой группе можно добавить любые другие поддерживаемые ресурсы AWS.

Вопрос: Какие новые понятия введены сервисом AWS CloudFormation?

Сервис CloudFormation вводит четыре понятия. Шаблон – это декларативный файл кода JSON или YAML, который описывает надлежащее состояние ресурсов, необходимых для развертывания приложения. Стек реализует группу ресурсов, перечисленных в шаблоне, и управляет ей, а также позволяет управлять состоянием и зависимостями этих ресурсов совместно. Набор изменений – это ознакомительная версия изменений, которые будут выполнены операциями со стеком для создания, обновления или удаления ресурсов. Набор стеков – это группа стеков с совместным управлением, которые можно реплицировать как группу.

Вопрос: Какие ресурсы поддерживает AWS CloudFormation?

Полный перечень поддерживаемых ресурсов AWS и их возможностей приведен на странице «Поддерживаемые сервисы AWS» в разделе документации «История выпуска».

Пользовательские ресурсы AWS CloudFormation Registry и AWS CloudFormation позволяют управлять дополнительными ресурсами AWS и сторонних поставщиков.

Вопрос: Можно ли управлять отдельными ресурсами AWS, которые относятся к стеку AWS CloudFormation?

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

Вопрос: Из каких элементов состоит шаблон AWS CloudFormation?

Шаблоны CloudFormation представляют собой текстовые файлы в формате JSON или YAML, состоящие из пяти типов элементов:

1. необязательный список параметров шаблона (входные значения, передаваемые в момент создания стека);
2. необязательный список выходных значений (например, полный URL‑адрес интернет‑приложения);
3. необязательный список таблиц данных, используемый для просмотра статических значений конфигурации (например, имен AMI);
4. список ресурсов AWS и их значений конфигурации;
5. номер версии формата файла шаблона.

Для настройки различных аспектов шаблона во время исполнения, когда стек уже будет создан, можно использовать параметры. Например, при создании стека сервису AWS CloudFormation можно передать значение размера базы данных Amazon RDS, данные о типах инстансов Amazon EC2 и номера портов сервера баз данных и веб‑сервера. Каждый из параметров может иметь значение по умолчанию и описание, а метка NoEcho позволяет скрыть введенное фактическое значение на экране и в журналах событий AWS CloudFormation. При создании стека AWS CloudFormation Консоль управления AWS автоматически генерирует и отображает всплывающее диалоговое окно, в котором можно редактировать значения параметров.

Выходные значения – это удобный способ отображения для пользователя основных ресурсов стека (таких как адрес балансировщика нагрузки Elastic Load Balancing или базы данных Amazon RDS) посредством Консоли управления AWS или инструментов командной строки. С помощью простых функций можно объединять строковые литералы и значения атрибутов, связанные с конкретными ресурсами AWS. Дополнительно шаблон может использовать типы ресурсов реестра, настраиваемые частные типы, ваши собственные макросы, а также извлекать параметры конфигурации из AWS Secrets Manager и хранилища параметров AWS System Manager.

Вопрос: Как сервис AWS CloudFormation выбирает имена для ресурсов?

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

Вопрос: Почему присваивать имена разрешено не всем ресурсам?

Сервис AWS CloudFormation позволяет пользователю присваивать имена некоторым ресурсам (например, корзинам Amazon S3), но не всем. Присвоение ресурсам имен ограничивает возможность повторного использования шаблонов и приводит к возникновению конфликтов имен, если при обновлении ресурс необходимо заменить. Во избежание подобных проблем CloudFormation в ряде случаев не поддерживает именование ресурсов пользователем.

Вопрос: Можно ли с помощью AWS CloudFormation при создании стека устанавливать ПО?

Да. Сервис AWS CloudFormation предоставляет набор установочных скриптов приложений, которые позволяют устанавливать на инстансы EC2 пакеты, файлы и сервисы путем описания их в шаблоне CloudFormation. Дополнительные сведения и инструкции см. на странице Установка приложений с помощью AWS CloudFormation.

Сервис CloudFormation также можно интегрировать с Systems Manager для выполнения и обслуживания установки ПО с документами автоматизации Systems Manager.

Вопрос: Можно ли использовать AWS CloudFormation для установки Chef?

Да. Сервис AWS CloudFormation можно использовать для установки ПО Chef Server и Chef Client на инстансы EC2. Дополнительные сведения и инструкции см. на странице Интеграция AWS CloudFormation с Chef.

Вопрос: Можно ли использовать сервис AWS CloudFormation для установки Puppet?

Да. Сервис AWS CloudFormation можно использовать для установки ПО Puppet Master и Puppet Client на инстансы EC2. Дополнительные сведения и инструкции см. на странице «Интеграция AWS CloudFormation с Puppet».

Вопрос: Можно ли использовать сервис AWS CloudFormation для установки Terraform?

Да. Сервис CloudFormation может установить программное ядро Terraform на инстансах EC2. Вы можете использовать поставщики ресурсов Terraform для создания ресурсов в стеках с использованием управления состоянием стека, зависимостей, стабилизации и отката.

Вопрос: Поддерживает ли AWS CloudFormation назначение тегов для ресурсов Amazon EC2?

Да. Ресурсам Amazon EC2, поддерживающим такую возможность, в шаблоне AWS можно присваивать теги. Значения тегов могут ссылаться на параметры шаблонов, имена других ресурсов, значения атрибутов ресурсов, таких как адреса, или значения, вычисляемые с помощью простых функций (например, объединенный список строк). CloudFormation автоматически присваивает томам Amazon EBS и инстансам Amazon EC2 теги по имени стека CloudFormation, к которому они принадлежат.

Вопрос: Будет ли у разработчика доступ к инстансам Amazon EC2 или к полям пользовательских данных конфигурации запуска Auto Scaling?

Да. С помощью несложных функций вы можете объединить строковые литералы и значения атрибутов ресурсов AWS и передавать их полям пользовательских данных в вашем шаблоне. Для получения подробных сведений об этих функциях ознакомьтесь с нашими образцами шаблонов.

Вопрос: Что произойдет, если не удастся создать один из ресурсов стека?

По умолчанию в сервисе включена функция автоматического отката при ошибке. CloudFormation создает или обновляет все ресурсы в стеке только при успешном выполнении всех отдельных операций. В противном случае CloudFormation возвращает стек в последнюю известную стабильную конфигурацию. Это полезно в тех случаях, когда вы, к примеру, случайно превысили свой лимит эластичных IP‑адресов по умолчанию или у вас нет доступа к AMI EC2, который требуется запустить. Данная функция гарантирует, что стек будет либо создан полностью, либо не будет создан вообще. Это упрощает администрирование системы и реализацию многоуровневых решений на базе сервиса CloudFormation.

Вопрос: Можно ли отсрочить создание стека до момента запуска нужного приложения?

Да. Один из вариантов, которые предоставляет сервис CloudFormation, – это ресурс WaitCondition, который блокирует создание других ресурсов до тех пор, пока от внешнего источника (от приложения или управляющей системы) не будет получен сигнал завершения. К другим вариантам относится создание собственного программного кода с помощью функций AWS Lambda.

Вопрос: Можно ли при удалении стека сохранить данные?

Да. CloudFormation позволяет задавать политики удаления для ресурсов шаблона. Вы можете настроить создание снимков состояния томов Amazon EBS или инстансов баз данных Amazon RDS перед их удалением, а также задать сохранение определенных ресурсов при удалении стека. Например, таким образом можно сохранить корзины Amazon S3 при удалении стека.

Вопрос: Можно ли обновить стек после его создания?

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

Вопрос: Можно ли создавать стеки в облаке Virtual Private Cloud (VPC)?

Да. Сервис CloudFormation поддерживает создание облаков VPC, подсетей, шлюзов, таблиц маршрутизации и списков контроля доступа к сети, а также создание таких ресурсов, как эластичные IP‑адреса, инстансы Amazon EC2, группы безопасности EC2, группы Auto Scaling, балансировщики нагрузки Elastic Load Balancer, инстансы баз данных Amazon RDS и группы безопасности Amazon RDS в облаке VPC.

Вопрос: Каким образом можно стать участником сообщества CloudFormation?

Присоединитесь к сообществу AWS CloudFormation в GitHub.

Вопрос: Можно ли управлять ресурсами, созданными за пределами сервиса CloudFormation?

Конечно. С помощью функции импорта ресурсов можно перенести все существующие ресурсы в управление AWS CloudFormation.

Начало работы

Вопрос: Как зарегистрироваться в сервисе AWS CloudFormation?

Чтобы зарегистрироваться в сервисе CloudFormation, нажмите «Создать бесплатный аккаунт» на странице сведений о продукте CloudFormation. После регистрации обратитесь к разделу документации сервиса CloudFormation, куда входит Руководство по началу работы.

Вопрос: Почему при регистрации в сервисе AWS CloudFormation меня просят подтвердить номер телефона?

Для регистрации в сервисе CloudFormation необходимо указать действительный номер телефона и адрес электронной почты на случай, если нам потребуется связаться с вами. Процедура подтверждения номера телефона занимает всего несколько минут: на указанный номер поступит звонок, после чего потребуется ввести PIN‑код с помощью кнопок телефона.

Вопрос: Как после регистрации приступить к работе?

Начать работу с CloudFormation проще всего с помощью «Руководства по началу работы», которое входит в техническую документацию. Уже через несколько минут вы сможете выполнить развертывание и начать использовать один из наших образцов шаблонов, на примере которого увидите, как создать инфраструктуру для работы таких приложений, как WordPress. Для обучения работе с сервисом CloudFormation можно использовать различные источники: от учебных планов сторонних поставщиков до учебных пособий и статей в Интернете. Дополнительные сведения см. на странице Ресурсы по CloudFormation.

Вопрос: Имеются ли образцы шаблонов, с помощью которых можно попробовать сервис AWS CloudFormation в работе?

Да, в CloudFormation есть образцы шаблонов, с помощью которых можно испытать работу сервиса и исследовать его возможности. На их примере вы увидите, как обеспечить взаимосвязь и работу различных ресурсов AWS в комплексе, в соответствии с рекомендациями по использованию избыточности во множестве зон доступности, масштабирования и настройки предупреждений. Чтобы приступить к работе, достаточно перейти в Консоль управления AWS, нажать «Создать стек» и выполнить последовательность действий по выбору и запуску одного из наших образцов. Когда стек будет создан, выберите его в консоли и просмотрите вкладки «Шаблон» и «Параметры», чтобы ознакомиться с элементами файла шаблона, который используется при создании этого стека. Образцы шаблонов также доступны в GitHub.

Реестр AWS CloudFormation

Вопрос: Что такое реестр AWS CloudFormation?

Реестр AWS CloudFormation – это управляемый сервис, с помощью которого можно регистрировать, использовать и обнаруживать типы ресурсов AWS и сторонних поставщиков. Сторонние типы ресурсов необходимо регистрировать, прежде чем использовать их для предоставления ресурсов с шаблонами AWS CloudFormation. Подробные сведения см. на странице Использование реестра AWS CloudFormation нашей документации.

Вопрос: Что такое типы ресурсов в AWS CloudFormation?

Поставщик ресурсов – это набор типов ресурсов со спецификациями и обработчиками, которые контролируют жизненный цикл базовых ресурсов с помощью операций создания, чтения, обновления, удаления и получения списка. Поставщики ресурсов можно использовать для моделирования и предоставления ресурсов с помощью CloudFormation. Например, AWS::EC2::Instance – это тип ресурса из поставщика Amazon EC2. Этот тип можно использовать для моделирования и выделения инстанса Amazon EC2 с помощью CloudFormation. Используя реестр CloudFormation, можно создавать и применять поставщики для моделирования и выделения сторонних ресурсов, таких как инструменты мониторинга SaaS, повышения производительности коллектива или управления исходным кодом.

Вопрос: Какова разница между поставщиками ресурсов AWS и сторонними поставщиками?

Разница между поставщиками ресурсов AWS и сторонними поставщиками заключается в их происхождении. Поставщики AWS предназначены для управления ресурсами и сервисами AWS. Их создают и обслуживают компания Amazon и подразделение AWS. Например, три поставщика AWS помогают управлять ресурсами Amazon DynamoDB, AWS Lambda и Amazon EC2. Эти поставщики содержат такие типы ресурсов, как AWS::DynamoDB::Table, AWS::Lambda::Function и AWS::EC2::Instance. Подробнее см. в документации.

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

Вопрос: Что такое схема ресурса?

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

Вопрос: Как разрабатывать типы ресурсов?

Для разработки поставщиков ресурсов воспользуйтесь интерфейсом командной строки AWS CloudFormation. Сначала определите простую декларативную схему ресурсов, в которой указаны необходимые разрешения и связи с другими ресурсами. Затем с помощью интерфейса командной строки CloudFormation сгенерируйте код для обработчиков жизненного цикла ресурсов (операции Create, Read, Update, Delete и List) и заготовки тестов для блочного тестирования и тестирования интеграции.

Вопрос: Как зарегистрировать поставщик ресурсов?

Можно воспользоваться интерфейсом командной строки AWS CloudFormation с открытым исходным кодом или напрямую вызвать RegisterType и связанные API реестра, доступные через SDK AWS и интерфейс командной строки AWS. Подробные сведения см. на странице Использование реестра AWS CloudFormation нашей документации. Поставщики ресурсов AWS готовы к использованию и не требуют никаких дополнительных действий по регистрации.

Оплата

Вопрос. Какова стоимость использования сервиса AWS CloudFormation?

За использование AWS CloudFormation с поставщиками ресурсов в следующих пространствах имен дополнительная плата не взимается: AWS::*, Alexa::*, Custom::*. В этом случае вы оплачиваете ресурсы AWS (например, инстансы Amazon EC2, балансировщики нагрузки Elastic Load Balancing и т. д.), созданные с использованием AWS CloudFormation, так же, как и созданные вручную аналогичные ресурсы. Вы платите только за то, чем пользуетесь, без минимальной оплаты или долгосрочных обязательств.

Если вы используете поставщики ресурсов с AWS CloudFormation вне указанных выше пространств имен, то плата взимается за каждую операцию обработчика. Операциями обработчика являются создание, обновление, удаление, чтение или получение списка ресурсов. Подробные сведения см. на странице цен.

Вопрос. Начисляется ли плата за ресурсы, удаленные в результате отката из-за ошибки, возникшей при попытке создать стек?

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

Лимиты и ограничения

Вопрос. Имеются ли ограничения на количество шаблонов или стеков?

Количество шаблонов не ограничено. При этом в каждом аккаунте AWS CloudFormation можно создать не более 200 стеков. Для повышения этого лимита заполните заявку, и мы ответим на нее в течение двух рабочих дней.

Вопрос. Имеются ли ограничения длины полей описаний?

Поля описаний Template, Parameter, Output и Resource ограничены 4096 символами.

Вопрос. Имеются ли ограничения на число параметров или выходных значений в шаблоне?

В шаблон можно ввести до 60 параметров и 60 выходных значений.

Вопрос: Имеются ли ограничения по количеству ресурсов, которые можно создать в стеке?

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

Регионы и адреса

Вопрос: Какие адреса доступа к сервису AWS CloudFormation используются в каждом из регионов?

Информацию об адресах для каждого из регионов см. на странице Адреса AWS CloudFormation в технической документации.

Вопрос: В каких регионах AWS в настоящее время доступен сервис AWS CloudFormation?

Дополнительные сведения о доступности сервиса CloudFormation по регионам см. на странице продуктов и сервисов по регионам.

Подробнее о ценах на AWS CloudFormation

Посетите страницу цен на AWS CloudFormation
Готовы приступить к разработке?
Начать работу с AWS CloudFormation
Есть вопросы?
Свяжитесь с нами