Что такое CloudFormation?
AWS CloudFormation — это сервис от Amazon Web Services, который позволяет управлять инфраструктурой как кодом (IaC). С помощью CloudFormation можно создавать, обновлять и удалять облачные ресурсы AWS, используя шаблоны, написанные на языке JSON или YAML.
1. Шаблоны (Templates):
Шаблон CloudFormation — это текстовый файл, описывающий инфраструктуру, которую вы хотите развернуть в AWS. Это может быть как отдельный сервер, так и целая цепочка взаимосвязанных ресурсов, таких как EC2, S3, VPC, RDS и т. д.
Язык описания: Шаблоны могут быть написаны в формате JSON или YAML.
Ресурсы: В шаблоне описываются все ресурсы, которые будут созданы или изменены. Например, в шаблоне можно указать, что нужно создать EC2-инстанс, настроить его с определёнными параметрами, подключить его к определённой сети.
2. Автоматизация управления ресурсами:
CloudFormation автоматизирует создание, обновление и удаление ресурсов в AWS. Это особенно важно, когда необходимо управлять несколькими взаимозависимыми ресурсами. Например, можно создать шаблон, который будет развертывать сразу и сервер, и базу данных, и балансировщик нагрузки с нужными настройками.
Автоматическое управление зависимостями: CloudFormation автоматически понимает, какие ресурсы зависят от других, и создаёт их в правильном порядке. Например, если вам нужно создать EC2 и S3, то сначала будет создано S3, а затем EC2, если он зависит от этого бакета.
3. Обновления и управление состоянием:
CloudFormation поддерживает "обновление стека" — это процесс обновления ресурсов в соответствии с изменениями в шаблоне. Если вы вносите изменения в шаблон (например, меняете тип инстанса или добавляете новый ресурс), CloudFormation автоматически обновит все соответствующие ресурсы.
Автоматические проверки: Когда вы обновляете шаблон, CloudFormation проверяет, как это повлияет на существующие ресурсы, и выполняет изменения, минимизируя перерывы в работе.
Rollback: Если что-то пошло не так при развертывании, CloudFormation может откатить изменения и вернуть систему в исходное состояние.
4. Управление стеком (Stack):
Шаблоны CloudFormation создают стек (stack), который представляет собой набор ресурсов AWS, развернутых и управляемых как единое целое. Стек можно рассматривать как контейнер, в который входят все связанные ресурсы, определенные в шаблоне.
Стек можно обновить или удалить: Стек можно легко обновить (например, добавив новые ресурсы или изменив конфигурацию существующих) или полностью удалить, при этом все ресурсы в стеке будут удалены.
