The Elasticity of DBaaS with CCX

Lukas Vileikis



Elasticity is a big thing for software. Elasticity, as far as software is concerned, refers to the ability to adapt to workload changes in an elastic manner, meaning that elastic software is able to quickly expand or decrease computer processing, memory and storage resources to meet demanding business needs.

Elasticity is especially important in databases – as your business needs increase or decrease, adopting them to your database can prove to be vital to your business success. This blog post will talk about the elasticity in Database as a Service (DBaaS) solutions.

Database as a Service Solutions – Are They Elastic?

As far as elasticity relates to DBaaS (Database as a Service) solutions, the majority of DBaaS solutions allow developers or DBAs to not have to install and maintain the database themselves. The majority of Database as a Service solutions does take responsibility for installing and maintaining a database – application owners are charged per their use of the service instead. These kinds of services can either be scaled up or scaled down according to business needs, so they indeed are elastic.

The Deploying of DBaaS with CCX

In order to understand how can CCX by Severalnines can achieve elasticity, we need to understand what it may be useful for in the first place. CCX by Severalnines is a fully managed database-as-a-service (DBaaS) solution built atop ClusterControl. CCX can be used to deploy and access managed and secured MySQL, MariaDB and PostgreSQL database clusters on multiple Availability Zones on AWS. One of the aims of CCX is to enable users to combine high availability and performance with ease of use and scalability. Here’s how CCX looks like when you first log in to the service:

Data Stores

Click “Create data store” and you will be prompted to create a data store name and select a database vendor. If you want, you can also add tags. You can also select the number of database nodes:

Creating a Data Store

Note that the number of nodes can always be scaled later on – that’s a part of the elasticity that CCX provides because once you choose how many nodes you want to use, CCX is then able to provision and deprovision resources in an autonomous manner. Though bear in mind that this feature is not yet fully implemented and thus might not be available when you read this blog post.

Click Next and you will be prompted to select a cloud provider, then select a region and proceed to the next step:

Selecting a Cloud Provider

Now, select your instance size. Here you have a few options – instances can either be very small (tiny), small, medium, large or very large. You would also need to select your volume type and the size of the volume. The minimum size is 20GB while the biggest available size is 16TB:

Instance Size

Finally, select your network type. We will choose Public for this example:

Network Settings

Finally, proceed to have an overview of everything that you have chosen and deploy the data store:


With that being said, CCX by Severalnines can also let you create a Virtual Private Cloud (VPC) which means that you can also launch AWS resources in a logically isolated virtual network that you define. Simply expand the Create menu and select VPC:

Creating a Data Store

Here’s how everything looks like once you are setting it up:

Creating a new VPC

The Elasticity of DBaaS with CCX

Now that you know how you should go about deploying CCX, you should probably know a little about its elasticity. The service is elastic because CCX can be scaled up or down according to your business needs. For example, you can always scale the number of nodes used by your data store. In general, when choosing a database-as-a-service provider, keep in mind that the elasticity of a data store relates to the flexibility of its data model and clustering capabilities. The more easily clustering can be managed and the more data model changes can be tolerated, the more elastic the data store is.

CCX is elastic because it allows you to have high availability and failover with multiple availability zones meaning that with CCX you can also deploy each of your database nodes in a separate Availability Zone too. Also keep in mind that while you might find some DBaaS solutions simple to use, some of them pose some serious drawbacks that you might want to consider looking further into. One of the main issues with some DBaaS providers is that you might find yourself locked in to a specific vendor when using them. For example, if you deploy a database cluster with Amazon Web Services, you might find it to be a little tricky to migrate out of it. With CCX you’re in good hands though – CCX is not included in this list.

If you’re running, for example, Galera Clusters for either MariaDB or MySQL, CCX can also prove to be a good choice – you can write and read from any of your database instances, failover processes are also guaranteed to not lose you any data.


Elasticity is one of the most important concepts in software. It’s even more important when dealing with database instances – if you are using a Database as a Service solution that is elastic, you might find it very easy to work with because everything that you need can be scaled up or down, also because it allows you to have high availability with multiple availability zones too.