使用Redis-Shake迁移AWS Elasticache Redis到火山引擎Redis操作指南

数据迁移与工具数据库
前言:

Redis作为最常用的内存数据库,在现代化应用中扮演着举足轻重的角色,同时随着云计算的普及云上应用常常使用托管的Redis服务。当需要迁移云上的应用时,Redis云服务的迁移也是非常重要的一环,云服务厂商的Redis服务源数据库并未开放 sync 或 psync 复制权限,无法通过常用的数据库传输服务进行Redis数据迁移。

redis-shake 是一款开源的 Redis 数据迁移工具,可以通过 Redis 数据库中的 RDB 备份文件实现离线数据恢复或将源 Redis 数据库全量离线迁移至目标 Redis 数据库中。本方案采用开源的redis-shake工具,把AWS云上的Elasticache Redis集群中的数据迁移到火山引擎Redis服务中。

picture.image

1、Redis源&目标资源准备
  • Redis源数据库 :AWS Elasticache Redis 4.0 cache.t3.small 1分片2节点实例。

picture.image

  • Redis目标数据库:火山引擎 Redis 5.0集群版实例, 1GiB * 2分片 * 2节点规格。

picture.image

2、部署redis-shake迁移工具
  • 在火山引擎上创建一台ECS云服务器,参考配置可以使用4C8G 系统盘 40GiB centos 7.6 并绑定公网EIP

picture.image

  • 从Github上下载redis-shake组件,若下载速度比较慢,可以使用如下链接
    wget https://nanshan-bucket.tos-cn-beijing.volces.com/Software%2Fredis-shake-v2.0.3.tar.gz
    
  • redis-shake具体配置方式参考官网指导 https://www.volcengine.com/docs/6293/78099
3. 导出AWS Elasticache Redis RDB备份文件
  1. 在AWS创建要备份Redis RDB备份文件的 S3存储桶,也可以复用现有S3存储桶。

  2. 设置S3存储桶的访问权限使得Elasticache Redis服务可以将备份文件导出到存储桶中

    1. 设置存储桶屏蔽公共访问权限

    picture.image

    1. 存储桶的ACL访问控制列表中新增一个被授权实体 540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353 的并赋予对象和存储桶的读写权限。

picture.image

  1. 在Elasticache控制台中备份Redis数据

picture.image

  1. Elasticache控制台上将刚刚备份的Redis RDB文件复制到创建的S3存储桶中

picture.image 详细操作步骤可参考AWS官方文档 https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-procedures

4、Redis-Shake导入RDB文件到火山引擎Redis服务
  1. 将存储桶中的RDB备份文件导入到部署redis-shake的火山引擎ECS中

    1. 方式一(建议):将AWS S3存储桶中的Redis RDB文件生成一个预签名url地址,在火山引擎的ECS中用wget 预签名url命令公网下载

    picture.image

    1. 方式二:将AWS S3存储桶中的Redis RDB文件设置为公共读,在火山引擎的ECS中用wget url命令公网下载备份文件。

    2. 方式三:对存放RDB文件的存储桶设置一个 AKSK访问密钥,在火山引擎ECS上安装AWS CLI工具,配置AKSK后使用AWS S3 CP命令公网下载备份文件。

    3. 方式四:将AWS S3存储桶中的RDB文件导入到AWS EC2中,火山ECS使用rsync命令通过VPN下载AWS EC2中的备份文件。

    4. 方式五:通过火山引擎DMS服务把S3存储桶中的RDB文件导入到火山TOS存储桶中,火山ECS从TOS存储桶中下载备份文件。

  2. 修改redis-shake.conf配置文件 由于本次是导入,所以只修改了该文件下以下项

source.rdb.input = /opt/rdb_file/newback-0001.rdb  //备份文件在ECS盘中的文件路径
target.address = address  :  port    //填写火山引擎redis服务的访问域名和端口
target.password_raw = xxxxx
  1. 执行redis-shake命令恢复数据
 ./redis-shake.linux -type=restore -conf=redis-shake.conf

picture.image


以上为使用redis-share工具迁移AWS Elasticache Redis数据的操作步骤,除了AWS上的Redis服务外其他公有云上的Redis服务也可以参考以上步骤进行跨云迁移。

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论