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.
Authoring with JSON/YAML
Authoring with familiar programming languages
With the AWS Cloud Development Kit (AWS CDK) you can define your application using TypeScript, Python, Java, and .NET. AWS CDK is an open source software development framework that helps you model your cloud application resources using familiar programming languages, and then provision your infrastructure using AWS CloudFormation directly from your IDE. CDK provides you with high-level components that preconfigure cloud resources with proven defaults, so you can build cloud applications without needing to be an expert. To learn more about AWS CDK please visit the homepage.