Best Practices for Reducing Costs on AWS


AllCloud Blog:
Cloud Insights and Innovation

AWS Cost Optimization Series, Part 2

In our previous blog post we discussed the comprehensive toolbox AWS offers to monitor, optimize, and govern your cloud spend. A skillful utilization of these tools will help you to analyze costs and usage while implementing fundamental optimization processes. 

As comprehensive as these capabilities are, they’re merely the tip of an iceberg. Cloud environments can be highly complex and interdependent systems, the optimization of which requires a deep understanding of their inner workings. In our next blog post, we will discuss how professional cloud architects and a dedicated FinOps team utilize AWS and external services to dive into the minute details of your architecture to devise optimization policies, tailored to your needs.    

But for now, here are a few best practices you can implement today to pick some of the low hanging fruit and cost-optimize your cloud during your daily operations. 

Idle and Unattached Resources

As we’ve shown in our previous post, AWS Trusted Advisor will help you detect and eliminate most idle resources. There are however a few often-overseen actions you can take now, which can save you considerable costs. 

Unattached Resources

After eliminating idle resources, EBS Volumes and Elastic IPs that were previously linked to them need to be manually turned off, even if the compute resources connected to them have been shut down; otherwise you will be billed for unused services and capacities. 

Keep in mind that since temporarily stopped compute resources still incur storage charges, it is well-advised to periodically review all stopped resources to make sure that they haven’t been forgotten.

Old EBS Snapshots

For recovery purposes, AWS saves point-in-time copies of volumes, many of which may become redundant over time, especially in the case of unattached volumes. To optimize your backup policy, you can automate the creation, retention, and deletion of Amazon Elastic Block Storage using the Amazon Data Lifecycle Manager (Amazon DLM).  

Rightsizing

Update EC2

Beside using the right size and type of EC2 instances, you should also make sure to use the newest available generation. The most up-to-date version of EC2 may be up to 20% cheaper than previous generations while also enhancing your performance. 

Migrate EBS

You can save costs by moving your io1 and gp2 volumes to gp3. This can be done without affecting performance while enabling io3 capabilities on gp3.    

Move S3 Storage to Glacier

Amazon Glacier Archives is a secure, durable, and extremely low-cost cloud storage class for data archiving and long-term backups. You can save significant costs by moving data you don’t frequently access to Glacier, paying as little as $1 per terabyte per month. 

Payment Models and Savings Plans

Reserved Instances

By thoughtfully adapting your payment models to your actual usage, significant costs can be saved. Generally speaking, reserving resources, if average workloads are known, is considerably more cost-effective than relying on on-the-go elastic usage plans. Resources such as EC2, Elasticache, Elasticsearch, DynamoDB, Redshift, and RDS are all eligible for reservation, an option that should be exploited to its fullest. 

If average workloads are not known in advance, simply remembering to shut resources down during off and low-usage times can make a significant difference. This can and should of course be dynamically scheduled and automated. There are various means to do so which we will discuss further in our upcoming post. 

Savings Plans

Resources such as EC2, serverless services, Lambda and Fargate are eligible for AWS’ new Savings Plans. 

Savings plans function somewhat like resource reservations but are more flexible and can spread savings across multiple services and regions. As part of AWS Savings Plans, you can commit to purchasing a predetermined workload which is not exclusively dedicated to one resource or service, but can be moved among services. This way you can switch between the usage of EC2, Lambda and Fargate as part of a savings plan while saving up to 50% of their costs.

Spot Instances

Spot Instances are a great way to reduce costs in agile environments. Spot Instances allow you to rent resources on an on-availability basis, allowing you to access them at extremely low costs. The catch however is that you’ll have to pause and migrate your workload the moment these resources have been rented at full price by someone else. Spot.io is a service that handles this process automatically for you, allowing you to significantly reduce your cloud spend without losing continuity. 

Advanced tools for professional optimization

Services such as Spot.io and CloudHealth are among the external tools used by AllCloud’s Cost Optimization specialists in conjunction with AWS services. In our upcoming post, we will discuss how these tools are being used by our dedicated FinOps team and solution architects to continuously and proactively guarantee optimized cloud environments.      

If you already have questions about optimizing your cloud costs, send a message to our FinOps team for quick guidance.   

Melissa Abecasis

Head of Cloud FinOps & Customer Success

Read more posts by Melissa Abecasis