What is AWS CloudFormation?
Managing applications and stacks in the cloud
The sinews and muscles that make cloud computing function are just as important as the web and mobile applications that run on top of it. While many companies are focused on the features available in the apps, increasing user adoption of an app, or focusing on revenue generated from a service that runs on the web, there is also the underlying infrastructure that makes those app work reliably and at a high-performance level. For the most part, a cloud computing service provider like Amazon (with AWS or Amazon Web Services) insulates developers, data scientists, and business owners from the complexity of the infrastructure.
Yet, there is also a great opportunity to tweak that cloud infrastructure in ways that help your company, the web and mobile apps you run, and your customers. The concept of “Infrastructure as Code” emerged a few years ago as a way to help companies manage all of the disparate services that run in the cloud. Previously, they may have used scripts or other tools to manage their IT infrastructure, but those tools were often hard to use and complex. It’s exacerbated further when your staff needs to manage provisioning, version control, and other variables.
While we like to think of cloud infrastructure as running independent of the apps and services we need to deploy, there are opportunities to provision services so that they all work together seamlessly, and to take advantage of new Amazon services. It means even more control over how the infrastructure runs and what you can do with your apps that run on top of it.
AWS CloudFormation, as the name implies, is a way to “form the cloud” -- meaning, it allows companies to manage and control the application stacks and resources needed for your web and mobile applications. It provides access to infrastructure components at your disposal and allows you to manage them all from one central command-line interface.
An example of what you can do: for those who are new to cloud computing, AWS CloudFormation uses templates to make the process easier (essentially, it’s a JSON or JavaScript Object Notation file you can use to track and manage resources). With templates, you can define and track all of the AWS resources you need. It takes the guesswork out of the infrastructure management part of cloud computing. Pre-defined templates make this even easier, providing access to the most used resources in a way that is ready to deploy.
Once you have selected a template (either as a JSON file or a pre-determined template) you then upload that configuration file to CloudFormation. The “infrastructure as code” concept comes into play here because you are using a piece of code (the JavaScript Object Notation file) to manage and control all of the resources, including the application stack, storage, servers, memory, and any other variables you need for your applications.
Benefits of AWS CloudFormation
As you can imagine, using AWS CloudFormation means there is one primary method of controlling the infrastructure rather than a disparate set of parameters and controls. Once you configure the template and upload it, running the infrastructure the way you want it to run is a simple matter of “running that code” in the cloud. The single template or a series of templates you create becomes the one way you manage the AWS infrastructure.
Are you a pro? Subscribe to our newsletter
Sign up to the TechRadar Pro newsletter to get all the top news, opinion, features and guidance your business needs to succeed!
Because of this one command center approach, it is also easier to replicate and deploy another infrastructure for additional application stacks using the same template. This also makes it easier to deploy an infrastructure for testing and development purposes. This provides more flexibility in how you develop and test business apps, and how you stress test and add additional services for your infrastructure without the confusion of having multiple points of configuration.
Because of this flexibility in how you control and manage the infrastructure, the CloudFormation templates have exactly the same benefits as a normal piece of software code. This includes version control for those templates, the ability to author the templates in a programming language just as you would any other app, and also to work together as a team to analyze the application stack, AWS resources, and performance variables as needed.
Another benefit to managing your infrastructure in this way is that you automate the entire process. Once your templates are all configured and ready to deploy, and your team has worked together to tweak all of the settings, deploying the template is incredibly easy -- it is just a matter of uploading that template and deploying it within CloudFormation.
One additional benefit, as is usually the case with any cloud infrastructure process, is that you can scale up easily with increased demand or when you need to deploy more apps to a larger group of users. You can replicate the templates in CloudFormation and launch an entirely new infrastructure with new applications without reinventing the wheel.
- Find the best cloud hosting.
John Brandon has covered gadgets and cars for the past 12 years having published over 12,000 articles and tested nearly 8,000 products. He's nothing if not prolific. Before starting his writing career, he led an Information Design practice at a large consumer electronics retailer in the US. His hobbies include deep sea exploration, complaining about the weather, and engineering a vast multiverse conspiracy.