A Complete Guide to AWS Cost Optimization Best Practices
AWS is expensive. If you're struggling with AWS cost optimization, Cloudthread can help. Let us show you how to get your team on track.
AWS is expensive. If you're struggling with AWS cost optimization, Cloudthread can help. Let us show you how to get your team on track.
Amazon Web Services changed the way we think about computing power. Anyone who’s been in IT for more than a decade can remember a time when every company with a computing presence needed a whole floor full of expensive equipment—racks upon racks of servers, networking equipment, redundant power supplies, and more cooling than you ever imagined possible. AWS turned that entire table over. It was much faster to build a server in the cloud and let AWS handle all that difficult setup. It was cheaper and easier, too. On top of all that, you could easily set up redundant configurations in different geographical regions, instantly boosting your company's resiliency.
Here's the dirty little secret that AWS doesn't want you to know: It's still too expensive and your cloud bill never gets smaller if your business is growing. AWS is designed to make everything pretty easy for you. Not totally easy, but pretty easy. And the pretty easy path is always a good chunk more money than you need to pay for what you're getting. Just like when you were setting up an entire data center, it's trivial to misallocate resources and pay costs that provide no benefit to your company. The good news is that we can fix that. It takes some work to do. There aren't any shortcuts, and at the end of the day, the only company that knows what computing resources you really need is yours. But if you're willing to dive into this guide, it will save you money.
Here's the dirty little secret that AWS doesn't want you to know: It's still too expensive and your cloud bill never gets smaller if your business is growing.
The #1 mistake that I see businesses make with AWS is over-provisioning services. When businesses are setting up a particular service, they don't know how much traffic it will serve. So, they guess. Engineers who have no data will almost always guess that a service needs much more computing power than it actually does. There are a couple reasons for this, and they're really pretty simple. The first is that nobody wants to be called in the middle of the night because some critical server can't process requests fast enough, or it's run out of memory. That's not fun, and it's completely understandable. The second reason engineers over-provision servers is related to the first. Nobody wants to have to explain to the CEO why their service crashed in the middle of their first big sales rush.
If you're just starting out, over-provisioning your servers might honestly make a lot of sense. You truly don't know yet what your traffic patterns look like. It's likely that you're taking advantage of something like AWS startup credits. But as you mature, your AWS costs are likely to grow, and minimizing those costs is a great way to boost margin. And while it's possible that you might take advantage of something like auto scaling, there might be reasons that doesn't work for you. Either way, you want to drill down for each service that you run to ensure that it has the capacity to meet your needs. But you don't want it to consistently run at a higher capacity than you need.
Not every service your business runs provides the same return on investment. When you receive a bill from AWS, it's not very detailed. You'll get some high-level line items, but how do you match that up against your existing projects and services? Like so many other things, there's an AWS tool for that: cost allocation tagging. Leveraging cost allocation tags empowers you to break down how much you're spending for each service your company provides. Not every service is supported, but if you're diligent about tagging resources, you'll have access to monthly reports that provide much more detail about where your money goes to AWS each month. This kind of detail aids in things like COGS calculations, which are critical for understanding the health of your business.
Even AWS cost allocation tags are sometimes a bit opaque. That's not surprising; like I said, AWS wants to make sure you're paying too much for what you need. If you want to take your knowledge of cloud spending to the next level, Cloudthread does just that. Instead of providing a few reports once per month, Cloudthread exposes up-to-date metrics in their web app and provides a reporting and alerting framework for your cost data. You can drill down into detailed metrics and slice your information however you need so you can understand just what you're paying for.
Much like a George Romero film, sometimes the key to AWS cost allocation is avoiding the shambling hordes of undead trying to eat your profits. Decommissioning an AWS service doesn't always mean that you remove all traces from AWS. It's common for zombie resources to hang around, doing no actual work but still costing you money. Probably the most common instance of this is Elastic Beanstalk Storage volumes that you don't delete when you decommission the Elastic Beanstalk server itself. Each EB instance requires some volume of storage to store data and code, but when you turn off the EB instance, that doesn't mean that storage goes away. Arguably, this is helpful for some companies: It means that if you're just switching instances, then you don't lose all your data. But if you're turning a service off forever, you likely don't want resources for that service hanging around. EBS volumes is definitely worth checking out for quick cost cutting wins - our article helping to do this is here.
All of the previous sections of this guide feed into this point. The best way to build a cost efficient company is to foster a culture of cloud cost efficiency. This might mean adopting something like a FinOps team. It definitely means thinking about which unit metrics make sense for your business. When you understand which costs drive the engine of growth for your company, optimizing those costs means boosting profits and growth at the same time. The reason that having a culture of efficiency is so important is because none of the other steps in this guide are one-stop changes. Adding some cost allocation tags or eliminating a single zombie storage volume won't optimize your AWS costs. It might help improve them, but true optimization is an ongoing project.
The best way to build a cost efficient company is to foster a culture of cloud cost efficiency.
Instead, you need a leadership team that understands your organization's efficiency performance indicators. You need to invest time for both technical and non-technical people to address inefficiencies. None of these changes will come for free. But if you invest time into a culture of efficiency, you'll find the returns pay off in ways both big and small.
There’s a lot of great AWS native tools to help you get started but Cloudthread's tools can do the heavy lifting and take you a step further than you can go on your own. Even if you're already crushing integrated AWS cost optimization options, Cloudthread is here to help you walk the FinOps path. Cost optimization isn't just a question of getting some numbers right, it's about accountability and sustainable efficiency. We spend a lot of time thinking about how to reach those lofty goals. You can leverage our expertise and use it to boost your bottom line.
It doesn't matter if you're a startup running out of credits or you've just hit $1 million a month on AWS. With Cloudthread, you can get started for free and find out just how much your FinOps journey will save you right out of the gate. Don't spend another day paying too much for AWS.