· Hakan Lofcali · Pricing · 6 min read
Cloud Pricing Models
Understand the different cloud pricing models to optimize costs and ensure your cloud strategy aligns with your business needs.
This blog post introduces various billing and pricing models offered by cloud providers. Our goal is to create clear definitions and common terminology, often conflated in the cloud industry. While we don’t claim to be the ultimate authority on these definitions, feel free to share your thoughts.
To jump right into the meat, we’ll use the definitions of cloud IaaS and PaaS provided in the appendix. It might not make sense at first, but you are here for the title, so that’s our main course, our broccoli for my veggie friends. The appetizer is in the appendix.
The Meat: Big Four Pricing Models
The cloud market and cloud providers generally feature four primary ways to price and bill your consumption of their services:
- Pay by Usage: A service defines parameters on how it will calculate your bill. This can often be boiled down to time x size, where size comes in many shapes or forms. A lot of “What the heck” moments here.
- Booked Capacity: A service allows you to reserve capacity. You will be billed whether you use the reserved capacity or not. Often, the price lowers because of your commitment.
- Discount by Volume: Increasing your booked capacity might get you a discount, depending on your provider.
- Spot Instances: The cheapest option, but one with the most unpredictable usage patterns. This allows you to bid on capacity, and if your price hits the mark, you get the desired capacity.
As a rule of thumb, the more predictable your usage is for the provider, the cheaper your services will be. Exceptions are spot instances, as these are often just means to fill data centers with more workloads for cloud providers.
Pay by Usage - Simple Case
In general, pay by usage gets more abstract the further you move into the PaaS realm of cloud providers. But we will start simple with an IaaS example. My brain needs some foreplay to get the engine going.
If we go over to UpCloud and look into the pricing of a fairly regular VM, we get the following:
Memory | CPU cores | MaxIOPS Storage | Transfer | Global Price | Helsinki Price |
---|---|---|---|---|---|
8 GB | 4 | 160 GB | 5 TB | 52/mo | 0.0774/h | 60/mo | 0.0893 |
Given our previous function, denoted more formally $$ time \times size$$, we can now fill in what size means. $$ time $$ can be either month or hour and for some providers even seconds. $$ size $$ is a combination of Memory, CPU cores, and other parameters. We will see in later posts that other parameters vary vastly depending on the provider and product. While Memory and CPU cores often scale together.
So, if you were to book this VM for 3 months, you would end up with approximately €156 billed. While you do not know the specifics of this given VM, it is both a gift and a curse of the Cloud.
Pay by Usage - Complex Case
As mentioned above, $$ size $$ often becomes more convoluted as we move towards a PaaS model. Let’s look at DynamoDB’s On Demand Pricing to illustrate this point.
Feature | What it does | Billing unit |
---|---|---|
Write request | Writes data to your table | Write request unit (WRU) |
Read request | Reads data from your table | Read request unit (RRU) |
The billing unit has become Write / Read request unit now. So, how much does one WRU actually cost? At the time of writing, it costs $1.411 per million WRU.
Now, let’s get into what a WRU or RRU actually is. So far, we know it “writes data to your table”.
- A strongly consistent read request of an item up to 4 KB requires one read unit.
- An eventually consistent read request of an item up to 4 KB requires one-half read unit.
- A transactional read request of an item up to 4 KB requires two read units.
This is good and bad at the same time. DynamoDB’s product team is essentially telling you that datasets over 4 KB are not optimized for their service. You might still use it, but it will automatically cost you more billing units. The key takeaway: PaaS can be more cost-efficient if the service in question suits your workload well. However, if you feel like you are paying too much, you might not be the primary target customer of a given service.
Booked Capacity Pricing
Booked capacity refers to committing to payment and reserving capacity. Depending on the provider, this can be achieved with both pay-by-usage models. For example, this pricing model is used by multiple providers to give you better predictability of your usage.
Some offerings provide simple price predictability, while others offer more capabilities at a fixed price point. Let’s look at two examples that offer PostgreSQL Database or PostgreSQL-compatible Database.
First, we have Aiven, starting from $110/month and offering a managed PostgreSQL. You then select the specifics. Aiven’s offerings focus on pricing predictability without any fuss. You will also be able to better forecast the price in the future. The prices proportionally grow with the number of VMs, cores, or other parameters.
On the other hand, you have offerings like neon.tech. They offer a PostgreSQL-compatible database with additional features like data branching, starting from $19/month based on storage, compute hours, and other parameters.
In both cases, you reserve capacity and commit to a price. The key difference is what capacity entails and whether additional services are offered on top.
Discount by Volume
This is very simple, like in a grocery store. If you buy a lot, you might be able to negotiate prices.
Some cloud providers advertise volume discounts, others have them documented, and for others, you will have to contact your account management. Once you are aware and can plan to stick with one cloud provider, you can start calculating or ask your account management whether they can offer some options.
Exoscale encourages customers to reach out and ask for these. We encourage you to reach out to your provider or contact us to help you with your cost optimization.
Key Takeaways
Understanding the different cloud pricing models is crucial for optimizing costs and ensuring your cloud strategy aligns with your business needs. Whether you choose pay-by-usage, booked capacity, discount by volume, or spot instances, each model offers distinct advantages and considerations. Make sure to evaluate your specific requirements and consult with your cloud provider and us to make the most informed decision.
Appendix
Cloud Providers
Cloud in this context refers to services consumed over the network and needed for parts of the software development lifecycle. Commonly referred to as Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), and Software-as-a-Service (SaaS). Cloud in our context will refer to IaaS and PaaS, but not SaaS.
Infrastructure-as-a-Service
Infrastructure-as-a-Service (IaaS) providers offer the means to run any kind of software. Servers, networking, and storage are the core building blocks of software infrastructure. Hence, a fully-fledged IaaS provider needs to provide at least one version of all building blocks.
Platform-as-a-Service
Platform-as-a-Service (PaaS) providers offer network-based access to services concerning the software development lifecycle. These providers either run everything on their own infrastructure or utilize an IaaS themselves.