Author: Humphrey Mpairwe
Last Updated: Wed, Jan 4, 2023This guide explains how you can migrate your AWS Cloud Database to Vultr with minimal downtime to the source database applications. Vultr's Managed Databases for Redis offer reduced costs, easy management and backups, scheduled updates, quick scaling, straightforward monitoring, and automated failover to replica nodes in case of database failures.
Before your start, make sure you:
Verify that your source AWS Cloud Database accepts connections from any source 0.0.0.0/0
.
Deploy a fresh Vultr Managed Database for Redis with the same size as your AWS database.
This section explains how you can migrate Redis data from your Elastic Cache for Redis database to a Vultr Managed Database for Redis. You'll connect to the Redis cluster using stunnel listening on localhost port 2000
for the source, and 4000
for the target, then use a bash script to migrate the Redis data to the Vultr Redis database.
Open and edit your stunnel configuration file.
$ sudo nano /etc/stunnel/stunnel.conf
Add the following configurations to the file.
fips = no
setuid = nobody
setgid = nogroup
pid = /tmp/stunnel-pid/stunnel.pid
debug = 7
delay = no
[Target]
client = yes
accept = 127.0.0.1:4000
connect = vultr-prod.vultrdb:1234
[Source]
client = yes
accept = 127.0.0.1:2000
connect = redis.amazonaws.com:1234
Save and close the file.
For more information on configuring stunnel, please visit how to connect your Redis database using stunnel.
Using redis-cli
, access your source Redis database server.
$ redis-cli -h 127.0.0.1 -p 2000
Enter the Redis password.
> auth PASSWORD
Select the database you intend to migrate.
> select 1
Make a database snapshot to save a backup before migration.
> save
Exit the Redis interface.
> exit
Create a new bash file, for example migrate-to-vultr.sh
.
$ touch ~/migrate-to-vultr.sh
Open and edit the file using a text editor of your choice.
$ nano ~/migrate-to-vultr.sh
Add the following Redis migration configurations to the file.
#!/bin/bash
set -euo pipefail
source=${1}
target=${2}
count=-1
read -p "Please enter source Amazon Redis password: "sourcepass
read -p "Enter your Vultr Managed Redis Database password: "vultrpass
while [[ "$count" -ne 0 ]]; do
if [["$count" -eq -1 ]]
then
count=0
fi
redis-cli -a -n
reply=$(redis-cli -h localhost 2000 -a "$sourcepass" -n "$source" SCAN "$count")
if [ -n "$reply" ]; then
echo "$reply" | tail -n +2 |
while IFS= read -r key; do
redis-cli -h localhost 2000 -a "$sourcepass" -n "$source" migrate localhost 4000 "$key" "$target" 4000 copy auth "$vultrpass" >/dev/null 2>&1
done
fi
count=$(expr "$reply" : '\([0-9]*[0-9]\)')
done
The above configurations use the Redis scan
and migrate
commands to process database keys, then migrate them to the target database. Upon execution, you should pass the source and target database by number, then enter the associated passwords when prompted.
Save and close the file.
Make the script executable.
$ sudo chmod +x ~/migrate-to-vultr.sh
Run the script to start migrating your Redis data.
$ ./~/migrate-to-vultr.sh 1 1
The script arguments 1
1
refer to your source and target databases, respectively.
Enter your source Redis password.
Enter your Vultr Managed Database for Redis password.
When complete, test that your Redis Database migration is successful.
Log in to your Vultr Redis Database.
$ redis-cli -h 127.0.0.1 -p 4000
Enter your Vultr Redis password.
> auth PASSWORD
Select your database.
> select 1
Scan keys stored in the database.
> scan 1
Verify that the data matches your source database.
Exit the Redis interface.
> exit
Depending on the applications using your source database, cut over requests to your new database by editing the application's configuration files. Please refer to your application's official documentation on how to edit your database connection settings.
In this article, you have migrated an AWS Redis database to a Vultr Managed Database. Depending on your database size, you can choose between the command line or graphical tools to safely migrate your database with no downtime to the applications using your database. For each migrated database, you can access logs and available databases through the Vultr customer portal. For more information about Vultr Managed Databases for Redis, see the Reference Guide.