How much does Altinity.Cloud cost?

“How much does it cost?” is the first question many people ask when looking at public cloud services. Data services for ClickHouse are no exception. This blog article explains the billing formula for Altinity.Cloud, our cloud platform for ClickHouse. After reading it you’ll be able to compute the bill yourself. We’ll even give you a spreadsheet with sample numbers to help out. 

But there’s more. Many users use ClickHouse for real-time analytics that run constantly with tight SLAs. What’s the most price-efficient way to do that? In the second part of this series we’ll therefore go beyond the simple cost formula for running ClickHouse itself. We will consider additional ways that Altinity.Cloud helps users control overall costs of delivering real-time analytics. 

How does Altinity.Cloud work? 

The first step to understanding cloud costs is to understand the resources that go into the bill. Let’s have a quick look at how Altinity.Cloud works inside. 

Altinity.Cloud runs ClickHouse using Kubernetes. Each tenant has one or more “environments,” which are independent Kubernetes clusters. It’s just like running it yourself, except Altinity.Cloud takes care of all the automation. Here is a diagram illustrating how it works.

This is a shared nothing architecture, which means that ClickHouse servers have their own attached storage and communicate through the network to parallelize queries. Shared nothing is a time-honored design for data warehouses that turns out to be outstandingly flexible on Kubernetes. Here is a list of useful features for resource tuning. 

  1. Scaling servers up or down. You can change to a new VM type with a single keyclick, for example to scale from 2 vCPU m5.xlarge to 16 vCPU m5.4xlarge. The operation takes a few minutes to add (or decrease) compute power. If you have multiple replicas,  Altinity.Cloud handles it one replica at a time to avoid interrupting applications.  
  2. Adding additional block storage. As your tables grow, you can extend volumes transparently to increase available space. 
  3. Adding or removing shards and replicas.  You can add (or remove) shards and replicas with a couple of key clicks.
  4. Pausing and resuming clusters. Altinity.Cloud can stop all compute nodes in a cluster while preserving the block storage until restart. You can stop the cluster manually, using a schedule, or based on some period of inactivity, such as an hour.

The first three operations occur without disruption to running applications. Users can therefore adjust the level of available resources at any time. The last (pausing and resuming) is a final improvement that allows users to halt clusters completely when not in use. It’s useful for dev/test systems, along with applications that only run during business hours.

All of these changes are simple and transparent. They give users plenty of options to change costs in ways that are both predictable and easy to understand. 

How does Altinity.Cloud bill for ClickHouse clusters? 

Altinity.Cloud has a billing model that is based on the cost of cloud compute and storage (block storage plus object storage), plus a service fee per active server. Bills are monthly and based on usage in the previous month. Here is the list of the four things that Altinity.Cloud charges for.  They are visible and easy to understand. 

ResourceBilling UnitBilling Formula
Server NodesVM/hourProrated Hours * provider cost * 2.2
Block Storage for ClickHouseGB/monthProrated months * provider cost * 2.2
Object Storage for BackupsGB/monthProrated months * provider cost * 2.2
Enterprise SupportClickHouse Node/monthProrated months * nodes * $100

That’s it. Altinity.Cloud does not bill for costs or services that users cannot see and control. ZooKeeper is one such example. Network transfer between ClickHouse nodes in different availability zones is another. 

Altinity.Cloud also offers a variety of discounts, including an automatic discount as monthly spending rises, plus bigger discounts in return for prepayment. This will be familiar to any public cloud user.  We’ll talk about those in the next section.

Now let’s take a real example to see how billing works out using a production cluster running in AWS eu-west-2 region (London). These examples are also available in a spreadsheet that you can adapt to estimate bills yourself. 

  • Server VMs: 2 x m5.2xlarge, running 100% of the time
  • Block Storage: 2 x 250GB
  • Backups: 7 days x 125GB. (Assumes backups are 50% of single node storage.)

We can plug it into the model with actual costs to get our bill. The total monthly bill is $1,778.47. 

ResourceMonthly CostUnitCountDurationMultiplierBilled Amount
EC2 m5.2xlarge$0.444VM/Hour27202.2$1,406.59
EBS gp2 Storage$0.116GB/Month50012.2$127.60
S3 Backup Storage$0.023GB/Month87512.2$44.28
Support$100Node/Month211$200.00
Total$1,778.47

After running the system for a few months, business is booming. We need more compute capacity, because we have more tenants simultaneously using the system and joins are running out of RAM. It’s time to make a few changes.

  • Upgrade from m5.2xlarge to m5.8xlarge (8 to 32 vCPUs and 32 to 128 GB of RAM).
  • Increase block storage to 1500 GB across both nodes.
  • Raise backup space to 7 days x 375GB. 

The new price is shown below. Note that adding storage also changes the amount of object storage used for backups. Changes are highlighted in bold.

ResourceMonthly CostUnitCountDurationMultiplierBilled Amount
EC2 m5.8xlarge$1.776VM/Hour27202.2$5,626.37
EBS gp2 Storage$0.116GB/Month150012.2$382.80
S3 Backup Storage$0.023GB/Month262512.2$132.83
Support$100Node/Month211$200.00
Total$6,341.99

Finally, we add a nice CI/CD pipeline to manage application releases. We need a ClickHouse server that is similar but not full scale. We can create a new cluster with a single m5.xlarge VM and half the storage of production nodes. We add an Uptime Schedule so that the server runs on average 20 hours a week or 80 hours a month. 

Here’s the bill. It’s quite modest. 

ResourceMonthly CostUnitCountDurationMultiplierBilled Amount
EC2 m5.xlarge$0.222VM/Hour1802.2$39.07
EBS gp2 Storage$0.116GB/Month25012.2$63.80
S3 Backup Storage$0.023GB/Month50012.2$25.30
Support$100Node/Month10.1111$11.11
Total$139.28

You can of course scale out clusters by adding replicas and shards. As you can probably already tell from the previous examples, your costs will scale more or less linearly as you add each new server.

Discounts on Altinity.Cloud Bills

As mentioned previously, Altinity.Cloud offers automatic discounts as monthly spend increases. Users must sign up for invoiced pre-payment and pay balances within thirty days. The discounts start at $10K of monthly spend and decrease bills according to the formula shown below. 

Total bill levelDiscountMaximum
$0-10KNo discount
$10-20K%2 of amount between valuesUp to $200
$20-30K%4 of amount between valuesUp to $400
$30-40K%6 of amount between valuesUp to $600
$40-50K%8 of amount between valuesUp to $800
$50K and beyond%10 of amount above $50K(Bill total – $50K) * 10%

We also offer substantial discounts in return for prepayments. Prepayments allow us to set up savings plans and pass savings back to users. 

Please contact us to learn more about any aspect of Altinity.Cloud pricing, including discounts. 

Conclusion

Having a transparent, flexible, and predictable billing model is a huge advantage for SaaS businesses. We especially appreciate this at Altinity. Like many readers of this blog we run a SaaS business as well! We model cash flow at least one year in advance. It’s possible to do so because we can predict cloud delivery costs and income relatively accurately. The same model that makes it easy for users to predict their own costs helps our business as well. 

By now we hope you understand the ins and outs of the Altinity.Cloud cost model as well as the numerous ways you can adjust the bill. There are other ways to control the cost of real-time analytics that go beyond the Altinity.Cloud bill. We’ll dig into how Altinity.Cloud enables them in the next part of this blog series. While you are waiting for it to appear, why don’t you try out Altinity.Cloud yourself? We offer a free two-week trial. Sign up and check it out!

Share

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.