AWS CloudFormation provides a common language for you to model and provision AWS and third party application resources in your cloud environment. AWS CloudFormation allows you to use programming languages or a simple text file to model and provision, in an automated and secure manner, all the resources needed for your applications across all regions and accounts. This gives you a single source of truth for your AWS and third party resources.
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.
AWS CloudFormation allows you to model your entire infrastructure in a text file. You can use JSON or YAML to describe what AWS resources you want to create and configure. If you want to design visually, you can use AWS CloudFormation Designer to help you get started with AWS CloudFormation templates.
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.
AWS CloudFormation automates the provisioning and updating of your infrastructure in a safe and controlled manner. There are no manual steps or controls that can lead to errors. You can use Rollback Triggers to specify the CloudWatch alarm that CloudFormation should monitor during the stack creation and update process. If any of the alarms are breached, CloudFormation rolls back the entire stack operation to a previous deployed state.
AWS CloudFormation Change Sets allow you to preview how proposed changes to a stack might impact your running resources. For example, whether your changes will delete or replace any critical resources. AWS CloudFormation makes the changes to your stack only after you decide to execute the Change Set.
AWS CloudFormation automatically manages dependencies between your resources during stack management actions. You do not need to worry about specifying the order in which resource are created, updated, or deleted. CloudFormation determines the correct sequence of actions to use for each resource when performing stack operations.
AWS StackSets that lets you provision a common set of AWS resources across multiple accounts and regions with a single CloudFormation template. StackSets takes care of automatically and safely provisioning, updating, or deleting stacks in multiple accounts and across multiple regions. This provides the same level of automation, repeatability, and reliability to stack management operations across regions and accounts.