В этой статье есть хорошее объяснение CloudFormation.
Если вы не знаете CloudFormation, то важно знать, что CloudFormation - это инфраструктура как код (Ia C) решение AWS. Он относится к той же категории инструментов, что и Terraform (очень хорошее сравнение между CloudFormation и Terraform можно найти здесь).
С CloudFormation вы можете декларативно указать инфраструктуру AWS, необходимую для облачного приложения в файл YAML или JSON, называемый шаблоном, а затем разверните этот шаблон. Во время развертывания AWS автоматически выделяет все ресурсы, которые вы указали в своем шаблоне.
Если вы уже развернули ранее и только что внесли изменения в свой шаблон, тогда AWS вычислит набор изменений и применит его, поэтому что состояние вашей инфраструктуры соответствует вашей спецификации (точно так же, как у Kubernetes).
Представьте себе следующий сценарий:
- Создайте новый проект и настройте шаблон CloudFormation для этот проект.
- Успешно развернут этот шаблон.
- Затем измените код.
- Снова разверните его.
В терминах шага 4, откуда CloudFormation узнает, что этот стек был создан ранее, и просто обновляет его?
Существует ли в шаблоне уникальный UUID для идентификации всех ресурсов, относящихся к этому шаблону?