DigitalOcean Spaces is a friendly and easy use alternative to AWS S3. Perfect for when running compute in a DigitalOcean datacenter. Prices are very simple and for $5 per month you get 250GB with 1TB of bandwidth. After this you are billed $0.02 per GB for storage and $0.01 per GB for transfer per month. SnapShooter will work with MySQL hosted on your own droplets as well as MySQL managed in DigitalOcean Managed databases.
In this guide, we will show you how easy it is to backup MySQL to Spaces using SnapShooter. SnapShooter has a free plan for a single database, so you can get started totally for free, just bring the storage!
# Sign up for SnapShooter
Signing up for SnapShooter is easy and free -- all you need is an email address.
Once you have an account, you can backup one resource for free daily, with options started from $9 to upgrade for larger resources limits and backup frequency. Click Free Trial in the top right Provide your name, email and a password.
# Start backup wizard
Once into the dashboard, you will be greeted by a welcome screen showing you what backup offerings SnapShooter has available. For this guide select, MySQL.
# SSH Setup Step
To perform a MySQL backup, you need to configure an SSH connection to a server you wish backups to pipe through; this is within your environment and acts like a jump box between SnapShooter and your MySQL.
# 1) Configure SSH Connection
You will be asked to provide details of an SSH connection to a server, depending on the backup type you may or may not need root access. (Root access is required when you want to do a file-based backup and backup the whole server)
- Set the Backup name to something you will remember. e.g. Production MySQL
- From the SSH server select an existing or provide the ssh host (ip or hostname), ssh port (default is 22), and the ssh user
- Select an existing SSH key or let SnapShooter generate you a new one
# How do I create a new User for SnapShooter?
If you wish to use a new user for backups on your server you can run the following commands as root:
adduser --disabled-password snapshooter
This will generate a user without a password
# 1) Test SSH Connection
When you press Test and Connect SnapShooter will show the steps to install the key, this involves you pasting the SSH public key into the users authorized_keys
# By Hand
- SSH into your server
- Copy the key we present you
- On the server edit the authorizedkeys file, Make sure you edit the correct users authorized keys. SnapShooter will provide you the normal path e.g. for user called SnapShooter /home/snapshooter/.ssh/authorizedkeys
# Copy Paste
We allow offer a single copy paste method
- Select Single Copy Paste
- Login to Server
- Copy the command
- Paste the command into SSH client connected to the server
When you press test, SnapShooter will connect to your server via SSH to check the connection is good.
SnapShooter will also check the correct packages and libraries are installed on the server, MySQL, tar, curl, unwip, gzip
# Common Errors
# Permission Denied
1. firstname.lastname@example.org: Permission denied (publickey).
This error normally means the server does not have the SSH key installed correctly, try following the steps again
# Configure MySQL
The next step in the process is to configure MySQL backup.
- Provide your MySQL Host, if the database is on the same server as the ssh connection, you should use 127.0.0.1, if not change it to the host or IP of the MySQL instance
- MySQL Port
- MySQL User - You are free to use any user or configure a new one just make sure it it has read access to the databases you want backed up
- MySQL password - Your password is stored encrypted and we use it to write a secure my.cnf file on your server
Once ready you can ask SnapShooter to test your MySQL details, we will connect to the database and check we have Auth access
Next step we ask you to select the database you want to backup, depending on your plan features you might also be able to select all databases.
# Configure Storage
You need to select the storage provider you wish for your backups to be stored with, we allow users to select from a range of providers and in the guide will focus on Spaces
If you have already setup the storage provider you want you can select it and proceed if not press Connect new External Storage
# Creating a New Bucket
- Login to your DigitalOcean Control Panel
- Top right click the Create button and select Spaces (at bottom)
- Choose your backup region
- Do not select CDN as this is for private files which we don't need distributed round the world.
- Select Restrict File Listing
- Choose a name - E.g. snapshooter
- Press Create a Space - Spaces should be created instantly
- Note down the URL
# Creating a Spaces Key
- Go to the API settings in your account (for the left menu under Manage)
- Find Spaces access keys
- Press Generate New Keys
- Give it a useful name e.g. SnapShooter
- Copy the Key and secret (if you don't you can't view them again and will have to regenerate them)
# Attaching S3 to SnapShooter
- Go back to SnapShooter
- Choose a Friendly Name
- Select DigitalOcean Spaces
- Select the correct spaces region selected before
- Paste in saved access key and secret access key
- Enter the correct bucket name
- Press save
- We will check the API key is valid and works before allowing you to save. Once complete, you are ready to create a Backup Job that uses external storage
# Configure Schedule
Scheduling is where the power and ease of use for SnapShooter shins.
You need to tell SnapShooter how often you wish to have backups, currently, we support up to hourly backups. You can also set Timezone and Daily backup time. We will then take your daily backup at this time/timezone and tag it as daily. If you have more than daily backups, we will offset the other backups on this.
With SnapShooter taking backups at the frequency you set you need to decide how many past backups you wish to keep.
Depending on when your backups start SnapShooter will tag them, Hourly, Daily, Weekly and Monthly (Weekly is your first on a Monday, Monthly is your first backup that happens on the 1st of the month)
When a backup is completed SnapShooter will then proceed to prune your backups based on your rules. This way we keep your backups in the most efficient way while also keeping a far horizon
# Finished MySQL Setup
Your setup is now complete
We recommend you test your new configuration by pressing the Backup Now button, as backups happen in the background you can expect a small delay (20s) before the backup will start
Once you backup has completed you will be able to see it in the backup table
Depending on your compression level and the size of the backup it may take time to complete. Every minute SnapShooter will go and check the process to see how far it has got. Using the Log button you can see the latest state the backup is in.
When the MySQL has completed you will be shown the restore guide for if you ever needed to recover the database