In the current economic climate, many businesses, regardless of industry or size, are looking for opportunities to do more with less. When it comes to cloud, whether you’re operating with AWS, Azure or GCP, it can be difficult to strike the right balance between effectively achieving business outcomes and managing operating costs in the cloud. To ensure the effective review and management of cloud costs, it’s important to have a structured optimisation approach.
There are various methods that can be used to minimise cloud spend, such as the use of third-party tools or performing a Well-Architected Review (WAR) for the cost optimisation pillar (in the case of AWS). However, these measures alone may not be enough.
In this blog, we’ll explore some additional methods that can be employed to help businesses minimise and then continue to maintain their AWS cloud spend.
Cost optimisation in AWS cloud
In AWS, there are several methods to minimise cloud spend, including:
- Reserved instances (RIs) – AWS Reserved Instances (RIs) are a cost-saving option that allows businesses to purchase EC2 instances at a discounted rate. By using RIs, businesses can save up to 75% on their EC2 costs. RIs are available in three types: Standard RIs, Convertible RIs, and Scheduled RIs.
- Saving plans (SPs) – A flexible pricing model that offers cost savings on your AWS usage. They allow businesses to make a commitment to a specific amount of usage (measured in dollars per hour) for a term of 1 or 3 years, in exchange for a discounted rate on their AWS usage.
- Spot instances (SIs) – Spot instances are unused EC2 instances that are available at a significantly lower price than on-demand instances. They can be an excellent cost-saving option for businesses that have flexible workloads. Spot instances can be used for tasks that can be interrupted, such as batch jobs, data analysis, and testing.
- Instance or resource scheduling – Involves scheduling the start and stop times of instances or resources, so they are only running when needed. By scheduling instances or resources to run only during specific periods, businesses can reduce their AWS costs by minimising their usage of these resources.
- Right sizing of AWS services – One of the most significant cost optimisation techniques is to right-size your resources. AWS offers a wide range of instance types, and choosing the right size can significantly impact your costs. By selecting the right instance size, you can optimise your resource usage and minimise your costs.
- Budgeting (AWS Budget tool) – A free service that enables businesses to set custom cost and usage budgets for their AWS accounts and receive alerts when they exceed these budgets.
- Auto scaling (try to use a load based approach, if possible, instead of on-demand) – Auto-scaling is a technique that allows businesses to automatically adjust their resource usage based on their workload. By using auto-scaling, businesses can optimise their resource usage and minimise their costs. For example, if your website experiences a sudden surge in traffic, auto-scaling can add more resources to handle the increased workload.
- Aggregating databases into a smaller number of database clusters – Combine multiple databases into fewer database clusters, which can lead to cost savings by reducing the number of resources needed to manage and maintain these databases.
- Regular review of Cost Explorer – Cost Explorer is a powerful tool that can help businesses gain insights into their AWS costs. It provides an easy-to-use interface that allows users to analyse their usage and costs across different AWS services. With Cost Explorer, businesses can identify cost trends, forecast future costs, and create custom cost reports.
- Use of AWS Trusted Advisor – AWS Trusted Advisor is a tool that provides recommendations to optimise your AWS usage and costs. It provides insights into security, cost optimisation, performance, and fault tolerance. By using Trusted Advisor, businesses can identify cost optimisation opportunities and implement best practices.
- Use of third-party tools
In our experience, the quick wins for our customers are RIs and SPs for one year based on the utilisation of cloud services. However, ensure to put a reminder in your calendar to renew, or expect a higher AWS bill if you don’t. Reserved instances are available for EC2, RDS, ElastiCache, OpenSearch Service, Redshift and DynamoDB.
Savings Plans
AWS offers three types of Savings Plans:
- Compute Savings Plans – Apply to EC2 instance (10% onwards savings), Fargate (15% onwards savings) and Lambda (12% onwards savings) usage regardless of instance family
- EC2 Instance Savings Plans – Apply to usage of individual instance families in a region (20 % onwards savings over On-Demand)
- SageMaker Savings Plans – Apply to any eligible SageMaker Machine Learning (ML) instance usage across all supported AWS Regions (20% onwards savings)
Examples in action
Not everything is captured through the above techniques, and at Cevo we recently observed some real life scenarios:
- A customer had approximately 20 NAT Gateways for their relatively small infrastructure, which was well over specified and a poor architectural decision. Identifying this required a review of the existing utilisation, along with an understanding of the existing infrastructure. By removing the unnecessary gateways, the customer achieved a reduction of more than 30% of their cloud spend on NAT Gateways.
- In another case, a customer was using AWS Transfer Family, which is a managed service that allows you to transfer files over the internet using the File Transfer Protocol (FTP) and Secure File Transfer Protocol (SFTP). What some don’t know is, if you stop a Transfer Family server, it remains in an intermediate state, meaning you will still get charged $0.30 per hour for the service charges (which is different to EC2 and RDS, where you only pay for uptime). The only way to stop this cost is to delete the server. This particular customer was incurring the $0.30 per hour charge. An investigation uncovered this unnecessary charge, and the server was deleted.
- Many customers have third party tools. The challenge is in knowing where to look, having the time to understand the recommendations, and the time and experience required to implement them. In our experience, even highly cloud-mature customers miss things. For example, a financial services company utilising a third-party tool missed US$105,000 per year savings.
Optimisation is an ongoing approach
It’s important to remember that cost optimisation is not a set-and-forget approach. It requires constant monitoring, ongoing governance, implementation of new policies, and regular reviews of usage and offerings from cloud service providers. In our experience, we have seen a number of scenarios where organisations have embarked on a cost optimisation journey, but decided not to manage or maintain the activities. As a result, the cost returned to the previous level within a few months.
This demonstrates that remediating high risk items (HRIs) once is not sufficient to manage cloud spend. It is an ongoing activity to review usage and manage the spend.
Without ongoing cost optimisation activities, businesses could run into the following issues:
- Rising costs – It’s easy for costs to spiral out of control as new services are added and usage patterns change, making this one of the most significant challenges businesses face
- Inability to meet quarterly or annual budgets – This could result in the need to full funds from other initiatives to pay AWS/Azure/GCP bills
- Lack of business confidence in IT “doing their job”
- Reduced profit margins – Consistently high AWS cost can eat into profit margins, making it harder for businesses to remain competitive
- Inability to identify unused or underutilised AWS services, which could lead to wasted spending
- Without regular monitoring and analysis of spending and usage patterns, businesses may lack visibility into where they are spending their money
Where does the responsibility lie?
Cost optimisation is a collective responsibility of IT, business and finance teams. It requires inputs from these teams to decide the budget and forecast cloud spending. However, the main responsibility lies with the IT team to:
- Educate other departments
- Set up tagging and identify chargeback models
- Set up policies for IT engineers to seek approval before deploying high-cost cloud services in any environment. If it is in a dev environment, ensure policy dictate unnecessary high cost resources are to be deleted in few days
- Set up policies to onboard new workload
- Work with project teams to ensure new workload is deployed with cost efficiency in mind
- Implement AWS Control Tower (for AWS) for cost governance
- Automate various alerts via AWS Budgets
- Automate daily cost alerts (integrate with Slack or MS Teams channels)
- Set up cost anomaly detection
- Regular review of Cost Explorer to identify the trend of cloud spend (such as review of application logs, other logs, number of NAT Gateways,..etc.)
- Breakdown of cost by services and regions
- Regular review of cloud services to remove the services that are not being used or resize the underutilised services
- Choose the right tool to optimise the cloud cost
Once a cost optimisation project is completed, the IT operations team or a managed service provider must manage, maintain and reduce the cloud spend wherever possible, while still maintaining a high level of performance and reliability.
In conclusion, cost optimisation requires a proactive and continuous effort to ensure ongoing and long-term success. By using the tools and some of the methods outlined above, you can identify areas where you can save money and optimise your infrastructure. It is important to regularly review your cloud spend and adjust your usage patterns as needed to ensure that you are getting the most value from your investment in the cloud.