How to reduce your AWS costs to a minimum
These days a lot of companies have decided to move their traditional on-premise data-centers to the cloud in order to decrease the overall cost and avoid purchasing of very expensive hardware, by shifting over to the cloud they get the best value for their money.
That being said, this is not always the case. The cloud provides very quick solutions and requires minimum setup from the consumer. But due to the fact that you can spin up resources with a click of a button makes it harder to govern and as a result the cost of transitioning to the cloud becomes high
This challenge created a new position thorough various companies. It’s called FinOps (Financial Operations). But not all companies have somebody dedicated to this task. So I’m going to take a swing at it and try to introduce the best ways to reduce your AWS budget without having any impact on your production or development environments.
Shutdown/Terminate AWS idle Resources
This is the easiest and quickest way to save money. Shutting down or terminating unneeded AWS resources such as EC2’s and RDS’s will significantly reduce costs and in order to do so I’d recommend going over the cost optimization feature in AWS Trusted Advisor service as it will display insights and recommend actions that can be taken.
For future planning it’s highly recommend to use IaC (Terraform or CloudFormation) and by defining the used resources, it’s possible to handle this without leaving any idle resources.
Optimize the resources
Use AWS Compute Optimizer, this service hands out recommendations on how to adjust the current AWS compute resources to match the workload. Over-provisioned computed leads to a high cost.
Use Spot Instances and purchase Reserved instances
Using Spot Instances is a great opportunity to save up on multiple fault-tolerant instances and non stateful workloads. By using spot instances you can easily buy EC2 instances for up to 90% off
Another way to save up on EC2 / RDS / ElastiCache / Redshift & Elasticsearch resources is by buying Reserved instances (RI’s) this is a great way to save up to 72% when comparing it to the price that is requested on the AWS on-demand model. Use the recommendations in the AWS Cost Explorer before buying out RI’s and always make sure which deal is most suitable, always look at both All upfront / Partial upfront plans before making a purchase.
AWS Savings plan
AWS introduced another pricing model called Savings plans which is a much more flexible way to buy out compute power at a saving of 72%. this is flexible because you don’t commit to a specific instance, instead you commit to a certain amount of computer usage measured in $/hour. I found this much more useful then buying out RI’s.
This is just the tip of the iceberg, there are many more ways to save up
- Delete old S3 buckets and select the storage class that fits your needs. Use S3 Intelligent Tiering
- Add CloudWatch rules to monitor your current usage.
- Upgrade current instances to latest generation.
- Delete old snapshots / unattached EBS’s and unused elastic IP addresses.
- Use Auto Scaling in order to handle sudden spikes in resource usage.
- Consider using AWS Instance Scheduler to configure EC2/RDS start and stop schedules (for example turn off development environments during off business hours).
- Tag all resources in order to understand who is responsible for them.
There isn’t a one size fits all solution to AWS budget reduction as each organization has to meet different requirements. Adjusting and governing the AWS budget is an on-going task. In order to see results, one must create a routine to check the AWS account usage frequently.