Cloud costs are a daily concern for companies running applications on Amazon Web Services (AWS). This makes sense because many organizations struggle with unexpected AWS charges. Although many organizations have a cloud budget in place, accurately controlling costs is difficult.
Real-time cost remediation is often difficult for many, leading to inflated AWS costs every billing cycle.
No matter where you are on your cloud journey, reducing AWS costs is something you’ll want to do continuously. Previously, we’ve provided tips for optimizing cloud costs in the following posts:
- In AWS Cost Management: The Complete Guide to Manage AWS Costs, we discussed how AWS cost management works, AWS cost allocation challenges, and the critical areas of AWS cost optimization.
- In 10 AWS Cost Management Best Practices To Implement ASAP, we shared insights on setting up your AWS account to reduce costs, reduce cloud waste, and take advantage of cloud cost intelligence to optimize AWS costs.
This post describes ten additional strategies you can use to reduce your AWS costs. In addition, we’ll also explain why optimizing, instead of just cutting cloud costs, will likely yield a higher return on your investment.
1. Start Optimizing Cloud Costs ASAP
Startups tend to focus on growing their monthly recurring revenue (MRR) instead of increasing their gross margin. However, even a few percentage points increase in gross margin can significantly boost a startup’s valuation, increasing its ability to raise sufficient capital.
There is a correlation between SaaS valuation and gross margins, as shown here:
The common assumption is that gross margin improves as a SaaS company scales. However, that’s not always the case, since controlling costs as a scaleup or enterprise can be more challenging than for a startup.
Instead, keep track of your AWS usage and costs as soon as possible. You’ll understand early on where your cloud budget goes. You can then identify areas you might optimize to reduce costs as you grow.
You may use native AWS cloud financial management tools to begin. As your business evolves and requires more advanced cost optimization features, you can use a third-party solution, such as CloudZero. You can still use CloudZero early on because it will grow with you.
2. Use Unit Cost Analysis To Know Where To Pull Strings Without Limiting Your Growth
This issue relates to the last point. Traditional AWS cost management tools are not only clunky and inaccurate but also display organizations’ total costs or averages, like this AWS Cost and Usage Report:
They don’t help customers zoom into their AWS bills to see how much a specific cost center, such as a product feature, engineering team, or tenant, costs to support. This poor cost visibility means it’s challenging to cut costs without compromising growth, innovation, or smooth customer experiences; you don’t know who to cut, what to cut, and where to cut it.
With unit cost analysis, you can correlate AWS resource consumption and costs to the people, processes, and products that produce them. You can analyze your AWS bill, for instance, to know how much each customer or tenant costs, how much each feature costs, or how much each engineering project costs.
You can then identify cost-saving opportunities without sacrificing:
- Performance of the AWS services supporting your customers
- The performance of the product features your customers or you depend on most to generate revenue
- New feature releases and continuous security patches as part of engineering innovation and cybersecurity initiatives.
You can do this by comparing the return on investment you’d get from each cost center or deciding what tradeoffs you should make to avoid adverse business outcomes.
3. Check Everything On The Traditional AWS Cost Optimization Checklist
You can reduce AWS costs by performing a dozen “standard” tasks. AWS cost management products often focus on these tasks. Consider this checklist:
- Automatically match capacity to demand with AWS Auto Scaling.
- Delete unattached EBS volumes, unused snapshots, idle Elastic Load Balancers, instances that have not been active in the past week, and orphaned Elastic IP addresses. Use AWS Console resources such as Trusted Advisor Underutilized Amazon EBS Volumes Check or a third-party service to identify these liabilities.
- Set start/stop schedules for non-production instances, running them only as needed, such as when testing during office hours.
- Avoid paying for unused or underutilized compute instances by rightsizing them. Use a third-party tool to automate this process.
- Implement recommendations about Reserved Instances (RIs) and AWS Savings Plans with a robust tool, such as ProsperOps.
- Repurpose underutilized RIs to make the most of them.
- Remove Customer Master Keys associated with employees no longer requiring access or who have left the company.
- Use Amazon Glacier instead of Amazon S3 or EBS to archive data.
- Consider using AWS Spot Instances rather than always using On-Demand Instances, which cost more.
- Pause your unused RedShift clusters when they’re not in use.
- Activate cost anomaly detection and alerting to detect cost spikes as they occur and act in time to avoid overspending.
- If you can reduce your AWS spend without compromising performance, consider using older, lower-cost AWS instance types.
- Utilize a public IP address within the AWS EC2 network to save on intraregional data transfer fees.
You can also take advantage of new discounts that AWS recently introduced.
4. Automatically Switch To And From Spot Instances At Just The Right Time
Spot Instances save the most money compared to On-Demand, Savings Plans, and Reserved Instances. Spot Instances are ideal for stateful applications, machine learning workloads, CI/CD operations, big data processes, and supporting distributed databases.
Yet many organizations struggle to find out when these instances are available at a low price, bid appropriately, and use them before AWS takes the capacity back. Yet switching between On-Demand and Spot instances quickly tends to causes downtime.
You can automatically switch between On-Demand and Spot instances with a tool like Xosphere Instance Orchestrator with minimal downtime and save up to 90% off On-Demand charges.
5. Consolidate Services To A Single AWS Organization
You can do more than track costs and usage in one place by merging your billing accounts. You can also take advantage of volume discounts in AWS. Start by setting up AWS Organizations. You can control resource sharing and use a single payment method for all your accounts, which can reduce your transaction costs.
Now consider that many organizations transact millions in AWS:
Credit: Anodot
Even small organizations that spend millions on AWS can save significant transaction shared costs with this seemingly simple strategy.
6. Beware Of And Fix Thrashing Docker Container When Using ECS Fargate
Watch out for thrashing Docker containers that cannot properly startup. Here’s the deal. ECS continues to start a new task indefinitely in that case. The task definition pulls the image from either Docker Hub or ECR each time. A single failure could waste several terabytes of transfer bandwidth in a single billing cycle, adding to the cost of the service.
You can use CloudWatch to detect thrashing issues or use a third-party service.
7. Optimize Overly Aggressive Third-Party Integrations
Connecting, configuring, and monitoring multiple integrations in AWS can be both time-consuming and expensive. Some integrations have an overly aggressive default sync frequency, for example. Others are aggressive in terms of the size of data they take in.
While syncing every five minutes instead of fifteen can improve monitoring, it can also lead to high NAT Gateway, CloudWatch metric, and Data Transfer charges.
The answer is to configure your integrations with the bare minimum settings, if possible. You might also consider not using expensive features.
8. Use Direct Connect Or Snowball To Reduce Data Transfer Charges
AWS data transfer fees differ depending on the type of data transfer. For example, you can reduce costs when you:
- Maintain the same AWS region when transferring data.
- Use private IPs rather than elastic IPv4/IPv6 or public addresses.
- Ensure EC2, RDS, etc. data transfers happen within a single availability zone.
- Limit outbound data transfers. Inbound data transfers are free across all AWS services and regions.
If you want to transfer data from your on-premises environment to your AWS deployment, Direct Connect offers several advantages. By avoiding the public internet, the transfer would be more secure, support high-speed transfer, and potentially reduce your egress costs (depending on your setup).
To transfer over 50 terabytes of data, ask AWS through its Management Console for a physical device (Snowball) to transport your data to and from your AWS environment within 10 days. This will cost you between $200 and $250 per job. This is a small price to pay compared to the time and cost it would otherwise require.
9. Request And Track Your AWS Credits
You can use promotional credits on eligible AWS services to lower your AWS bill. There are about a dozen types of credits available on AWS. So, how much credit does AWS give?
The promotional credits include:
- AWS Activate: Up to $100,000 in AWS credits for founders, entrepreneurs, and startups.
- AWS Activate Founders: Up to $1,000 in Activate Credits (2-year validity) and $350 in Developer Support Credits (1-year validity).
- AWS for 501(c) NonProfits and NGOs: More than 45 companies have received $4,8 million since 2018. The 2022 AWS IMAGINE Grant offers up to $30,000 in unrestricted financial reward and $10,000 in AWS promotional credits (Momentum to Modernize). It also provides up to $150,000 in unrestricted financial support and $100,000 in AWS promotional credits (Go Further, Faster).
You may need to write up a convincing business case and submit it to your account manager to request AWS for these credits. Once you get your credits, be sure to use credits before the expiration date. You can keep track of your credit consumption with a tool. As an example, CloudZero’s MAP Dashboard helps DevOps and FinOps teams track their credits during migrations.
10. Activate Real-time Cost Anomaly Detection And Alerts
Credit: Anodot
Anodot reports that nearly 50% of enterprises and 33% of small businesses incurred 25% to 50% higher cloud costs in the past year. Most companies did not notice a cost spike for days or weeks, making it difficult to limit overspending in time.
In most cases, operations were the first to catch cost anomalies, followed by engineering, then finance. The cost spikes went unaddressed because many organizations do not include development and operations in cloud cost conversations.
To begin, set up cost anomaly detection in CloudWatch. Better yet, use CloudZero to get noise-free alerts via Slack or email.
Wrapping Up: Switch To Cloud Cost Intelligence To Optimize AWS Costs
These ten strategies can help you find cost-saving opportunities in your AWS environment.
However, cutting AWS costs might not always lead to the ROI you’re looking for. In reality, indiscriminately cutting resources can impair system performance, limit growth, and impede innovation.
It’s smarter to optimize AWS costs instead.
With CloudZero’s cloud cost intelligence approach, you can use CloudZero’s technology to identify, monitor, and analyze your cloud usage and costs down to the hour, team, project, environment, customer, product feature, etc.
Since you can pinpoint precisely what services, resources, or business units spend on what, you can make cuts without negatively impacting your service delivery.
CloudZero also provides real-time cost anomaly detection to prevent unexpected costs, budgets for cost allocation and forecasting, and an easy-to-digest interface for ease of use. to see how CloudZero can help you lower your AWS bill.