Having a good Disaster Recovery Plan is a must in all companies to prevent data loss or reduce downtime in case of failure. For this, backups are a basic point here, and it is essential to define which type of backup you need to create and where to store it. The best practice is to store the backup files in three different places, one stored locally on the database server (for faster recovery), another one in a centralized backup server, and the last one in the cloud (or if your infrastructure is in the cloud, you should use a different cloud provider in this part). In this blog, we will mention different things to take into account before storing your MariaDB backups in the cloud and how to use ClusterControl for this task.
There are many cloud providers offering different backup storage options and features. You will need to check the features and the costs to make sure you are covering your needs and it fits your budget. Now, we will mention some important things that you should check here.
This could be the most important point to check before storing your data in the cloud. The cloud provider should offer encryption for data-at-rest (and even in-transit) if you want to store the backup there. This encryption protects the data from being used by an unauthorized person during the time that it is stored in the cloud.
The cloud provider should follow privacy laws and comply with some regulations to provide maximum data protection. The EU’s General Data Protection Regulation (GDPR) has strict regulations on storing sensitive data. Also, several EU members don’t allow to store sensitive data outside the national boundaries, so it is important to take this into account.
The cloud provider should provide an easy management console where to configure, manage, and monitor your backups stored in the cloud, otherwise, you can convert a simple task to a complex one, which doesn’t make sense.
Availability and Durability Policies
Some Cloud Providers have at least 99.99% uptime, but it is always good to check their SLA on the different offerings on availability and durability. The Cloud Providers might offer different solutions priced higher to achieve high availability and durability, and depending on the business, it could be necessary to use a different solution than the default one.
The cost could be the most crucial point and also quite complicated as Cloud Providers often display their cost to make it look cheap at a glance.
In general, there are three criteria for evaluating the cost of Cloud Storage:
- Storage Cost: It is usually calculated per GB/MB depending on the type of data and activity level.
- Access to data: Depends on how fast you will need to access the data. Storage for cold backups is usually lower but could increase based on volume and retention period.
- SLA: Necessary if you require a guarantee on uptime and lower downtime.
After checking the basic points mentioned above, you will be able to store your MariaDB Backups in the Cloud in the selected Cloud Provider, but now, you should decide how to upload it there. Of course, you can upload it manually, but it will be annoying for sure, so to avoid a manual task you should create a cron job or a custom script, which could fail, so you will also need to monitor the job. All this could be a time-consuming task, and here is when ClusterControl can make your life easier.
Upload Your Backups to the Cloud with ClusterControl
ClusterControl is a management system for open source databases that automates deployment, backups, and management functions, as well as health and performance monitoring for different database technologies and environments.
Let’s see how to store your MariaDB backups in the Cloud using AWS as an example, but actually, you can integrate ClusterControl with Google Cloud or Azure too. For this, we will assume you have ClusterControl installed and it is managing your MariaDB cluster.
Creating a Backup
For this task, go to ClusterControl -> Select MariaDB Cluster -> Backup -> Create Backup.
You can create a new backup or configure a scheduled one. For this example, we will create a single backup instantly.
You must choose the backup method (mysqldump, or mariabackup full/incremental), the server from which the backup will be taken, and where you want to store the backup. Here you can also upload your backup to the cloud by enabling the corresponding button.
Then you can specify the use of compression, compression level, encryption, retention, and more backup settings.
If you enable the upload backup to the cloud option, you will see a section to specify the cloud provider (in this case AWS, but you can add more Cloud Providers in ClusterControl -> Integrations -> Cloud Providers. For AWS, it uses the S3 service, so you must select an existing Bucket or even create a new one to store your backups there.
In the backup section, you will see the progress of the backup and information like method, size, location, and more. In “Storage Location”, you can find the Cloud Icon, which means that the backup is stored in the Cloud too.
When it finishes, you will find the backup in the selected location and in the Cloud Provider.
As data is an important asset in a company, storing your MariaDB Backups in the Cloud could be risky if you don’t take care of some basic things before uploading it, like security, or availability. Also, the cost is an important factor as, depending on the requirement, it could be more expensive than expected.
In this blog, we mentioned some important things to take into consideration before choosing a Cloud Provider to store your data, and how you can upload your backups easily by using ClusterControl for this task.