AWS Costs: the 5 Most Common Mistakes

(Mis)managing your AWS Costs

We all know that AWS lets us deploy applications in ways that would have been unimaginable using traditional IT infrastructures and processes. But for that very reason, it’s a bit too easy to lose track of exactly what you have running at any one time. The end of a billing period might consequently bring unexpected AWS costs indicating that your ongoing charges have soared out of control.

To avoid this, you’ll have to better understand where these surprises can come from. In this article, I will describe what I believe to be the five biggest AWS costs control and resources management mistakes people and organizations currently make.

1. Using oversized instances, too many instances, or leaving instances running idle

Carefully choosing the correct instance type is a fundamental decision you’ll have to confront. What size instances should you run? How many will you need? How will you keep track of all your resources (a good place to start is your AWS account’s Billing page)? Each infrastructure deployment has its own unique characteristics, so these are questions that only you and your organization can answer. Instance types that are specifically optimized for compute, memory, or storage are obviously going to cost more than low-tier or generic versions. It’s your responsibility to ensure you’re not over-provisioning for your specific project. But remember: using oversized instances will cost you money, using too many instances will cost you money, and leaving unused instances running will, you guessed it, cost you money.

2. Choosing the wrong instance model

Besides instance types, there are also three distinct ways to purchase instance resources and thereby closely control your AWS costs:

  • On-Demand Instances allow you to pay a fixed rate by the hour with no commitment.
  • Reserved Instances provide a capacity reservation, offering a significant discount over hourly on-demand prices when you commit to longer-term instance purchases.
  • Spot Instances enable you to bid your own price for instance capacity. Assuming that your applications have flexible start and end times and can survive service interruptions when instances at your bid price aren’t unavailable, this can provide significant savings.

For a first-time AWS user, On-Demand Instances are the easiest to deploy and “no-commitment” sounds attractive. But using On-Demand for any sustained periods can generate unexpected AWS costs at the end of the month.

Continuously stopping and starting these instances will also prove costly. If you are planning on deploying a site that needs to operate 24/7 and expect to run this site over for the next 12 months, you would be far better off with a reserved instance, since you’ll know your exact costs up front. If you’re planning to deploy infrastructure that’s a little more complex and requires Elastic Load Balancers and Auto Scaling, you will probably need to draw on a combination of both On-Demand and Spot Instances, carefully calculating the relative AWS costs. Doing this right requires some careful planning.

3. Taking too many snapshots

You can back up the data on your Amazon EBS volumes to Amazon S3 by taking point-in-time snapshots. Backing up your data is not only a smart thing to do but, more often than not, it’s critical. However, EBS snapshots should be saved in moderation, or you may find yourself suffering from snapshot sprawl…which can exponentially increase your storage costs. Make sure you have an EBS Snapshots retention strategy in place (using S3 Lifecycle rules) that’s a good fit for your particular needs.

4. Not releasing allocated Elastic IPs

AWS allows you one Elastic IP (EIP) address associated with a running instance at no charge. However, you will be charged for each additional EIP that you associate with that instance per hour on a pro rata basis. To ensure efficient use of Elastic IP addresses (which are, by definition, a limited resource), AWS also imposes a small hourly charge when these IP addresses are not associated with a running instance or when they are associated with a stopped instance or an unattached network interface. That’s right: you may just stop your instance and assume that the IP associated with it will be automatically released. Unfortunately, this is not the case, and your accrued AWS costs will prove it. So make sure that you aren’t maintaining (and paying for) any unused EIPs.

AWS costs sample image5. Not monitoring AWS costs using CloudWatch and Smart Alerts

Amazon CloudWatch is a monitoring service for AWS cloud resources and the applications you run on AWS. You can use Amazon CloudWatch to collect and track metrics, monitor log files, and set alarms. You can set alarms on any of your metrics to receive notifications or automatically initiate other actions (like shutting down unused or underused EC2 instances) when a metric crosses your specified threshold. You can also use Auto Scaling to add or remove Amazon EC2 instances dynamically based on your Amazon CloudWatch metrics. If you have a complex infrastructure of any kind running on AWS, you really need to use CloudWatch to keep up with it.

Most importantly, however, can be the Billing Alerts you create to warn you when your monthly costs reach a certain predetermined threshold.

Control AWS Costs: plan ahead

Careful consideration of the above points will hopefully help you keep your ongoing AWS costs down. As we mentioned, Amazon is a fabulous platform for deploying large applications at prices unimaginable until recently. However if these applications aren’t carefully monitored and kept in check, you may find that the money you’d hoped to save by deploying your infrastructure on AWS is silently flying out the window.

Read also EC2 Pricing: understanding compute costs on AWS

Avatar

Written by

Michael Sheehy

I have been UNIX/Linux System Administrator for the past 15 years and am slowly moving those skills into the AWS Cloud arena. I am passionate about AWS and Cloud Technologies and the exciting future that it promises to bring.

Related Posts

Avatar
Michael Sheehy
— August 19, 2019

What Exactly Is a Cloud Architect and How Do You Become One?

One of the buzzwords surrounding the cloud that I'm sure you've heard is "Cloud Architect." In this article, I will outline my understanding of what a cloud architect does and I'll analyze the skills and certifications necessary to become one. I will also list some of the types of jobs ...

Read more
  • AWS
  • Cloud Computing
Avatar
Andrew Larkin
— August 13, 2019

Content Roadmap: AZ-500, ITIL 4, MS-100, Google Cloud Associate Engineer, and More

Last month, Cloud Academy joined forces with QA, the UK’s largest B2B skills provider, and it put us in an excellent position to solve a massive skills gap problem. As a result of this collaboration, you will see our training library grow with additions from QA’s massive catalog of 500+...

Read more
  • AWS
  • Azure
  • content roadmap
  • Google Cloud Platform
Avatar
Adam Hawkins
— August 9, 2019

DevSecOps: How to Secure DevOps Environments

Security has been a friction point when discussing DevOps. This stems from the assumption that DevOps teams move too fast to handle security concerns. This makes sense if Information Security (InfoSec) is separate from the DevOps value stream, or if development velocity exceeds the band...

Read more
  • AWS
  • cloud security
  • DevOps
  • DevSecOps
  • Security
Avatar
Stefano Giacone
— August 8, 2019

Test Your Cloud Knowledge on AWS, Azure, or Google Cloud Platform

Cloud skills are in demand | In today's digital era, employers are constantly seeking skilled professionals with working knowledge of AWS, Azure, and Google Cloud Platform. According to the 2019 Trends in Cloud Transformation report by 451 Research: Business and IT transformations re...

Read more
  • AWS
  • Cloud skills
  • Google Cloud
  • Microsoft Azure
Avatar
Andrew Larkin
— August 7, 2019

Disadvantages of Cloud Computing

If you want to deliver digital services of any kind, you’ll need to estimate all types of resources, not the least of which are CPU, memory, storage, and network connectivity. Which resources you choose for your delivery —  cloud-based or local — is up to you. But you’ll definitely want...

Read more
  • AWS
  • Azure
  • Cloud Computing
  • Google Cloud Platform
Joe Nemer
Joe Nemer
— August 6, 2019

Google Cloud vs AWS: A Comparison (or can they be compared?)

The "Google Cloud vs AWS" argument used to be a common discussion among our members, but is this still really a thing? You may already know that there are three major players in the public cloud platforms arena: Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP)...

Read more
  • AWS
  • Google Cloud Platform
  • Kubernetes
Avatar
Stuart Scott
— July 29, 2019

Deployment Orchestration with AWS Elastic Beanstalk

If you're responsible for the development and deployment of web applications within your AWS environment for your organization, then it's likely you've heard of AWS Elastic Beanstalk. If you are new to this service, or simply need to know a bit more about the service and the benefits th...

Read more
  • AWS
  • elastic beanstalk
Avatar
Stuart Scott
— July 26, 2019

How to Use & Install the AWS CLI

What is the AWS CLI? | The AWS Command Line Interface (CLI) is for managing your AWS services from a terminal session on your own client, allowing you to control and configure multiple AWS services and implement a level of automation. If you’ve been using AWS for some time and feel...

Read more
  • AWS
  • AWS CLI
  • Command line interface
Alisha Reyes
Alisha Reyes
— July 22, 2019

Cloud Academy’s Blog Digest: July 2019

July has been a very exciting month for us at Cloud Academy. On July 10, we officially joined forces with QA, the UK’s largest B2B skills provider (read the announcement). Over the coming weeks, you will see additions from QA’s massive catalog of 500+ certification courses and 1500+ ins...

Read more
  • AWS
  • Azure
  • Cloud Academy
  • Cybersecurity
  • DevOps
  • Kubernetes
Avatar
Stuart Scott
— July 18, 2019

AWS Fundamentals: Understanding Compute, Storage, Database, Networking & Security

If you are just starting out on your journey toward mastering AWS cloud computing, then your first stop should be to understand the AWS fundamentals. This will enable you to get a solid foundation to then expand your knowledge across the entire AWS service catalog.   It can be both d...

Read more
  • AWS
  • Compute
  • Database
  • fundamentals
  • networking
  • Security
  • Storage
Avatar
Adam Hawkins
— July 17, 2019

How to Become a DevOps Engineer

The DevOps Handbook introduces DevOps as a framework for improving the process for converting a business hypothesis into a technology-enabled service that delivers value to the customer. This process is called the value stream. Accelerate finds that applying DevOps principles of flow, f...

Read more
  • AWS
  • AWS Certifications
  • DevOps
  • DevOps Foundation Certification
  • Engineer
  • Kubernetes
Avatar
Vineet Badola
— July 15, 2019

AWS AMI Virtualization Types: HVM vs PV (Paravirtual VS Hardware VM)

Amazon Machine Images (AWS AMI) offers two types of virtualization: Paravirtual (PV) and Hardware Virtual Machine (HVM). Each solution offers its own advantages. When we’re using AWS, it’s easy for someone — almost without thinking —  to choose which AMI flavor seems best when spinning...

Read more
  • AWS
  • Hardware Virtual Machine
  • Paravirtual
  • Virtualization