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. You can also visualize your templates as diagrams and edit them using a drag-and-drop interface with the AWS CloudFormation Designer.

You can deploy and update a template and its associated collection of resources (called a stack) by using the AWS Management Console, AWS Command Line Interface, or APIs. CloudFormation is available at no additional charge, and you pay only for the AWS resources needed to run your applications.

Get Started with AWS for Free

Create a Free Account
Or Sign In to the Console

Receive twelve months of access to the AWS Free Tier and enjoy AWS Basic Support features including, 24x7x365 customer service, support forums, and more.

Learn how customers use AWS CloudFormation and other AWS services.

Featured Customers »

Introduction to AWS CloudFormation

Watch our introductory video to learn what is AWS CloudFormation and how it can benefit you.

Provision and manage your AWS infrastructure as code

Learn how Simple, an online bank that is part of BBVA, uses AWS CloudFormation to manage its infrastructure as code. The company uses AWS to run its virtual banking platform and meet payment card industry (PCI) data security standard (DSS) compliance for its development and production environments. By using AWS, Simple can automate processes that once took months to complete and instead focus on its customer service rather than managing IT infrastructure.


AWS CloudFormation supports a wide range of AWS resources, allowing you to build a highly available, reliable, and scalable AWS infrastructure for your application needs.


CloudFormation makes it easy to organize and deploy a collection of AWS resources and lets you describe any dependencies or special parameters to pass in at runtime. You can use one of the many CloudFormation sample templates -- either verbatim or as a starting point.


To create the infrastructure you want, you enumerate what AWS resources, configuration values, and interconnections you need in a template and then let AWS CloudFormation do the rest with a few simple clicks in the AWS Management Console, one command by using the AWS command line interface, or a single requests by calling the APIs. You won’t have to recall the details of how to create and interconnect the respective AWS resources via their service APIs; AWS CloudFormation does this for you. You also don’t need to write a template from scratch if you start with one of the many sample templates that come with AWS CloudFormation.


A template can be used repeatedly to create identical copies of the same stack (or to use as a foundation to start a new stack). You can capture and control region-specific infrastructure variations such as Amazon EC2 AMIs, as well as Amazon EBS and Amazon RDS snapshot names. Templates are simple JSON or YAML formatted text files that can be placed under your normal source control mechanisms, stored in private or public locations such as Amazon S3, and exchanged via email. With AWS CloudFormation, you can "open the hood," to see exactly which AWS resources make up a stack. You retain full control and have the ability to modify any of the AWS resources created as part of a stack.


You can use parameters to customize aspects of your template at run time, when the stack is built. For example, you can pass the RDS database size, EC2 instance types, database, and web server port numbers to AWS CloudFormation when you create a stack. You can also use a parameterized template to create multiple stacks that may differ in a controlled way. For example, your Amazon EC2 instance types, Amazon CloudWatch alarm thresholds, and Amazon RDS read-replica settings may differ among AWS regions if you receive more customer traffic in the US than in Europe. You can use template parameters to tune the settings and thresholds in each region separately and still be sure that the application is deployed consistently across the regions.


AWS CloudFormation Designer provides a visual diagram of your template with icons representing your AWS resources and arrows showing their relationships. You can build and edit templates using the drag-and-drop interface, then edit the template details using the integrated JSON text editor. CloudFormation Designer allows you to spend more time designing your AWS infrastructure and less time manually coding your templates.


You can integrate AWS CloudFormation with the development and management tools of your choice.

AWS CloudFormation publishes progress events through the Amazon Simple Notification Service (SNS). With SNS, you can track stack creation and deletion progress via email and integrate with other processes programmatically.

  • Nextdoor

    Web Applications

    For flexibility and elasticity in deploying servers, Nextdoor uses AWS CloudFormation templates. “We use AWS CloudFormation for one-click network creation. It’s a very easy tool,” says Wise. Nextdoor also uses the Puppet automation tool for defining and building servers in AWS, and the RightScale cloud management solution for configuring and monitoring machines in the AWS cloud.

    Learn More »

  • Coinbase

    Web Applications

    All of the company’s networks are designed, built, and maintained through AWS CloudFormation templates. “This gives us the luxury of version-controlling our network, and it allows for seamless, exact network duplication for on-demand development and staging environments,” says Witoff.

    Learn More »

  • WirelessCar

    Web Applications

    With AWS CloudFormation, WirelessCar can create and manage clusters of AWS services like Amazon Elastic Compute Cloud (Amazon EC2) and Amazon Simple Storage Service (Amazon S3) using templates, effectively making provisioning and updating much easier. “We then put our own abstraction layer on top of AWS CloudFormation. That’s important to us because it minimizes the amount of additional configuration the developers have to do.”

    Learn More »

  • Mentor Graphics

    Web Applications

    When Mentor Graphics application engineers (AE) are first building a virtual lab, they use Amazon Simple Storage Service (Amazon S3) to upload early versions of images to Mentor Graphics headquarters. AWS CloudFormation scripts build a working image so that the AEs can start configuring products.

    “Amazon CloudFormation made it easy for us to connect and provision AWS resources."

    Learn More »

  • Expedia

    Web Applications

    Expedia uses AWS CloudFormation with Chef to deploy its entire front and backend stack into its Amazon Virtual Private Cloud (Amazon VPC) environment.

    Learn More »

  • BrightRoll

    Web Applications

    Brightroll uses AWS CloudFormation to create dynamic test environments that enable the company’s continuous release model.

    Learn More »

  • FC Barcelona

    Web Applications

    “We are very happy with AWS CloudFormation, because it means we are able to use ‘one-click’ deployment of our whole infrastructure.”

    Learn More »

  • ME Bank

    Web Applications

    ME Bank’s developers on several Transformation teams build new products and services and complete unit testing before delivering code built in the AWS Cloud to a centralized Environment Services team. Environment Services then deploys the code to environments running on AWS for system integration testing, performance testing, and user acceptance testing ... AWS CloudFormation is used to replicate instance templates, providing the agility needed to keep pace with the bank’s change program.

    Learn More »