Case Study

The Tooling That Saved $2.25 Million On AWS

About the client

This client was in need of developers who were skilled with cloud architecture, cloud development, application development, and serverless for an initiative to eliminate legacy virtual machines in favor of containers. They also wanted to evaluate the role serverless could play in this migration. By eliminating and transitioning these legacy servers there was potential to save the client $300,000-$500,000 annually and Serverless Guru was up for the task.

The Challenge

This client was losing $1,200,000 per year on an AWS account that had been created 5+ years ago and was largely deprecated. However, the AWS account still supported multiple development teams, QA teams, and had some production workloads. The largest obstacles that the client faced came down to understanding which servers were in-use, which servers were over-provisioned, who created the servers, and what steps were needed to automate the necessary changes.

The client had 400+ employees and more than 100+ in their IT department including software developers, QA, DevOps, and UI/UX designers.

The Solution

Serverless Guru was brought in to spearhead the project and we helped build the initial tools that allowed client leadership to get buy-in for additional resources. The client team then grew to fully support the initiative due to the foundational success and Serverless Guru transitioned into developing additional tools for identifying idle and over-provisioned legacy servers, decommissioning legacy servers, and transitioning manually created legacy servers (AWS EC2 instances) to Infrastructure as Code (AWS CloudFormation), turning manual actions by unknown team members into automated repeatable patterns.

When it came to understanding the current servers inside the AWS account, we developed a custom tool that would scan all the existing AWS EC2 servers across all AWS regions and pull in AWS CloudWatch metrics with information on CPU, RAM, etc. By aggregating and sorting this data together, we were able to generate highly granular cost details about their AWS EC2 servers, associated storage costs and backup costs. This also provided the foundation for future tool development, tools which focused on decommissioning servers and transitioning over provisioned servers to IAC while optimizing for cost savings.

After identifying legacy servers that were idle and could potentially be decommissioned, we scheduled meetings with internal team leads to trace down the purpose of these legacy servers. After confirming that the servers were no longer in use, we then built an automated decommissioning tool to stop servers based on tags using a TTL (time-to-live) Amazon DynamoDB table. The Amazon DynamoDB table would trigger an AWS Lambda function two weeks later when the expiration date was reached. Helping to prevent accidental termination, as notifications were automatically sent out to team leads incrementally leading up to the termination date. The tool would take a backup of the server, send out notifications via Slack/email, remove the server, and update a cost tracking database to aggregate the project’s overall cost savings.

When we identified legacy servers that were over-provisioned, our tool would automatically copy the exact configuration of a manually created AWS EC2 server into AWS CloudFormation. A backup of the server and all storage attached, including tags which linked everything together, would also be created. The tool would then deploy the AWS CloudFormation, recreating the exact server with an optimized configuration. The effect of this tool resulted in massive savings upwards of 60% per server.

Once our client started to realize the cost savings from our server decommissioning and optimization tools, we then developed automation that would aggregate all of the cost saving data across all the recent changes into an email to the client’s leadership on a weekly basis.

By the end of our engagement, we were able to help the client realize a 26% reduction in cost, resulting in $450,000 of savings on a single AWS account, which was previously costing the client $1,200,000 per year. Over 5 years, this automation is projected to save them $2,250,000 in raw AWS costs.

Why Serverless Guru

The client needed to ensure their cost savings initiative would be a success and needed to move quickly, as they were actively losing $100,000 a month. The initiative required a certain set of skills and expertise in not only developing automation with AWS, but helping spark an entire movement internally at the company. That’s why Serverless Guru was the perfect fit because of our depth of expertise and commitment to advocating for solutions which link directly to tangible business outcomes.

We studied the client's organization, applications, and cloud infrastructure and then created a blueprint for how to significantly reduce costs while executing on that blueprint independently. As the concept was proven to the client’s leadership we helped scale the team out internally, providing training and hand-offs while pushing for additional creative ways to take the initiative further.

Ultimately, the client was able to see saving upwards of $2.25 million by the end of our engagement.

Serverless Guru exists to help companies around the globe on each step of their serverless journey and help them actualize the benefits of using serverless at scale. We do that through helping companies understand where serverless fits and where it doesn’t. We are a team full of serverless experts and the #1 Serverless Development Partner.

Next Step

To learn more about how to work with Serverless Guru, fill our contact form or email our team at projects@serverlessguru.com.