CloudFormation is a powerful Infrastructure as Code tool that can help automate and manage your AWS deployments.
This is the fourth article in our Infrastructure as Code blog series. Check out our other posts here:-
Infrastructure as Code: 5 Reasons Why You Should Implement IaC Now
- 6 best practices to get the most out of IaC
-
15 Infrastructure as Code tools you can use to automate your deployments
-
How AWS CloudFormation Works (and How to Create a Virtual Private Cloud with it)
-
How to incorporate S3, EC2, and IAM in a CloudFormation template
-
How to create a Redshift stack with AWS CloudFormation
- What CloudFormation’s primary features are
- How CloudFormation can be used with other IaC tools
- What companies use CloudFormation
What is CloudFormation?
AWS CloudFormation is a configuration orchestration tool that allows you to codify your infrastructure to automate your deployments. CloudFormation templates can be created with YAML in addition to JSON. Or you can use AWS CloudFormation Designer to visually create your templates and see the interdependencies of your resources. CloudFormation takes a declarative approach to configuration, meaning that you tell it what you want your environment to look like, and it finds its way there. During this configuration process, CloudFormation automatically manages dependencies between your resources. Thus, you don’t have to specify the order in which resources are created, updated, or deleted. CloudFormation automatically determines the correct sequence of actions to create your environment, though you can use the DependsOn attribute, wait condition handlers, and nested stacks to specify the order of operations, if necessary. Sometimes updating an infrastructure stack can cause anxiety because you’re not sure what changes might break the environment. Not to fear! CloudFormation Change Sets allow you to preview how your resources will be impacted before any changes are executed. Only after you execute your change set will your stack be edited.
Want this in a handy eBook? Click here to download our 62-page Infrastructure as Code Handbook, which includes IaC benefits, best practices, tools, and analysis of three AWS CloudFormation scripts!
Combining CloudFormation with other IaC tools
As mentioned in our prior post about IaC tools, CloudFormation is a configuration orchestration tool, which is used to automate the deployment of servers and other infrastructure like databases and load balancers. CloudFormation is often used in conjunction with configuration management tools, which are designed to configure the software and systems that run on this infrastructure. This combination provides seamless deployment and configuration of AWS infrastructure and the applications that run on top of it. Let’s say that you want to build a SaaS data analytics application on AWS. You can use a CloudFormation template to provision a web server on EC2, a DynamoDB database, and any other AWS resources you need. Then you can install a configuration management tool to set up the operating systems and software on these EC2 instances. Chef and Puppet are the most popular configuration management products used with CloudFormation, and AWS has a product called OpsWorks that provides managed instances of these tools. The combination of CloudFormation with configuration management tools allows you to automate the configuration, deployment, and management of cloud resources and the software that run on them from a single template. This greatly improves the efficiency and consistency of your infrastructure deployments.Companies who use CloudFormation
If you use CloudFormation to automate your deployments, you’re in good company.Nextdoor
Nextdoor is a private social network for local neighbors to connect with each other and share community news. The company has over 160,000 neighborhoods across the globe and more than 10 million users on its platform.
Nextdoor uses CloudFormation templates for flexible, one-click server deployment and network creation. They also use Puppet to define and configure the software and operating systems that run on these AWS servers.
Coinbase
Coinbase is the largest consumer Bitcoin wallet in the world. Over 10 million users have purchased or traded over $50 billion worth of cryptocurrencies through their platform.
Most if not all of Coinbase’s infrastructure is designed and managed with CloudFormation templates. This allows the company to easily replicate infrastructure stacks for all phases of their development process and provides version control to ensure their environments are configured correctly over time.
Expedia
Expedia GroupConclusion
As you can see, AWS is a really powerful tool that many large and influential companies use to deploy and manage their infrastructure stacks. We primarily work with AWS, so we’re all over CloudFormation. And we’ve built a couple of products on the AWS Marketplace (SFTP Gateway and WP SureStack) using CloudFormation, so we understand the power that it can have in automating AWS infrastructure deployments. Check out other posts in our IaC series:-
Infrastructure as Code: 5 Reasons Why You Should Implement IaC Now
- 6 best practices to get the most out of IaC
-
15 Infrastructure as Code tools you can use to automate your deployments
-
How AWS CloudFormation Works (and How to Create a Virtual Private Cloud with it)
-
How to incorporate S3, EC2, and IAM in a CloudFormation template
-
How to create a Redshift stack with AWS CloudFormation
