It’s not uncommon for Amazon Web Services (AWS) customers to receive higher-than-anticipated bills for cloud services. While this might be expected when organizations first migrate workloads to AWS, it can be frustrating for organizations that have rightsized all of their instances and taken advantage of every discount opportunity available.
Sometimes, unexpected charges can be attributable to the enthusiasm of CloudOps teams who, unaware of the budgetary implications of their actions, may want to help drive the organization forward by experimenting with new services they’re not yet familiar with. This kind of behavior requires further investigation and additional efforts to prevent it from becoming an ongoing issue.
However, in many circumstances, unexpected charges on your AWS bill can be attributable to a lack of visibility into cloud resources and activity, which can result in services being used without approval, costs accrued without warning, and charges related to resources that are no longer in use or required.
To help know what to look for, we’ve written an eBook with 10 of the most common scenarios that lead to unexpected cloud costs appearing on your AWS bill. You can see the complete eBook here, or keep reading this article for our top takeaways.
10 unexpected charges to avoid on your AWS bill
1. Shadow IT activity
Shadow IT occurs when users, teams, or departments deploy resources or embrace new processes without proper approval. Until you have total visibility across your environment and have implemented measures to prevent the use of unsanctioned services, shadow IT costs are likely contributing to your AWS bill.
2. Exceeding free tier limits
Any usage above AWS’ free tier limits—or any usage after a free trial has expired—is charged at standard billing rates. To avoid these charges, make sure you’ve set up alerts that notify you before a free tier is about to expire or before you exceed what the free tier covers before incurring charges.
3. Unattached EBS volumes
It’s common to see thousands of dollars in unattached Elastic Block Storage (EBS) volumes in AWS accounts—volumes that cost money but aren't used for anything. To avoid seeing these charges on your bill, create a policy that automatically deletes unused EBS volumes.
4. Inefficient auto-scaling groups
In theory, AWS Auto Scaling enables you to maintain steady, predictable performance at the lowest possible cost. In reality, it’s rarely that simple. It’s common for teams to take shortcuts when configuring auto-scaling groups that lead to larger capacity-to-demand ratios, and consequently, lead to unnecessarily higher costs.
Don’t make the mistake of thinking auto-scaling groups will do all the work for you—it’s important to have access to granular metrics about the initial configuration and ongoing utilization of auto-scaling groups in order to accurately identify and optimize inefficient or wasteful configurations.
5. Aged EBS snapshots
Many organizations use EBS snapshots to create point-in-copy recovery points to use in case of data loss or disaster, but costs can quickly get out of control if not closely monitored.
Set a standard in your organization for how many snapshots should be retained per instance, or consider setting a policy that sends a notification or automatically deletes snapshots older than six months.
6. Elastic IP and Carrier IP addresses
You can start to rack up charges if you assign more than one Elastic IP to the same instance, if the instance is stopped or terminated, if the IP address is unattached from the network interface, or if it’s re-mapped more than 100 times per month.
If your AWS accounts contain any disassociated Elastic IPs or Carrier IPs, be sure to either reassociate them to an instance or delete them outright in order to avoid wasted cost. For more information, see our in-depth article: Understanding Elastic IP Pricing on AWS.
7. AWS OpsWorks
If you use AWS OpsWorks to create AWS resources, you need to make sure that you also use OpsWorks to terminate those resources. If not, the OpsWorks auto-healing feature will restart them automatically, and you’ll continue to be charged.
8. Amazon CloudWatch
Amazon CloudWatch is a valuable service for AWS users to monitor resources and track spend. However, as your team begins to scale cloud usage, it’s easy to exceed limits for custom metrics, alarms, dashboards, and API calls, all of which can drive up costs rapidly and unexpectedly.
9. Data requests, transfers, and retrievals
The cost of data requests, transfers, and retrievals is often overlooked. While infrequently accessed storage tiers can save you money on storage, retrieving and accessing data can quickly rack up costs, with higher prices for larger amounts of data and faster retrieval times.
10. Expiring or underutilized Reserved Instances and Savings Plans
Purchasing Reserved Instances and Savings Plans can save cloud costs substantially, but failing to utilize, monitor, or maximize them properly can lead to unexpected and unwanted charges on your monthly cloud bill. Make sure you are able to track and analyze benefits, identify waste, and allocate savings to ensure you’re optimizing your Savings Plans or Reserved Instance purchases.
It’s important to remember that these recommendations are not meant to be one-and-done activities, but ongoing processes. Because of the dynamic and ever-changing nature of the cloud, cost optimization activities should ideally take place continuously and be part of a greater cloud financial management practice.
To learn more, see our whitepaper, AWS Cost Optimization: Best Practices to Lower Your Cloud Bill, which outlines how to align with the Cost Optimization Pillar of the AWS Well-Architected Framework, best practices to establish a cloud financial management practice to reduce AWS costs, and guidance on how AWS customers use a cloud financial management solution like CloudHealth by VMware to execute that practice.
You can also get in touch with our team of experts directly—they’ll be happy to guide you through cost optimization as it applies to your organization and explain the benefits of using CloudHealth to manage your AWS environment.