(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.
5. 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.
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 ...
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+...
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...
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...
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...
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)...
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...
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...
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...
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...
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...
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...