10 ways to optimize your AWS resources saving costs

Published on July 08 2019 by Ronak Gothi
AWS Cost Optimisation AWS AWS Pricing

AWS offers amazing tools to scale up very quickly. However, this is also a curse where developers can over-provision resources. This article helps us to uncover some of the popular misconfigurations.

Recently we helped our client reduce their AWS bills, they had AWS bills spanning into 1000s of dollars. In 3 months we reduced their AWS bills by a whopping 75%.


1. Over-Engineering

Do not over-engineer things. We understand that your product is important to you, but we really do not want to kill the Golden Goose even before it starts laying eggs. Application with less than 1000 daily users really does not need a complex setup like Docker/Kubernetes/ECS. While I understand that there can never be one rule fits all use-case, this still holds true for 95% of the applications.

2. Over Provisioning

Do not over-provision in anticipation of high traffic. Tech products should be build based on underlying data and statistics, and if your data can’t justify provisioned hardware no one else really can.

3. Thinking about Multi-Vendor failover?

It’s good to solve a complex problem, but don’t create problems just for the sake of it. Modern cloud providers like Google, AWS, Heroku, IBM, Linode, have more than 99% uptime, this should be just good enough for 99% of the SAAS applications.

4. Go Serverless!

As the company matures, the team expands we end up having 100s of internal tools that are needed but are not mission critical. Serverless is an amazing offering solving this use-case. Your apps can be internal Monitoring Tools, Report Generations, ETL middleware, Data cruncher. The best part is you only have to pay for what you use. I, however, do not recommend this stack for User-facing applications.

5. Power of Automation

Does your application face heavy traffic just a couple of hours every day? One could use the power of automation to scale up the fleet to meet the growing need without paying for the complete 24 hours.

6. Use Spot Instance

Spot Instances are dead cheap, you get a dollar worth of machine for pennies (well, not literally). Using Spot Instance judiciously can save up to 70% of AWS bills. Does your ETL task takes 8 hours to process in a 4 Gig machine, you can speed things up by running your tasks on a more powerful machine at 70% of the cost.

7. Use ACM, S3, Cloudfront

Do you have several marketing URLs, landing pages, brand campaigns? AWS (Cloudfront + S3) enables you to create and publish static pages at close to $0 cost.

It provides you with two advantages -

  1. You do not have to pay a fixed monthly cost to host your marketing URLs. I’ve seen companies owning more than 500 marketing domains.
  2. Even in high traffic circumstances the saving in terms of Human resource to maintain 99% uptime can be upward $100,000.

8. Use Optimized instances

Compute-optimized instances are high on performance. For one of my clients, I was able to replace 10 t2.medium instance with 3 c5.large and achieve the same performance. That’s about 40% cost savings. Similarly one could look at the other instance types to make sure they are well suited for the use-case given.

9. Got cash? Why don’t you pay upfront?

Reserving an instance for 3 years could give you a 50-60% discount upfront. In case you are wondering what happens when you grow big in size, you can always add more instance to your fleet via an ELB/ALB.

10. Evaluate other hosting providers

Migration from AWS to providers like Linode can give you about 40-50% cost savings. It’s always important to evaluate other options. For example a 4Gig box will cost $20 at Linode whereas $30 + Taxes in AWS.

If you’ve come this far Schedule a free 30 mins consultation