The Ultimate Guide to AWS Pricing Models for Cost-Savvy Engineers
By Alexey Baikov | CTO & Co-founder
June 30, 2021
AWS has maintained the largest cloud market share for well over a decade, and for good reason. Having been in the game the longest, they offer over 200 services globally (as of 2021) and are the first choice for many well-known organizations like Netflix, Verizon & Coinbase, to name a few.
Yet despite all the benefits, there’s a common complaint about this cloud giant, and that’s AWS pricing models. Their pricing is incredibly complex—they have so many services, and so many different pricing tiers, varying over regions—that as your environment grows, costs can spiral out of control.
So how can you take advantage of all the benefits of AWS, without running up a bill that’ll break the bank?
In this article, we’re going to talk about AWS pricing models. We will highlight the key AWS pricing principles to follow, and demonstrate how to choose the right model for your business. As a bonus, we’ll introduce some tools available to make AWS cost optimization a breeze.
AWS Pricing Models
AWS offers the Free Tier to users to test out over 100 different AWS products. The aim is to give customers the opportunity to “try before you buy” and demonstrate value before having to commit. There are 3 different types of free tiers to choose from: Always Free, 12 Months Free and Trials.
Examples of Always Free services:
- 25GB free Amazon DynamoDB storage.
- 1 million Amazon Lambda requests per month.
- 10GB Amazon Glacier retrievals per month.
Examples of 12 Months Free services:
- 750 hours of EC2 usage per month.
- 5GB of S3 storage.
- 750 hours of RDS usage per month.
Examples of Free Trial:
- 2 months free usage of Amazon SageMaker.
- 750 hours free usage of Amazon Lightsail.
- 30 days free usage of Amazon GuardDuty.
- The free tier allows users to run workloads to test out performance, functionality, and so on.
- There’s no long-term commitment.
- Free tier services are mostly impractical for long-term production use.
When to Use
- When deciding whether to use AWS or a particular AWS service for a workload
- For Proof-of-Concepts (PoC)
The On-Demand pricing model is the default pricing model for AWS EC2 compute services. AWS charges per hour or by the second (with a minimum 60-second block) for use of its EC2 instances. When the instances are stopped, they don’t accrue any charges. There is no long-term commitment to use any EC2 instance—it’s “pay as you go.”
The high level of flexibility comes with a cost though, as this is the most expensive option. For this reason, it’s better to use this pricing model in the short term. For long-term EC2 usage, our advice would be to move to one of the other more cost effective models.
For scenarios such as testing new applications, or monitoring unpredictable workloads this pricing model is ideal as no long-term commitment is required.
- There’s no long-term commitment for using EC2 instances.
- AWS only charges for the actual usage hours.
- Most expensive option.
- Not suitable for long-running production instances
When to Use
- Short-term projects or PoCs.
- Non-production workloads.
- Assessing unpredictable workloads.
Amazon Spot Instances give customers the opportunity to bid on unused EC2 capacity in the AWS cloud. Compared with On-Demand pricing, Spot Instances can be purchased for up to a 90% discount, making this a very appealing option for cost-savvy engineers.
The only drawback is that the instance can be terminated by AWS with only 2 minutes notice. This usually happens if there are higher bidders for the spot instance, the EC2 capacity is required for On-Demand purchases, or if the spot request has constraints that can’t be met.
If your application has a high fault tolerance, this may not be such a big drawback though. For example, if you use services such as Elastic Load Balancing or Auto Scaling, your application could cope well with losing an instance unexpectedly.
- Cheapest pricing model with up to 90% off On-Demand pricing.
- Suitable for non-production workloads, or workloads that can regenerate data or reprocess from the point of termination.
- Your instance can be terminated unexpectedly if there is a higher bidder, if On Demand resource is required, or if the instance has restraints that can’t be met. Without proper planning, this can leave your application down.
- This can be complex to set up if you are just getting started with AWS.
When to Use
These can be very efficient for applications with high fault tolerance, or transient workloads like CI/CD pipelines.
An AWS Reserved Instance is a billing discount applied to On-Demand instances when you commit to a 1 or 3-year term usage. It’s available for the following services:
When you purchase a Reserved Instance, you have the choice of either a Standard or Convertible RI.
Standard RIs provide the largest discount (up to 72%) and can be sold in the Reserved Instance Marketplace, but you are unable to exchange these instances.
Convertible RIs provide up to a 54% discount and give you the ability to exchange instances (as long as the value is equal or higher to the original). These instances cannot be sold on the Reserved Instance Marketplace though.
- There’s up to 70% discount for long term usage commitment.
- Predictable pricing.
- Customers are able to reserve guaranteed capacity.
- Easier to manage compared to Spot Instances.
- Reduced flexibility: if you don’t have instances to apply the RI, you still have to pay the price.
- Requires a long-term commitment.
When to Use
- Production applications with predictable, long-term usage.
AWS Savings Plan is a flexible pricing model that offers discounted prices on EC2, Lambda and Fargate services in exchange for a commitment to a consistent level of usage on a 1 or 3-year term. The level of usage is measured in a fixed price per hour. Depending on which Savings Plan you select, you can achieve up to a 72% discount.
When you commit, you pay that commitment amount every hour, and it’s subtracted from your on-demand usage at the discounted rate. There are two Savings Plans to choose from: Compute, or EC2 Instance.
Compute Savings Plans offer the most flexibility and can reduce costs by up to 66% compared to the On-Demand model. You can change instance types (e.g., C4 to M5), change regions, or move a workload from EC2 to Fargate, and still achieve the same discount rate.
EC2 Instance Savings Plans offer a higher level of discount, up to 72%, but are less flexible. AWS gives a higher discount level in exchange for your commitment to use specific instance families in a particular region. For example, you can commit to using a certain number of C4 instances in the Dublin region to achieve a discounted rate. You can still change the size, OS, tenancy and Availability Zones within the selected region.
- Easy to manage in comparison to Spot and Reserved Instances
- Can achieve a discount of up to 72%
- Predictable expenses for long-term usage
- Like Reserved Instances, customers need to make a long term commitment
- Excess usage above the hourly cap are charged at an On-Demand rate
When to Use
- Workloads are predictable, continuous and guaranteed to remain under a threshold.
- For workloads running on EC2 nodes, Fargate clusters or through Lambda functions.
Key AWS Pricing Principles to Follow
AWS has several pricing options available depending on the service. Regardless of the service you use, following these Key AWS Pricing Principles can help maximize the benefits of AWS services without breaking the bank.
Start Early with Cost Optimization
You should start cost optimization as early as possible (before migrating the workload to AWS if possible).
One of the most important cost optimization exercises is matching capacity with demand. AWS has recognized how fundamental this is and developed a number of cost optimization monitoring tools to help you:
- AWS Cost Explorer Resource Optimization – Identifies underutilized EC2 instances.
- RDS Idle DB Instances Check – Identifies DB instances with no connections over the past 7 days.
- S3 Analytics – Identifies infrequently accessed data to move to cheaper storage class.
- AWS Trusted Advisor – Fully managed service providing guidance on best practices (e.g., identifying idle load balancers and unassociated elastic IP addresses).
In addition to monitoring tools, AWS also provides tools that automatically take action to cut costs. These include:
- AWS Instance Scheduler – Configure start and stop schedules for EC2 and RDS instances. This can save costs for non-production systems.
- AWS Operations Conductor – Automate time or event based triggers for managing resources.
- AWS Auto Scaling – Monitor applications and automatically adjust EC2 capacity by spinning up or down instances.
- Amazon Data Lifecycle Manager – Automates the creation, retention, and deletion of EBS snapshots and EBS-backed AMIs.
Maximize the Power of Flexibility
Using a cloud provider like AWS gives you the flexibility to access the services you need— when you need them, only paying for what you actually use. AWS gives you the ability to adjust services to align them with your business and reduce costs. For example, you can add or remove new EC2 instances as your demand fluctuates, or move data to cheaper S3 storage classes when you see it isn’t accessed often. Another option is to take advantage of serverless or managed services instead of running your own infrastructure. This can be anything from Lambda functions to ECS/EKS clusters to Simple Queue Service.
Being aware of the adjustment options available and taking advantage of them to suit your applications is key to running a scalable business.
AWS Tools to Help Estimate Costs
AWS pricing models are complex enough, so manually estimating all the costs can not only be cumbersome, but also error-prone. Instead, you can make use of some AWS’s native tools to estimate costs, or create an expense budget. Here are some of these:
- AWS Pricing Calculator – Creates an estimate to fit your particular use cases.
- AWS Cost Explorer – Easy to use interface for analyzing and visualizing costs and usage over time.
- AWS Budgets – Set custom budgets that trigger alerts when cost or usage exceed a set amount.
- AWS Billing Alert – Can send you automated notification when the monthly bill goes above a set threshold.
We hope that this article has provided you with the information you need to choose a pricing model that will help you cut costs without compromising quality or reliability. Understanding the AWS pricing models and their suitability for various types of workloads allows you to strike the right balance between flexibility and cost.
The AWS pricing model you choose will depend entirely on your specific business needs.
For example, if you are testing a new application, starting with the On-Demand pricing model can give you flexibility to know what resources will be needed over a period of time. Once you have determined the usage profile, you can plan for long-term commitments and cost-saving techniques. If you have a highly fault-tolerant application that runs on a cluster of instances that can withstand losing a number of nodes unexpectedly, Spot Instances can be a great choice. There is no one-size-fits-all, and in most cases there will always be some level of trial and error.
Want to automate savings on AWS? Contact one of our cloud cost optimization experts to learn how to minimize cloud management efforts and maximize savings with Zesty.