Set Up The AWS Pricing Calculator To Better Estimate Costs
So you’ve got a brilliant idea for an AWS app. You’re all set to get cracking on it, but your boss wants to know what it is going to cost. The problem is, who wants to spend their entire Wednesday afternoon buried in pricing tables, evaluating countless cost factors just to end up with a shaky AWS cost estimate that’s probably wrong anyway?
Enter: the AWS Pricing Calculator. This is your trusty sidekick to estimate project costs in minutes. This is the Swiss army knife of AWS budgeting tools, with support for most services, cloud providers and configuration settings. It’s a handy tool regardless of whether you’re a seasoned Amazon Web Services veteran or just dipping your toes into the cloud computing world.
The AWS Pricing Calculator may appear daunting at first. But in this article, we’ve got your back. We’ll walk you through step-by-step instructions for estimating costs, dealing with real-world use cases involving some fan-favorite AWS cloud services, including Lambda, Simple Queue Service (SQS), and DynamoDB (DDB). By the end, you’ll be able to take any app idea you have and just let the AWS Pricing Calculator crunch out all the cost numbers for you and make informed decisions.
If you want to jump straight into automating Cost Optimization without the guesswork, CloudForecast’s ZeroWaste reports has you covered. Dive into our interactive demo of the ZeroWaste reporting tool and see how the AWS cost optimization feature finds and discovers possible idle resources within EC2, RDS, EBS Volume, S3, ALB/ELB, and other areas that might be wasting you money.
What is the AWS Pricing Calculator?
Glad you asked! Let’s break it down.
High-Level Overview
The AWS Pricing Calculator is a one-stop shop for estimating project costs within the AWS ecosystem. With support for approximately 150 AWS services (and counting), it covers just about any common AWS setup. For each service, you can specify exact configuration settings to see how each one impacts final service costs.
The best part is that you don’t even need an AWS account to access the AWS Pricing Calculator. Just hop on over to the AWS Pricing Calculator, choose Create estimate, and you’ll be on your way.
Helpful Features To Optimize The AWS Cost Calculator
The AWS Cost Calculator is more than a tool that adds two and two together. You can also define groups to help provide a cost estimate into logical sets. For instance, you might define groups based on business classifications (i.e. by team or by cost center), or based on technical details (i.e. by storage costs vs. compute, or by infrastructure region). Groups can even be nested.
The AWS calculator also includes potential AWS Support costs, often neglected in most estimates. AWS makes this as quick and easy as choosing a support plan that best aligns with your needs.
You’ll notice that from the My Estimate main page, these features can be easily added with the Create group and Add support buttons respectively.
As you add groups and AWS services to your estimate, they’ll appear in the table above. Each group or service will have its own payment options listed (upfront and monthly costs), and the Estimate summary above will aggregate the AWS total cost.
Finally, you can also export your estimate as a .csv or .pdf file for sharing.
Creating Estimates Using the AWS Pricing Calculator
Our estimate in the previous screenshot looks a little bare. Let’s fix that now!
To illustrate the AWS Pricing Calculator in action, let’s use a simple but practical example showcasing one of the use cases you might see in many other serverless apps. For our use case, suppose we want an AWS app to track order history for our online store. We’ll need three AWS resources: an SQS queue, a Lambda function, and a DynamoDB table.
The SQS queue will contain messages, each of which represents an online order. The Lambda function listens to this queue, and triggers whenever it receives a new message. It then writes important metadata from the message to the DynamoDB table, effectively acting as our data store for all order history.
Now that we have this simple architecture, let’s also make the following assumptions:
- We get 36,000 orders per hour (i.e., 10 orders per second). Business is booming!
- We’ll set up this app in the US East (N. Virginia) region.
Next, we need to come up with one estimate per service. So let’s dive right into the AWS Pricing Calculator by clicking Create estimate.
Configure the Amazon SQS Cost Estimate
Upon starting a new estimate, you’ll be met with the Add service screen. First, let’s make sure we choose the right AWS region–US East (N. Virginia). We’ll do Amazon SQS first, so simply search “sqs” in the search box to find it.
Choose Configure. This brings you to the Configure service screen, where you enter in details about your expected SQS usage:
- Standard queue requests: 26 (Unfortunately, the unit we have to work with is “million per month”. Since we expect 36,000 requests per hour, multiply this by 24 to get requests per day, then multiply by another 30 to get requests per month. This turns out to be 25,920,000, which we can round up to 26 million to be safe.)
For funsies, you can also expand the Show calculations tab to see how AWS calculates costs based on entered data:
Given that we’re not going to do any data transfers in or out of the region, we can leave the entire next section blank. So, it looks like our total monthly SQS cost is going to be $10. Choose Save and add service to continue.
Configure the AWS Lambda Cost Estimate
SQS was pretty easy since there aren’t that many parameters to configure. Let’s move to Lambda next. This has the potential to be a bit more complicated, as there are a lot more settings to play around with. If you want a more in-depth explanation, check out our Complete AWS Lambda Pricing and Optimization Guide.
On Lambda’s Configure service screen, there are a couple more subsections. The first one, Service settings, is relatively straightforward:
- Architecture: Arm (Lambda functions tend to perform better on this setting, and it’s not any more expensive to choose Arm versus x86.)
- Number of requests: 36000 per hour
- Duration of each request (in ms): 100
- Amount of memory allocated: 128 MB. (We’re simply writing to a DynamoDB table in our function, so not much memory is required.)
- Amount of ephemeral storage allocated: 512 MB. (This is the minimum setting, and we don’t need any more than this.)
After all this, our service settings results in a monthly estimated cost of $5.06 (including the free tier).
The next section illustrates why you’ll often need to have some prerequisite AWS knowledge to make best use of the Pricing Calculator. It concerns Provisioned Concurrency, which is the number of “pre-warmed” environments that are always ready to handle incoming requests. Provisioned concurrency is important if you know your function sometimes receives spikes in traffic.
But how much provisioned concurrency will we need? In the best case, and according to the concurrency formula, our function has a concurrency of 1 (10 requests per second multiplied by 0.1 seconds per request). In the worst case, orders can bunch up all at once. To simplify matters, let’s suppose that you want to guarantee that your application is always able to handle a surge of 50 simultaneous requests. Enter the following for the Provisioned Concurrency section:
- Architecture: Arm (For Provisioned Concurrency, Arm is actually cheaper than x86.)
- Concurrency: 50
- Time for which Provisioned Concurrency is enabled: 730 (This is the maximum setting, and assumes Provisioned Concurrency will always be configured on our function.)
- Number of requests for Provisioned Concurrency: 36000 per hour (Let’s assume all incoming requests are handled by Provisioned Concurrency.)
- Duration of each provisioned request (in ms): 100
- Amount of memory allocated: 128 MB
The provisioned concurrency settings result in a monthly estimated cost of $62.57.
And that’s it for Lambda–the remaining sections don’t pertain to our application. In total, our Lambda estimate comes out to $67.63 per month (Provisioned Concurrency + Service Settings). Choose Save and add service, and on to the final piece!
Configure the AWS Cost Estimate for DynamoDB
Last but not least, we come to DynamoDB–our data store. The first things we want to choose in the Configure service pane are the features we want to create a quick estimate for. DynamoDB provisioned capacity may be highlighted for you by default. We want to un-highlight this and highlight DynamoDB on-demand capacity instead. This makes it so we only pay for what we use, and also makes creating a pricing estimate a tad easier.
The page changes dynamically based on our selected feature(s). Table Class is pretty straightforward: best practice says to just choose Standard. The first meaningful section is Data storage, where we’ll use the following estimates:
- Data storage size: 1 GB (Our current table schema means that each item will be extremely small. 12 bytes to be exact–but let’s overestimate a bit and assume that once a bunch of data accumulates in this table, it’ll be at around 1 GB.)
- Average item size (all attributes): 12 Bytes
Data store backups make up just a small portion of our DynamoDB cost, at $0.25 per month.
Things get a little more interesting with the On-demand write settings. Here, we’re doing 36000 writes per hour, which the AWS calculator estimates will cost $32.85 per month:
The next section concerns On-demand read settings, which we will skip since this is irrelevant to our application. Later down the road, we’ll surely want to read the items in our DynamoDB table, but not within the scope of this particular application.
This brings our DynamoDB total to $33.10 per month. Choose Save and view summary.
Viewing the Overall Estimate
Returning to the overall estimate, you’ll see the three individual service estimates. Each of them have their own upfront and monthly costs. In the Estimate summary box at the top, you’ll see all of these costs aggregated:
Can the AWS Pricing Calculator Help You Optimize AWS Cost?
Well… yes and no. The AWS Pricing Calculator has no built-in functionality to help you identify areas of focus for AWS cost optimization. However, one of the first steps in cost savings is understanding where your money is going. This is where the Pricing Calculator shines!
It allows you to experiment with many different configuration settings and scenarios(depending on your use case), and see how each change impacts your actual cost. If you have an existing AWS application that’s burning a hole in your wallet, consider using the Pricing Calculator to see how certain changes can help you save here and there by generating a quick estimate. You can do all this without having to actually modify your application and risk breaking things when trying to optimize your actual cost.
How Accurate is the AWS Pricing Calculator?
The AWS Pricing Calculator is pretty darn accurate. In fact, if your actual usage manages to match up exactly with your projected AWS usage, expect your final AWS bill to be the same as the cost estimates (minus any applicable taxes). If you want to explore further, check out our AWS usage Integrations and advanced topics here.
Thus, it’s completely reasonable to consider your quick estimate as a starting point for budgeting and planning purposes. However, best practice tells us you should still treat the AWS Pricing Calculator as just a powerful estimation tool, not a crystal ball. In reality, your actual usage won’t exactly reflect expected usage, and this can cause slight variations in costs.
Get Started with the AWS Pricing Calculator
The AWS Pricing Calculator does more than just add numbers together. It’s a go-to tool for estimating AWS project expenses, exploring different configurations, and helping with cost optimization. While no tool can predict cloud costs with 100% accuracy, the AWS Pricing Calculator is the next closest thing to providing an accurate cost estimate.
So if you have a new project on the horizon, head to the AWS Pricing Calculator and start creating your estimate. Your budget (and perhaps your boss too) will thank you.
Manage, track, and report your AWS spending in seconds — not hours
CloudForecast’s focused daily AWS cost monitoring reports to help busy engineering teams understand their AWS costs, rapidly respond to any overspends, and promote opportunities to save costs.
Monitor & Manage AWS Cost in Seconds — Not Hours
CloudForecast makes the tedious work of AWS cost monitoring less tedious.
More from CloudForecast
AWS cost management is easy with CloudForecast
We would love to learn more about the problems you are facing around AWS cost. Connect with us directly and we’ll schedule a time to chat!