Power of CloudFormation, The Superman of AWS
In this article, I will be sharing some of the important factors about cloud automation and later I will discuss “why CloudFormation is the superman of AWS”
“The most powerful tool we have as developers is automation.” — Scott Hanselman
You will need a basic understanding of cloud infrastructure and AWS offerings. This article is not for setup any AWS cloud service step by step or any code tutorial. It is intended to just realize the power of the cloud with automation with some examples.
So, let’s dive into it.
Moving to cloud infrastructure has become today’s need. Nowadays all enterprise and product companies moving to the cloud with either Amazon Web Service, Google Cloud Platform, or Microsoft Azure. Well, migration to the cloud comes with lots of advantages.
- Easy to use
- Scalable and High performance
“If you have migrated to cloud and it's not automated, you have still miles to go”
Automation is a way powerful, it saves time and cost, and that’s what AWS CloudFormation offers. In more technical terms its “infrastructure as code”
Let’s assume An Agile product development team, completed the development and ready for UAT. A DevOps engineer asked to set up an UAT environment for clients on Cloud. Let’s see how it happens.
Getting an EC2 instance with specified memory and computation power on AWS
Set some VPC and network, access, and other controls…
Set deployment environment, install required run time like Node, Java, etc to run the application on EC2…
And a lot more…like CICD, CloudWatch (for logs), etc.
sometimes it includes configuration of frontend, backend, and a database altogether.
Finally, the UAT environment is ready, the application is up and running, clients get URL and access.
Now clients validated it, used these apps for a week, and come back with some suggestions and defects. And team planned it for the next sprint deliverables. Meanwhile, clients are busy with their stuff and nobody else is using that UAT environment.
The cost-benefit magic is those next sprint 10 days, your UAT environment is idle some of AWS services are not used but still occupied by you, that could cost a bit based on the nature of the environment.
Assuming you got the same configure UAT environment is up and running with a piece of code. So whenever you need a UAT environment, run that automated code, and your UAT environment is ready, after 4–5 days of UAT, just remove the UAT environment when not needed and boom. You saved those costs when your system was idle and the team developing features in those sprints.
Think! How much it can save, it's just a team where a company has lots of application and 15–20 teams working on products. This can save a lot.
Consider a different scenario, A product based company selling a product to different vendors. Each vendor's onboarding time (product set up and running for them to use) took two weeks. Doing again the same set up of cloud services and networks on AWS for each of the vendors is a tedious task, there might be a chance of mistakes also.
Assuming the team gets the contract today, you run the script with minor changes in the template that best fit the minimum required computation power for the specific vendor based on their uses and boom. The production environment and application is up and running.
Wait ! what Template? yeah!
AWS CloudFormation works on a template that describes your required resources, services, and their dependencies so you can launch and configure them together as a stack.
CloudFormation is a free service, you can only charge for services you specified in the template.
You can store the template in AWS S3, the CloudFormation read the template and create the stack based on it. You can use YML or JSON based template.
You can find here more details about AWS CloudFormation uses a sample template.
That’s why I think CloudFormation is the superman of Amazon Web Services. It super fast everything, save time and cost as well.
That’s it for now. Hope you enjoyed this post, and it was helpful to you! :-)