The AWS (opens in new tab) Elastic Compute Cloud (EC2) service has many advantages, including easy scalability, pay-for-what-you-use, as-you-go pricing, and an enormous array of options and upgrades – so many that your AWS bill may become quite complicated.
Have you been suffering from sticker shock but have no idea which of the literally thousands of line items on your invoice are the culprits? Here are seven hidden AWS costs that could be breaking the bank.
1. Unused instances
Among the biggest contributors to inflated AWS bills are unused or underutilized EC2 instances, which result in your organization paying for resources it is not using. Be sure to terminate all instances as soon as you are finished using them; note that this applies separately, to each world region.
Also make sure to monitor your EC2 usage data for low CPU usage, bandwidth, and I/O, which are red flags that may indicate underutilized servers that could be shut down.
2. Unneeded orphaned snapshots
Terminating an unused or underutilized EC2 instance isn’t enough. Even though the attached EBS volumes are automatically deleted along with the instance, your snapshots will remain stored on Amazon Simple Storage Service (S3), and you will continue to be charged monthly for them.
Deleting these orphaned snapshots will save as much money as deleting the original EBS volume, so unless you’re certain you’ll need them again to create future EBS volumes, make sure to get rid of them.
3. Unattached/unused EBS volumes
It’s good practice to delete EBS volumes, except for root volumes, that are not attached to EC2 instances. Not only do these unattached volumes add charges to your AWS bill – whether they are being used or not – but they also pose cyber security risks to any sensitive data stored on them.
Even when an EBS volume is attached to an EC2 instance, it’s billed for separately, so make sure to delete volumes you no longer need. Just make sure to back up the data first; once the EBS volume is deleted, the data is lost.
4. Underutilizing reserved instances
Many AWS users pay as they go and never consider purchasing reserved instances (RIs), which are pre-booked resources and capacity for a one- or three-year term. Because you are committing to pay for all of the hours during your term, your hourly rate is deeply discounted. RIs can save your organization a lot of money – if you actually use all of the time you’ve bought.
Calculating your usage that far in advance can be difficult, and if your needs are lower than you anticipated, RIs can be a money pit. If you’ve bought RIs that you have no use for, consider selling them on the AWS Marketplace.
5. Data transfer costs
Most of the time – but not always – transferring data into EC2 is free, but transferring data out will always cost you. How much you will be charged depends on how much data is being transferred and where it is going, and these costs vary by Region.
Moving data across services within the same Region is usually less expensive than moving data across services outside your Region, and some Regions have higher costs than others. To minimize data transfer costs, you must pick the least expensive route for your data to flow through, depending on what it is and where it is going; because of the wide variations in prices, this is easier said than done.
6. Unused elastic IP (EIP) addresses
EIPs are static different EC2 instances. They allow users to mask an instance or software failure by rapidly remapping the address to another instance in their account. AWS users are allotted one free EIP address with each running EC2 instance, but they are charged hourly if they attach additional EIPs to the same instance.
Additionally, users are charged for any EIPs that are not associated with a running instance. As with instances, orphan snapshots, and EBS volumes, you should monitor your account for EIPs you are no longer using.
7. Unused Elastic Load Balancers (ELBs)
ELBs, which are commonly put in front of your web servers, automatically distribute incoming application traffic, scale resources to meet traffic demands, and are designed to keep a minimum number of EC2 instances running. You are charged monthly for each ELB, whether you’re using it or not, and per GB transferred.
If any of your ELBs are not attached to back-end instances, consider registering instances or deleting them. In a similar vein, if an ELB is not attached to any healthy backend instances, consider troubleshooting the configuration or deleting it. Additionally, before you can terminate an EC2 instance, you must delete any ELBs associated with it.
Other hidden costs
Other potential “gotcha’s” that could be inflating your AWS bill include unused services started in AWS OpsWorks, unhealthy instances, and fees for excessive API calls. There are also numerous indirect costs associated with AWS and other cloud solutions in the form of performance, reliability, and cyber security problems. Misconfigured AWS servers were at fault for the recent data breaches at business associates of Verizon (opens in new tab), the Republican National Committee (opens in new tab), and private security firm TigerSwan (opens in new tab).
In February, numerous large websites (opens in new tab) were knocked offline due to an error by an employee at AWS, and the tech community recently expressed grave concerns (opens in new tab) about widespread chaos if AWS were to have another, larger failure, particularly since so many financial institutions rely on it.
The cloud isn’t always cheaper
Despite sticker shock and concerns about these hidden and indirect costs, many organizations continue to grumble and pay their AWS bill due to the misconception that cloud computing is always cheaper and more efficient than purchasing their own IT infrastructure.
This is a myth. In many cases, an organization’s monthly AWS bill alone costs more than an in-house solution would. If your organization processes large amounts of data, it would probably be more cost-effective to purchase and maintain your own infrastructure.
It’s not always necessary or beneficial to abandon the cloud completely. Many organizations would greatly benefit from a hybrid approach, where they use their own infrastructure for certain tasks and utilize cloud solutions when they need additional capacity.
Don’t feel like you’re locked into paying AWS or another cloud provider forever. If you can’t seem to get your AWS bill down to a reasonable level, purchasing your own equipment is worth looking into.
Alex Lesser is Executive Vice President at PSSC Labs (opens in new tab).