10 ways to optimize your AWS resources saving costs

By Ronak Gothi On July 08 2019

AWS offers amazing tools to scale up. But, this can also turn out to be a double-edged sword if not used properly. This article helps us to uncover some of the popular AWS cost management best practices.

With several years of experience, we have managed to come up with a cheet-sheet of best practices. The screenshot below shows 75% cost reduction in the span of 3 months.

AWSReduction

1. Over-Engineering

Do not over-engineer things. Your product is important to you, but you do not want to kill the Golden Goose even before it starts laying eggs. Product with less than 1000 daily active users does not require a complex setup like Container, Docker, Kubernetes, ECS. 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 AWS resources in anticipation of high traffic. SaaS applications should be build based on underlying data and statistics, and if your data can't justify provisioned hardware no one else can. It's stupid to provision 10 instance or m2 instance with very few active users. Consider using the Auto-Scaling Strategy.

3. Thinking about Multi-Vendor failover?

It's good to solve a complex problem, but don't create problems for the sake of it. Modern cloud providers like Google, AWS, Heroku, IBM, Linode, have more than 99% uptime, this should be 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 good to have 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. Serverless is expensive for user-facing application at scale.

5. Power of Automation

Does your application face heavy traffic 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. Using Spot Instance 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 c2.instance at 1/4th 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.
  2. Even in high traffic circumstances, the saving 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. 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. Consider other hosting providers

Migration from AWS to providers like Linode, Google Cloud can give you about 40-50% cost savings. It's always important to check other options. For example, a 4GB instance will cost $20 at Linode whereas $30 + Taxes in AWS.

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