10 actions you can take right now to lower AWS expenses

2023/ 06/11

With AWS's extensive range of services and flexible pricing, you can efficiently control your expenses while maintaining the performance and capacity that meet your company needs. The basic steps for cost optimization on AWS are still the same: track your consumption and costs, examine data to identify savings, and take appropriate action to make the savings. However, in this blog, I'll take a more calculated approach to cutting costs in response to shifts in user demand.

Determine the cost of the AWS services you are using before taking any steps to save costs. Customers can explore and test out AWS services for free with the AWS Free Tier, subject to the service's individual cap.

Next, view and analyze your AWS expenses and use using AWS Cost Explorer. With the help of the default reports this tool offers, you can see cost and consumption at the resource level (EC2 instance ID) or at a higher level (AWS accounts, AWS services). Using the "Monthly costs by linked account report," start by determining which accounts are the main sources of your expenses. Next, determine which services are the main contributors to those accounts' expenses. The "Monthly costs by service report" can be used for this. To filter and determine which resources are most expensive, use the hourly and resource level granularity and tags.

10 practical tips to reduce AWS costs

Now, you should have an understanding of your AWS costs and usage. Let's now go over ten strategic actions you can do right now to lower your AWS expenses using already available AWS tools and services.

1. Identify underutilized Amazon EC2 instances and reduce costs by shutting down or downsizing

Use AWS Cost Explorer Resource Optimization to report on EC2 instances that are idle or underutilized. You can reduce costs by decommissioning or downsizing these instances. You can use AWS Instance Scheduler to automatically shut down instances. Use the AWS Operations Conductor to automatically resize EC2 instances (based on Cost Explorer recommendations report). Use the AWS Compute Optimizer to see recommendations for instance types in addition to the deprecation within the instance family. It provides recommendations for downsizing within or across instance families, eliminating performance bottlenecks, and recommendations for EC2 instances that are part of an auto-scaling group.

2. Identify underutilized Amazon EBS volumes and reduce costs by taking snapshots and then deleting them

Over a period of seven days, EBS volumes with very low activity (less than 1 IOPS per day) are likely not in use. Use the Trusted Advisor Underutilized Amazon EBS Volumes Check to find these volumes. First take a snapshot of the volume (just in case you need it later), then remove these volumes to cut expenses. With Amazon Data Lifecycle Manager, snapshot creation may be automated.

3. Analyze Amazon S3 usage and reduce cost by leveraging lower cost storage tiers

To examine storage access trends on the object data set for at least 30 days, use S3 Analytics. It offers suggestions on how to use S3 Infrequently Accessed (S3 IA) to cut expenses. With Life Cycle Policies, you may automate the transfer of these objects to a less expensive storage tier. Alternatively, you can utilize S3 Intelligent-Tiering, which automatically determines the best storage tier for your items based on analysis.

4. Identify Amazon RDS, Amazon Redshift instances with low utilization and reduce cost by stopping (RDS) and pausing (Redshift)

For the purpose of identifying database instances that have not been connected for the past seven days, use the Trusted Advisor Amazon RDS Idle DB instances check. Use the automation procedures outlined in this blog post to terminate these DB instances in order to save money. To find clusters in Redshift that have not had a connection for the past seven days and have had an average CPU usage of less than 5% throughout the cluster for 99 percent of the previous seven days, use the Trusted Advisor Underutilized Redshift clusters check.

5. Analyze Amazon DynamoDB usage and reduce cost by leveraging Autoscaling or On-demand

Use CloudWatch to track two metrics, ConsumedReadCapacityUnits and ConsumedWriteCapacityUnits, to analyze your DynamoDB consumption. Use the AutoScaling feature to scale your DynamoDB table automatically, both in and out. You can also utilize the on-demand option as an alternative. Paying for read and write requests on a per-request basis lets you only pay for what you use, which makes it simple to strike a balance between performance and prices.

6. Review networking and reduce costs by deleting idle load balancers

To obtain a report of load balancers with a RequestCount of less than 100 during the last seven days, use the Trusted Advisor Idle Load Balancers check. If the cost of data transfer from EC2 to the public internet appears to be high, you might want to think about utilizing Amazon CloudFront. With AWS edge locations across the globe, any image, video, or static online content may be cached using the Amazon CloudFront Content Delivery Network (CDN). With CloudFront, there's no longer a need to overprovision capacity to handle traffic spikes.

7. Use Amazon EC2 Spot Instances to reduce EC2 costs

You can save up to 90% on costs by using Spot instances if your workload can withstand errors. Big data, containerized workloads, continuous integration and delivery (CI/CD), web servers, high-performance computing (HPC), and other test and development workloads are typical instances of workloads. To reach a specified capacity, you can start both On-Demand and Spot instances using EC2 Auto Scaling. When your Spot instances are interrupted, auto scaling takes care of the request for new ones and tries to keep the desired capacity intact. See this 2019 re:Invent session to find out more about Spot.

8. Review and modify EC2 AutoScaling Groups configuration

Your EC2 fleet can grow or decrease in response to demand with the help of an EC2 Autoscaling group. Examine the outcome to determine whether the scaling policy can be adjusted to add instances more gradually. Additionally, check your settings to see if you can lower the minimum to accommodate end user requirements while maintaining a smaller fleet size.

9. Use Reserved Instances (RI) to reduce RDS, Redshift, ElastiCache and Elasticsearch costs

Take advantage of a savings of up to 42% as compared to On-Demand pricing by using a year of no upfront RIs. Utilize the advice offered in AWS Cost Explorer RI purchase suggestions. These recommendations are based on your utilization of Redshift, ElastiCache, RDS, and Elasticsearch. Make sure the parameters are set to one year, without any advance. Although a one-year commitment is needed, the break-even point is usually reached in seven to nine months.

10. Use Compute Savings Plans to reduce EC2, Fargate and Lambda costs

Regardless of instance family, size, AZ, region, OS, or tenancy, Compute Savings Plans automatically apply to EC2 instance consumption. They also apply to Fargate and Lambda usage. Utilize Compute Savings Plans with a one-year commitment and no upfront costs to receive up to a 54% reduction over On-Demand pricing. Utilize AWS Cost Explorer's suggestions, making sure you select compute, one year, and no upfront options. Your compute consumption is immediately charged at the discounted Savings Plans prices as soon as you join up. Beyond your commitment, any consumption will be billed at standard On Demand rates.

These 10 steps will help you save costs on EC2, Fargate, Lambda, EBS, S3, ELB, RDS, Redshift, DynamoDB, ElastiCache and Elasticsearch. I recommend setting up a budget using AWS Budgets so you will be notified when costs and usage change. You can also use Budgets to set alerts for projected costs (in addition to actual costs). This gives you the opportunity to prevent problems and proactively reduce costs.

We are here to help, please contact us if you need further assistance in optimising your AWS environment.