Why use AWS CloudFormation?
AWS CloudFormation gives you an easy way to model a collection of related AWS and third-party resources, provision them quickly and consistently, and manage them throughout their lifecycles, by treating infrastructure as code. A CloudFormation template describes your desired resources and their dependencies so you can launch and configure them together as a stack. You can use a template to create, update, and delete an entire stack as a single unit, as often as you need to, instead of managing resources individually. You can manage and provision stacks across multiple AWS accounts and AWS Regions.
Improve automation
The template's simplicity allows you to describe how you want your resources to appear and integrate with other AWS resources and features. It is no longer necessary to use other scripting tools to produce the resources.
Human-readable template
If you're working on a web application or a microservice, you've probably used YAML or JSON before. They are both commonly used configuration languages in IT, making them simple to comprehend and get information about resources on a particular stack.
Consistency in infrastructure
The declarative approach to template definition ensures consistency. The stacks produced with the template will always be the same at any given time unless you update and declare a new version of it.
Replicate infrastructure quickly
You can swiftly clone your infrastructure, recreating your dev, test, staging, and production environments. You can use the template to make as many stacks as you want.