AWS CloudFormation gives developers and systems administrators an easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion. You can use AWS CloudFormation’s sample templates or create your own templates to describe the AWS resources, and any associated dependencies or runtime parameters, required to run your application. You don’t need to figure out the order for provisioning AWS services or the subtleties of making those dependencies work. CloudFormation takes care of this for you. After the AWS resources are deployed, you can modify and update them in a controlled and predictable way, in effect applying version control to your AWS infrastructure the same way you do with your software.
Using the AWS CloudFormation Registry, you can model, provision, and manage third party application resources alongside AWS resources with AWS CloudFormation. Examples of third party resources are monitoring, team productivity, incident management, and version control tools.
You can build your own resource providers using the AWS CloudFormation CLI, which is an open source tool that streamlines the development process and includes local testing and code generation capabilities.