minimize aws costs

10 Steps To Minimize AWS Costs

CloudHealth Tech Staff
Aug. 15, 2019
8 minute read

Businesses struggling to control spend on Amazon Web Services are invited to download our free eBook which includes 10 steps to minimize AWS costs and professional tips on how to take the steps. Then, to see how easy it is to keep AWS costs at a minimum, request a free demo of our cloud management platform in action.

In 2016, research company Gartner claimed that businesses frequently have public cloud bills “two to three times higher than expectations”. Although most businesses don’t fall into the category of overspending by “two to three times,” there’s little doubt millions of dollars are being wasted in the cloud each year due to businesses failing to take every possible step to minimize AWS costs.

The failure to minimize AWS costs isn’t necessarily businesses’ fault. AWS pricing is complicated; and, if a customer believes they only pay for what they use, rather than what they provision, it isn’t hard to understand how cloud bills can exceed expectations. Then there are the additional services attached to instances that drive costs up—and can continue to drive up costs even when instances are terminated.

To help businesses better understand AWS cost drivers, we’ve prepared an eBook—“10 Best Practices for Reducing Spend in AWS”. The eBook is free to download, and from it we have compiled the snapshot below—“10 Steps to Minimize AWS Costs”. 

10 steps to minimize AWS costs 

Before attempting to minimize AWS costs, it’s essential to have total visibility of the resources deployed on AWS. You can use the AWS Systems Manager to get near-total visibility, but this tool could leave you in the dark about some of the cost drivers listed below due to its difficult search functionality. A far better solution is to minimize AWS costs using the CloudHealth cloud management platform.

1. Delete unattached EBS volumes

When you launch an EC2 instance, an Elastic Block Storage (EBS) volume is usually attached to act as the local block storage. Unless you check the box in the AWS console to automatically delete the volume when the instance is terminated, AWS will continue to charge for it even though it isn’t being used. So, you could have thousands of unattached EBS volumes driving up your costs.

2. Delete aged snapshots

Individually, EBS snapshots don’t cost very much; but, if you continue paying for obsolete snapshots when they have served their useful purpose, you are driving up costs unnecessarily. Most of the time, you’llonly use the most recent snapshot for recovery purposes, so set a standard for how many snapshots should be retained per instance and delete those you no longer need.

3. Delete unattached elastic IP addresses

Elastic IP addresses have a unique pricing structure—they’re free as long as they’re attached throughout the duration of the run time.  However, once you terminate an instance, you start paying for the unused resource. The costs add up quickly, and unattached Elastic IP addresses are difficult to find in AWS System Manager or AWS Console. CloudHealth will help you locate these cloud costs easily.

4. Terminate zombie assets

The term “zombie assets” is sometimes used to describe any unused assets that drive up AWS costs; but, in the context of these 10 steps to minimize AWS costs, it relates to the components of EC2 and RDS instances that were activated when an instance failed to launch. It is also worth looking out for unused and underused Elastic Load Balancers that would be good candidates for termination.

5. Upgrade instances to the latest generation

Periodically, AWS releases new generations of instances with improved performance and functionality. Updating instances to the latest generation alone won’t help you minimize AWS costs. In order to save money by upgrading, you’ll have to resize existing, older-generation instances to smaller sizes in order to benefit from the same level of performance at less cost.

6. Rightsize EC2 instances

In the introduction we commented customers are sometimes unaware they pay for what they provision rather than what they use. This means that if you provision an EC2 instance with 8 vCPUs and 16 GiBs of memory that is what you’ll pay for, regardless of how much of the instance’s capacity you use. Over-provisioned instances are believed to be the biggest cost driver in unexpectedly high AWS bills.

7. Apply start/stop schedules to non-production instances

The misconception you only pay for what you use in the cloud also applies to assets used for development, testing, and staging that should not be left running when they aren’t being used. By applying start/stop schedules to these assets, you can reduce the amount your business spends on non-production assets by more than 65% depending on the aggressiveness of the schedule.

8. Purchase Reserved Instances whenever possible

One of the best ways to minimize AWS costs is to purchase Reserved Instances whenever possible. A cloud management platform such as CloudHealth will be able to tell you when instances are running sufficiently long enough to make Reserved Instance purchases viable. All you have to determine is what type of Reserved Instance is best for your needs (Standard/Convertible) and how much you pay upfront.

9. Purchase reserved nodes for Redshift and ElastiCache services

EC2 and RDS instances aren’t the only assets for which purchasing reservations can help you minimize AWS costs. Redshift and ElastiCache are two additional services that you can buy reservations for to reduce your AWS bill. Reserved Nodes work in much the same way as Reserved Instances in the way that they can be purchased all upfront, partially upfront, or no-upfront in 1-year or 3-year terms.

10. Move infrequently-accessed data to lower cost tiers

AWS offers several tiers of storage at different price points depending on the frequency at which data is accessed. Many businesses tend to favor S3 storage, but you can minimize AWS costs by moving infrequently-accessed data to lower cost tiers. Infrequent Access Storage is better for long-term storage, backups, and disaster recovery; while Glacier is recommended for archive data.

Minimizing AWS costs needs to be an ongoing process

Minimizing AWS costs shouldn’t be a periodic exercise. In order to minimize AWS costs at all times, your cloud environment needs to be monitored at all times so that unattached, unused, and underused assets can be identified and addressed. Naturally it isn’t possible to manually monitor a cloud environment 24/7/365, so many businesses have taken advantage of policy-driven automation—one of CloudHealth’s most beneficial capabilities—to be their virtual eyes and ears.

Policy-driven automation is a simple concept to understand. You simply create a policy to (for example) search your inventory for unattached EBS volumes. CloudHealth will search your inventory and alert you to any it finds, or take a user-defined action such as automatically terminating unattached EBS volumes. Then our cloud management platform will continue to monitor your business’s cloud environment—looking for new violations of the policy—and take whatever action it has been configured to take.

CloudHealth not only has benefits in terms of minimizing AWS costs. Its policy-driven automation capabilities can be used to optimize performance and enhance security—and not only in the AWS Cloud. If your business operates across multiple public clouds or in a hybrid cloud environment, CloudHealth is the ideal solution for accessing utilization data in one place to minimize costs from all sources. Speak with our team of cloud experts to find out more or book a free demo of CloudHealth in action.