According to Flexera’s research up to 32% of cloud spend is wasted. In this short blog we will reveal how to reduce AWS costs with common best practices and tools.
1. Shut down idle EC2 / RDS instances
Running Development or Test EC2 and RDS instances which are used just in working hours non-stop is wasteful and can lead to savings of 1 – (5 * 8) / (7 * 24) of 76% which is more than any reserved instance or Savings plan can deliver.
Use AWS Instance Scheduler for automatic shutdown and start of the instances.
2. Consider using Lambda and Aurora Serverless
For some types of workflows with workloads not strong enough to substantiate the cost of an EC2 or RDS instance, move the workflow to AWS Lambda or AWS Aurora Serverless.
Note: AWS Lambda and AWS Aurora Serverless will cost more than an EC2 / RDS instance if used for consistent workflows.
3. Reduce the EC2 / RDS instance sizes
Frequently, inexperienced AWS users over-provision their EC2 / RDS Instances with too much CPU and memory which is not used.
In general, the cost of any EC2 / RDS instance is doubled with an increased instance size, thus you can easily halve your EC2 / RDS costs by reducing the instance size one size down.
To verify the EC2 instances are not fully used, use AWS CloudWatch or the AWS Compute Optimizer. To verify RDS instances are overprovisioned use RDS Performance Insights and verify the workload is below the provisioned vCPUs.
4. Purchase Savings Plans for EC2 / Lambda / SageMaker and Reserved Instances for RDS
For your consistent, 24/7, EC2 and RDS workloads, you should buy either Savings Plans (EC2, Lambda, SageMaker) or Reserved Instances (RDS).
5. Make use of EC2 Spot instances
For batch jobs, or not critical time-sensitive workloads, consider using EC2 Spot instances. These instances provide discounts of up to 90% on the on-demand rate with the possibility of them being recalled at short notice.