Authoring with JSON/YAML
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.
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.
Preview Changes To Your Environment
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.
Cross Account And Cross-Region Management
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.
AWS CloudFormation enables you to build custom extensions to your stack template using AWS Lambda. You can use Custom Resources, which is an extensibility mechanism that enables you to write custom provisioning in a Lambda function and have it trigger during a CloudFormation stack. You can write custom provisioning logic for tasks such as provisioning a third party resource or looking up the latest AMI IDs for use in your stacks.