AWS Cost Optimization - The Updated Guide to Optimize Costs on AWS Cloud
In our previous blog, we have discussed in length what cloud cost optimization means to modern enterprises as well as the 8 best practices to optimize costs across the vast and varied and increasingly complex public cloud environments. In the coming blogs, we will further deep dive into each of the leading public cloud computing platforms and explore in-depth the tools, techniques, strategies, and best practices to optimize the cloud spend.
Let’s start with the early entrant currently catering to more than 34.2% of global enterprises and leading the $200 billion global cloud market—Amazon Web Services (AWS).
What is AWS cost optimization?
Amazon Web Services has earned the market's trust with its flexibility, scalability, and feature-rich tools and applications. From data processing to game development or warehousing, AWS offers companies various workloads, along with quality service and support. In addition, its mobile-friendly access enables organizations to manage or monitor their AWS environment right with a mobile, using Amazon Web Services Mobile Hub.
Add to that the serverless functions; different databases for different operations; highly scalable, flexible and economical storage options; the robust security and compliance for the EC2 instances that makes AWS cloud a popular choice among global enterprises starting from Airbnb to Pfizer, from NASA to BMW, from McDonald's to Netflix, and even the ERP giant, SAP.
With so many large, mid and small-scale businesses embarking on their journey to the Amazon Cloud, it has become a prime concern to understanding the AWS bill and reduce costs. Having a cost optimized cloud infrastructure allows businesses to maximize its benefits. However, with challenges surrounding wasted cloud resources, billing complexity, inadequate architectural design, absence of accountability, hard-to-forecast variable cloud costs, or confusion over pricing policies, several businesses are finding it difficult to realize the true value of AWS services.
To solve this challenge and enable business organizations to regain control of their AWS cost and optimize their cloud spend, AWS has developed a set of practices and principles. One of the key pillars of AWS cost management, AWS cost optimization simplifies the selection of cost-optimized resources and provides recommendations around different pricing models to achieve performance and cost efficiency, and reduce AWS costs.
Why optimize costs on AWS?
We have assisted multiple large and medium scale enterprises on their AWS cost optimization journey. Across those engagements over the years, we have experienced primarily five key challenges that drive enterprises to consider cost optimization. Let us examine each of the challenges.
1. Oversizing
The simplest and easiest to solve is oversizing AWS resources which leads to shooting up AWS bills. Multiple situations can result in oversizing, and most find their root in an incorrect design process. Here are some of the common and possible situations:
- Headroom is a dynamic scaling buffer of additional capacity to ensure that one cluster is 24x7 ready for rapid scaling requirements. Now imagine you have enough headroom. Still, someone in the development team, either by mistake or due to lack of knowledge, adds additional on demand instances. As per AWS pricing model, on demand instances are comparatively more expensive than reserved instances or spot instances. Therefore, the added capacity ends up inflating the bill, albeit unnecessarily.
- What happens when one AWS user fails to test and measure an application’s network performance correctly? Inaccurate tests, often caused by not having the right tools, can be a major challenge in measure production workload performance such as throughput, connection latency, network jitter, or packet loss. As a result, one ends up buying more resources than what is required.
- Forecasting failure is another common reason behind oversizing. While accurate forecasting helps in optimizing the trade-offs between over- and under-sizing costs, any over-forecasting can lead to a massive number of instances added to meet the predicted demand value and anticipated business outcomes.
- This particular challenge occurs when teams find a permanent solution in a temporary fix, i.e., commissioning excess instance capacity as a means to compensate for any existing software bottlenecks.
2. Inelasticity
While AWS autoscaling is one of the biggest USPs of the hyperscaler brand, applications or databases or caches which are slow to warm up or inefficient fail to autoscale instantly. Take a situation, for example. Your systems autoscale at 50% CPU utilization as per the practice. One single inelastic application can cost you $1 million a year.
Auto Scaling group
3. Inefficient software
Software efficiency or the lack of it is considered a make-or-break factor in controlling cloud costs. Efficiency is the amount of resource a business require per transaction. This critical lever is particularly relevant for businesses with high-volume systems. So what causes inefficient software? Well, from our previous experience, the four key reasons behind are:
- Not measuring software efficiency correctly
- Not having a benchmark of efficient software
- Not setting any efficiency targets
- Not prioritizing efficiency
However, by optimizing software and implementing efficient software, one can save millions per year.
4. Complex forecasting
In point no. 1, we briefly discussed what happens when forecasting goes wrong. But that is not the only forecasting challenge companies experience. AWS budget forecasting is another big reason driving organizations towards AWS cost optimization. AWS budget forecasting is based on a) new services, b) any changes in demand for existing services, and c) any changes in the efficiency of any software. Now, this forecasting can be a complex affair considering it demands a strategic process, right skills and data. In addition, different AWS pricing models make the supply-side modelling even more complex.
5. Sub-optimal AWS architecture
Teams often lift and shift their existing architecture to the cloud without optimizing it fully. Such suboptimal architecture leads to higher costs. That’s why it is important to choose the right architecture that suits your particular workload model.
Once you solve these challenges with AWS cost optimization, you automatically pave the way for a fully optimized, right-sized, elastic, and highly efficient AWS cloud.
The five pillars to optimize AWS costs
But where do you start? To simplify the process, AWS has come up with five cost optimization pillars to create and maintain an optimized AWS environment. For experienced users, understanding and implementing these pillars will not be a challenge, unlike new users who are not familiar with them. Let’s take a look at the five cost optimization pillars and what challenges they pose to new users:
Rightsizing
Increase Elasticity
Pick the Right Pricing Model
Match Usage to Storage Class
Mechanisms for Optimisation
1. Rightsizing to unlock efficiency
The first and most important pillar is rightsizing. AWS suggests selecting the smallest possible and least expensive instance when rightsizing your deployment to match your application need. It also suggests downsizing existing provisions if possible.
-
Run
-
Check (CPU, RAM, network, disc)
-
Resize
-
Review Performance
-
Save
- Rightsizing to unlock efficiency
While this approach shares similarities with on-premises data center management, it comes with certain challenges and questions:
- How do you define small?
- What happens if there’s any change in the application requirement, demanding more or fewer resources?
- What if you have carried forward your historically oversized on-prem workloads to the cloud?
In addition, AWS has more than 60 instance sizing options to choose from in order to help enterprises make the best possible selection of computing resources. However, for those who are yet to fully understand the resource requirement for their applications, making the wrong choice becomes easier. Add to that resource demand fluctuation, and it becomes a whole new ball game.
2. Increase elasticity through automated scheduling
The third pillar, elasticity, was designed to end the age-old practice of keeping IT resources on continuously for peak usage and burning millions of dollars annually. AWS and other public cloud offer the elasticity to turn off and turn on resources with single clicks to meet dynamic business needs. For example, EC2 instances for testing, developing, QA, or staging can be turned off when developers’ shifts end, or during their week offs. By switching off non-product cloud assets, you can significantly optimize your AWS costs.
3. Make the best of right pricing model
AWS offers a range of pricing options to meet varied business needs. The table below will give you a brief understanding of the flexible pricing model as well as a comparison. Of the 4 pricing options, businesses find Reserved Instances (RI) the most beneficial. According to AWS, by leveraging reserved instances, one can save as much as 75% as it awards users huge discounts for their long-term commitment. In addition, the hyperscaler allows users to choose from different payment options—zero, partial and full upfront, to purchase reserved instances.
AWS Pricing Model |
||||||
---|---|---|---|---|---|---|
|
Models |
|||||
Features |
On-demand |
Spot instances |
Reserved instances |
Saving plans |
||
Commitment |
Zero |
Zero |
1-3 years |
1-3 years |
||
Flexibility |
High |
Zero |
Low/moderate |
Moderate/high |
||
Upfront Payment |
Zero |
Zero |
Optional |
Optional |
||
Manageability |
Easy |
Most difficult |
Difficult |
Easy |
||
Expensive |
Highest |
Lowest |
Low |
Low |
But how to determine the exact AWS capacity to reserve? What if more or less resource is required in the middle of the commitment tenure? How to know which type of reserved instances will be ideal for your application requirement and which workloads benefit the most from this approach? The promise of greater savings can be attained only if you have answers to these questions.
4. Optimize storage
Storage often takes a backseat in AWS cost optimization as instances grab all the attention. However, storage plays a key role in saving storage costs. For starters, AWS offers a range of storage tiers for different types of assets and data usage. Users must identify an appropriate storage tier for specific data types and save money on Amazon EBS volumes and Amazon S3 without compromising availability and performance. For example, one can choose a lower cost storage tier to store and maintain lesser accessed data. But it is important to know the retrieval costs before initiating the data transfer to the lower cost tier cold storage.
5. Measure, monitor, improve, repeat
Now as you implement all four pillars successfully, it’s time to measure and monitor the effectiveness and outcomes of the exercise. And that’s exactly what the fifth and final pillar of AWS cost optimization is about. As businesses expand their operations on AWS, data and asset usage either expands or shrinks. RIs reach their end of commitment tenure. New unique requirement surfaces. All these constantly evolving requirements make cost optimization on AWS an ongoing process. Therefore, in order to extract the true value of AWS, it’s imperative that organizations adopt a policy of measure, monitor, improve, and repeat.
Top 6 AWS cost optimization tools
AWS is constantly evaluating the needs of its massive base of customers and users and designing tools and applications to fill those gaps. Over the years, they have successfully created an arsenal of tools and services to support businesses in their cost optimization journey. Here is a list of 8 of our favorite AWS cost optimization tools:
1. AWS Cost Explorer
Of all the AWS cost optimization tools, AWS Cost Explorer is that one tool most widely used for visualizing, comprehending, and managing AWS costs as well as usage through a user-friendly interface. From high-level data analysis (total costs or usage, etc.) to diving deeper into each of the cost elements in order to identify storage access patterns, measure cost drivers, or detect anomalies across AWS accounts.
In addition, AWS cost explorer also helps in forecasting costs, observes RI usage and coverage, as well as receive RI recommendations. It’s important to note that AWS Cost Explorer can be enabled from the Billing and Cost Management console—a tool we will explore soon, but not through the API.
2. AWS Pricing Calculator
AWS Pricing Calculator or AWS Cost Calculator is one of the AWS pricing and TCO tools that is beneficial for creating a cost estimate based on specific business use cases or scenarios. This pricing calculator enables businesses to compare different AWS usage patterns, get automatic EC2 instances recommendations within your specific budget, estimate traffic, and create cost-optimized recommendations for on demand resources, spot instances, RIs, or a combination of all.
3. AWS Trusted Advisor
AWS Trusted Advisor is an effective tool for inspecting the infrastructure and getting recommendations and best practices. Trusted Advisor evaluates your infrastructure against a range of checks, e.g. cloud security checks, cost checks, service quota checks, etc., and creates recommendations based on the findings.
4. Amazon CloudWatch
Amazon CloudWatch is another popular AWS cost optimization tool that enables organisations to set alarms for different services, usage, and expiry/renewal dates. For e.g., if certain EC2 instances reach a preset threshold of usage, CloudWatch will send an alarm, prompting teams to resize the instances or shift the workloads to other EC2 instances. As a result, the team is always aware of the infrastructure and cloud workloads, and can take timely actions to control costs.
5. AWS Instance scheduler
Instance Scheduler is AWS’ answer to one of the most common challenges organisations face—how to stop and start unused resources based on the need. Instance Scheduler configures schedule starts and stops for Amazon EC2 instances and Amazon RDS instances. So, if you do not want to run all your instances outside of business hours, Instance Scheduler is the tool you need to stop that practice and achieve significant cost reduction. What more, you can also schedule instance start and stop across multiple AWS accounts. Apart from cost savings, it also offers automated tagging for all instances.
6. AWS cost management tools
Cloud financial management is an integral part of cloud cost optimization and AWS offers a wide plethora of cost management tools to help businesses make decisions, gain deep insights, and create automated actions in order to achieve lower costs. Here are a few AWS cost management tools that you can leverage to reach your cost reduction goals:
- Billing and cost management console
- AWS budgets
- AWS cost categories
- Cost and usage report
- Cost anomaly detection
- Purchase order management
- Reserved instance reporting
- AWS application cost profiler
Apart from the 6 AWS cost optimization tools mentioned above, one can also check AWS compute optimizer or AWS operations conductor and their different proven use cases to reduce cloud costs.
10 best practices to optimize your AWS costs
With all said and done, it’s time to deep dive into some of the best practices to optimize your AWS services and bring down the overall cost budget.
- As already mentioned in cost optimization pillars, rightsizing EC2 instances is one of the key steps to realize your AWS savings plans. Always match instances to the workloads or move workloads to different instances based on the purpose.
- Schedule on/off for all your non-production instances during weekends or irregular hours to save as much as 65% of cloud costs.
- Purchase the right type of RIs whenever possible and implement effective cloud financial management practices to monitor their utilization throughout the lifecycle of RIs.
- Get rid of any unused elastic load balancers as they greatly contribute to your monthly AWS bill.
- Always make sure that all your EC2 instances are up to date and belong to the latest generation to improve performance, functionality as well as business outcomes.
- Terminate unused or zombie assets such as unattached EBS volumes, outdated snapshots, unused elastic load balancers, etc., some of which are notorious to identify.
- Move least used data to low cost tiers.
- Leverage savings plans to save costs on AWS Fargate and other workloads.
- As spot instances offer up to 90% discounts as compared to on demand pricing, you can achieve immediate savings by running your workloads and applications on spot instances.
- Make use of AWS resource optimization report to keep a check on idle or under-utilized resources time to time.
That’s all for now. In our next blog, we will scrutinize the various aspects of Azure Cost Optimization. Meanwhile, if you are looking for more information on AWS cost optimization, read Cloud4C’s complete guide to AWS Cost Optimization whitepaper.