Article

Table of Contents
Theme:
Was this article helpful?
Try Vultr Today with

$50 Free on Us!

Want to contribute?

You could earn up to $600 by adding new articles.

How to Migrate Redis from AWS to a Vultr Managed Database

Author: Humphrey Mpairwe

Last Updated: Wed, Jan 4, 2023
Managed Databases Redis

Introduction

This 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.

Prerequisites

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.

Migrate Redis

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.

  1. Open and edit your stunnel configuration file.

      $ sudo nano /etc/stunnel/stunnel.conf
    
  2. 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.

  3. Using redis-cli, access your source Redis database server.

     $ redis-cli -h 127.0.0.1 -p 2000
    

    Enter the Redis password.

     > auth PASSWORD
    
  4. Select the database you intend to migrate.

     > select 1
    
  5. Make a database snapshot to save a backup before migration.

     > save
    
  6. Exit the Redis interface.

     > exit
    
  7. Create a new bash file, for example migrate-to-vultr.sh.

     $ touch ~/migrate-to-vultr.sh
    
  8. Open and edit the file using a text editor of your choice.

     $ nano ~/migrate-to-vultr.sh
    
  9. 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.

  10. Make the script executable.

     $ sudo chmod +x ~/migrate-to-vultr.sh
    
  11. 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.

Test the Migration

  1. Log in to your Vultr Redis Database.

     $ redis-cli -h 127.0.0.1 -p 4000
    

    Enter your Vultr Redis password.

     > auth PASSWORD
    
  2. Select your database.

     > select 1
    
  3. Scan keys stored in the database.

     > scan 1
    

    Verify that the data matches your source database.

  4. 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. 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.

Want to contribute?

You could earn up to $600 by adding new articles.