Despite often being in the top 10 highest company expenditures, AWS (Amazon Web Services) spend is typically not well understood and poorly optimized for savings. No one typically objects towards saving money, yet it can be a very daunting task for an engineering team. Most small to medium engineering organizations do not strictly control and/or optimize AWS spend. Meanwhile, your companies finance team is desperately trying to conserve capital while silently sobbing as smoke from all the burning cash is wafting about the office.
Why is it so challenging for companies, both big and small, to take advantage of seemingly obvious savings in AWS?
Communication! Specifically between the finance and engineering teams. A common problem is finance does not fully understand the details of an AWS bill broken down by service. Similar, the engineering team doesn’t care how much everything costs! When you bring these two teams together, magic will happen. Bridging the gap between finance and engineering aligns business and engineering values resulting in greater cost optimizations and a clearer picture of the company mission. This spell S-A-V-I-N-G-S for services such as AWS. Let’s talk about how you can facilitate this type of cost-saving teamwork at your company.
Formalize the project
This is not 10% or 20% of someone's time. Make this a real project and put it on your companies roadmap. Better yet, give the project some realistic goals with a potential stretch goal (OKRs). Even better yet, put the project on the roadmaps for both finance and engineering. Remember, this project has the potential to drive real monetary value for your company.
Create a task force comprised of individuals from finance and engineering
Duh, right? The whole point here is to combine perspectives and knowledge to save money on AWS spend. Both the finance team and the engineering team should pick a minimum of one person to be on the task force. Keep the team small and lean if possible. From the engineering team, it is common to choose someone from infrastructure or operations as they would typically have the most experience with AWS costs and services.
Clearly identify executive stakeholders
Unless a member of the task force has signing authority, find an executive or some executives who can be points of contact for your task force. In order to finalize savings a deal must be struck, money needs to change hands between your company and AWS. This will require someone with the authority to sign contracts.
Reach out to your AWS reps for help
Your company is probably already paying AWS a ton of money for support so get your money's worth. Reach out to AWS and engage your support team. Explain to them your goals and see how much work can be offloaded onto their team. If your company doesn’t already have some type of AWS cost reporting tools in place this step is even more important as AWS can help generate the data you need to make decisions.
There are a number of ways your new task force can save money:
- Spot Instances
- Identifying low hanging fruit for service optimizations
- EDP (Enterprise Discount Program)
I will go into further details about each of these topics in another post, but for now, you can feel confident that you have a right team of folks working on a task that can lead to big savings for your organization. Furthermore, your task force can self assemble as necessary to perform maintenance as time progresses.
AWS spend is typically described as the “cost of doing business”, and while this is accurate, there are likely big savings wins right under your noses. Software engineering is expensive. It is expensive to hire talent, and it is expensive to run demanding services. Donald Knuth once wrote in his book The Art of Computer Programming, “premature optimization is the root of all evil”. In my humble opinion, there is no such thing as premature cost optimization. Cost optimization (at any time) is not only smart but helps maintain the lifeblood of your company…it's capital.