Leveraging the Power of Terraform to Automate Infrastructure Deployments on AWS
May 1, 2017
ClearScale, an AWS Premier Consulting Partner, has a long track record of taking any customized client request and architecting an end-to-end development solution on AWS, no matter how complex the project. There are times, however, when a client comes to us not because they need a development solution, but because they already use AWS and need to find new and innovative methods to streamline their business operations and processes without impacting existing customers and while reducing the time to market for new customers.
The Problem: Quick Implementation of AWS Instances
A client in the speech recognition services industry whose product aids enterprise businesses had already developed a robust implementation of their product in AWS. They used Amazon to provide individual cloud instances for each business that used their speech recognition service.
The challenge for this client was achieving quick implementations without the tedious overhead currently necessary to deploy the service to a new customer. They engaged with ClearScale to determine if there was a more suitable process that would allow them to spin up an instance in AWS and deploy the solution quickly and easily to their new business customers.
The ClearScale Solution: Using Terraform on AWS
After evaluating their existing implementations, ClearScale proposed taking what the client had already built and augmenting it with Terraform, a service that acts as a template for infrastructure rollouts. Using Terraform, ClearScale created templates that allowed for the service to set up Virtual Private Clouds (VPCs) in AWS, create the security groups and ACLs, the subnets, the NAT gateways, and the routing protocols.
Compared to other engagements, the development effort for this client was minimal, but the business benefits conferred by our efficient solution made a big difference in the client’s ability to streamline their delivery model. The configuration of these templates, along with the creation of a straightforward mechanism that would execute them within Terraform, was the element in the client’s business process that was missing. Terraform further provides the ability to preview what will be implemented prior to actually executing the requests, which gave our client a higher level of confidence that what they were going to deploy in order to support a new enterprise business customer would be accurate.
Terraform also gave our client the ability to augment or change their infrastructure deployment templates in the future to meet the changing needs of their product or customer base. Because the templates are codified, versioning them to refer back to previous iterations is a simple and straightforward task. Furthermore, it provides a simple, safe workflow approach while mapping and exposing cross-dependencies with the various resources needed in order to be considered a successful deployment. This gave our client additional confidence that they could monitor and act on any areas of concern.
Architecture Design with Chef Automation
In addition to building out the Terraform templating solution, ClearScale designed an architecture using Chef Automation. After the Terraform template deployed a Chef instance inside of a newly created VPC, Chef would configure the AMI and automation scripts, implement a disaster recovery solution, and set up the IAM roles which would be used by EC2 to authenticate to the S3 for enabling the provisioning scripts.
With these areas properly executed, the AWS deployment could now instantiate the AWS Relational Database Service (RDS), the Dynamo DB instance, S3, and the Elastic Load Balancer (ELB). With these areas properly provisioned, it allowed for the client’s product to be deployed essentially just as it had in previous AWS instances they had created.
The difference, however, was that with the automated deployment approach that ClearScale had created, our client no longer had to spend days, or sometimes weeks, attempting to set up a unique AWS application instance for their customers using largely manual processes. With the Terraform solution, ClearScale brought savings to the client in the form of improved business process efficiencies.
Not only did it afford them a way to quickly deliver their product to their customers, but it also allowed them to solidify a growing partnership with those same customers by demonstrating that the amount of time between contract execution and first use is extremely important.
As always, ClearScale fully tested the solution end-to-end and corrected any issues that were uncovered. We also spent a sizeable amount of time documenting our solution so that our customer would be equipped to self-service their own Terraform implementation in the future. At ClearScale, we believe that we are not here to simply create a solution; rather, we believe in empowering our customers by giving them the tools necessary to be successful in the future.
How you choose to leverage AWS services depends on your own unique business need. With the myriad of choices out there in terms of services and third-party solutions that can be used to provide a robust, error-free end result, ClearScale recognizes that it is not always an easy task to take on. But with our extensive experience in utilizing AWS services, we can be a loyal and reliable partner for any complex or unique solution your organization has in mind.
Learn more about ClearScale’s DevOps services here.