Corey Quinn wrote a twitter thread on good practices for controlling AWS spending. Many of those practices I have experienced myself over the past year and I like how the post summarizes them. Adding to Corey’s post, another aspect for controlling the AWS bill is more organizational than technical, and in this post I will mention three of the aspects I experienced over the past year that highly influence your AWS spending.
I realized I've never done a tweetstorm on how to save money on your @awscloud bill. This will not be comprehensive in the least, it's nuanced and site specific. Here we go.
— Corey Quinn (@QuinnyPig) January 31, 2019
Making teams accountable for their AWS budget is crucial to ensure a managed budget without overspending. This is mainly achieved through the budget planning process and ensuring that unit leads are accountable for the cloud budget as much as they are accountable for other costs such as headcount and team events.
All models are wrong, but we also know that some are useful. Teams should understand and factor the drivers of their cost, their growth contributions, and the plans they have that would contribute to increasing/decreasing the spending. This needs a lot of education, but it is essential to achieve cost efficiency.
Accountability is hard to achieve without proper tooling that enables visibility on spending. That’s why over the past year we built tools that report to teams their weekly spending, and to unit heads their unit’s spending. This would also be ideal if it is tied to the budget and can offer some level of forecasting and early enough alerts or anomaly detection.
The first two points were about enabling teams to take action, this point is rather about what you enforce if you have a central platform team. Some of the control measures would be things like downscaling test deployments after work hours, creating quotas for logging, or enabling Spot instances for Kubernetes clusters if possible. This is more about applying Corey’s ideas at scale.
I hope this was helpful.