In episode five of the AWS Insiders podcast, AWS superfan and CTO of ESW Capital, Rahul Subramaniam, and EVP of product at CloudFix, Badri Varadarajan, explore AWS cost optimization. Listen to the full podcast episode here, or read on to discover the best practices, tips, and invaluable insights you need to optimize your AWS cloud environments for cost efficiency.
Getting started with AWS cost optimization
Rahul first began working with AWS in early 2007. At that time, AWS didn’t even have IAM that everyone is now familiar with, which allows you to manage your users and maintain access control. Instead, you only had one account – one username and one password which your entire organization had to use in order to operate on AWS. For Rahul’s team of over a thousand engineers, this was a nightmare scenario.
To help control this chaos, Rahul wrote a system that acted like IAM. First, it acted like a proxy to the single AWS account and allowed users to log into a portal where they could then request the resources they wanted. Unfortunately, they soon found that people were launching instances at will and never turning them off, leading to massive charges on the corporate credit card – the only form of payment available at the time. One of the first cost optimization measures they put in place required every person to add their eight hour shift into the portal. They would then turn off or hibernate the machines they had launched during their shift when not in peak work hours.
That one optimization cut their AWS costs by 66%.
Today there are much simpler methods that organizations can take, but there still needs to be a commitment to cost optimization from day one. Not only does this early adoption improve your overall cloud hygiene, but it also builds the cost optimization muscles across your organization so that if a problem does arise, you can take proportional measures instead of being caught unprepared. By focusing on the easier cost optimizations when you begin, you keep those savings as you scale, and can then dedicate future resources to the more difficult optimizations.
Cost visualization vs cost realization
With almost two and a half billion lines of code to manage across multiple companies, Rahul, Badri, and their team of engineers had no interest in building a new product or codebase. Instead, they sought out the cost optimization tools available at the time. But in testing these tools, they identified three fundamental problems:
- Most of these tools focused only on visualization
- None of them fixed anything, even if they did offer insights and recommendations
- A lot of these were incredibly difficult to navigate
While some of these AWS cost optimization tools sounded great, with savings recommendations of 50% or 60%, realizing actual savings became akin to performing major application surgery. With so many hurdles and dead ends, the team was left with no option but to figure out their own, simpler way of realizing savings.
Their simplified approach was as follows:
- Identify all of the recommendations AWS had made around cost
- Filter them down to those that they believed were completely non-disruptive and could be executed centrally
With the arrival of AWS Change Manager, they were then able to use it as a mechanism to deploy those filtered fixes without the need for admin credentials. By following AWS’s cost optimization best practices and recommendations, they realized savings with zero risk – closing the gaps that had arisen from other tools.
The two dimensions of AWS cost optimization
The first dimension of AWS cost optimization is the division between tools and people to achieve savings. As it currently stands, there are approximately 50% of real, achievable savings in your AWS environments. The first 10-20% is the realm that CloudFix operates in, where your investment is on the tool, not the people managing it. CloudFix is simply a tool that just does its thing, and all you need to do is click a few buttons for 10-20% of easy, risk-free savings.
The remaining 30% comes from investment in people – the more labor-intensive savings that requires you to involve engineering teams. It is worth operating this as an engineering project, where you assess your ROI based on the manpower involved, the hours they are spending, and the features they aren’t shipping because they are focused on this savings project.
The second dimension of AWS cost optimization is identifying the non-disruptive changes that can be made to realize savings. For example, there are financial engineering and process-related actions that can deliver cost reductions. Below are some of these non-disruptive actions:
- Sign up for the Migration Acceleration Program – AWS covers some of your costs while you are migrating so that you aren’t paying double
- If you have services where your consumption is expensive, speak to the AWS product team about potential discounts – AWS is open to negotiating in these cases
- Leverage Savings Plans, CRIs, and reserved instances – there is a potential for 50% in savings depending on the trade-offs you make between commitments and discounts
- Sign the EDP – this isn’t recommended as it is restrictive, but as a last resort it can deliver a discount if you are absolutely certain of what your spend will be for the next three to five years
- Use AWS Change Manager – this is built into the AWS console, and simplifies the process of realizing savings by removing the need for buy-in that involves meetings, playbooks, and hierarchical sign off of actions
Final insights for AWS cost optimization success
In many organizations, there are people that simply don’t know what is running in their AWS infrastructures – even in the same team. This means that what one person might perceive as a simple change, could actually be a much larger problem. As an example, someone may restart an instance which will be back up within three minutes. But what they might not know is that this instance is running a startup script. Conversely, projects have been blocked for months because the manager thought it was a much bigger deal than it actually was. When the engineers got involved, they revealed that they already had a simple automation for this. Identifying the stakeholders for any given project is incredibly useful to avoid costly mistakes.
Building automation into your projects is also a major recommendation for your overall AWS cost optimization strategy. With manual fixes, there is a higher risk of mistakes. By making your projects and cost optimizations automation-driven, you ensure that your actions are repeatable across your entire setup, and eliminate new risks as you scale.