How to Migrate Redis® from AWS to a Vultr Managed Database
Introduction
This guide explains how you can migrate your AWS Cloud Database to Vultr with minimal downtime to the source database applications. Vultr Managed Databases for Caching offers reduced costs, easy management and backups, scheduled updates, quick scaling, straightforward monitoring, and automated failover to replica nodes in case of database failures.
Prerequisites
Before your start:
- Verify that your source AWS Cloud Database accepts connections from any source
0.0.0.0/0
. - Deploy Vultr Managed Database for Caching with the same size as your AWS database.
Migrate Redis®
This section explains how you can migrate Redis® data from your Elastic Cache for Redis® database to a Vultr Managed Database for Caching. 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 Managed Database for Caching.
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
andmigrate
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 Caching password. When complete, test that your Redis® Database migration is successful.
Test the Migration
Log in to your Vultr Managed Database for Caching Database.
$ redis-cli -h 127.0.0.1 -p 4000
Enter the 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
Update Applications
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.
Conclusion
In this article, you have migrated an AWS Redis® database to a Vultr Managed Database for Caching. 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 Caching, see the Reference Guide.