When I first heard the idea of cloudFormation, it sounded much complex than it really is.
In this post, I will try to simplify cloudFormation to a beginner looking into cloudFormation.
What is CloudFormation?
AWS CloudFormation is a service that gives developers and architects an easy way to create a collection of related AWS resources and provision them in an orderly and predictable fashion.
Or in simple terms, you create infrastructure by writing some config code, which you can version control and make changes and use it anytime you want.
AWS CloudFormation introduces two concepts : The Template , a JSON or YAML format, text based file that describes all the AWS resources you need to deploy to run your application and the Stack, the set of AWS resources that are created and managed as a single unit when AWS CloudFormation instantiates a template.
If all resources is not created properly during a stack creating a rollback occurs and all the resources are deleted.
If a successful stack is deleted, all resources are deleted.
What are the elements of an AWS CloudFormation template?
An optional list of template parameters (input values supplied at stack creation time)
An optional list of output values (e.g. the complete URL to a web application)
An optional list of data tables used to lookup static configuration values (e.g., AMI names)
The list of AWS resources and their configuration values
A template file format version number
An optional set of conditions
For example running this template will provision an EC2 instance and a Security Group. You can provision a stack using console or the CLI: https://github.com/ravsau/Cloudformation/blob/master/simplified-EC2.txt
Watch this 3 part video series where explain CloudFormation:
Thanks for reading. I hope that you learned something new about CloudFormation. If you have questions/ comments please them share below in the comments.