环境背景:
将弗吉尼亚北部us-east-1上的redis集群迁移到新加坡ap-southeast-1上
操作步骤:
第一步:创建 ElastiCache for Redis 集群的 ElastiCache 备份
第二步:在两个账户与 Redis 集群相同的 AWS 区域中创建 Amazon Simple Storage Service(S3)存储桶
1.在S3控制台中点击创建存储桶
2.为S3存储桶命名、启用ACL和启用存储桶版本控制,其余保持默认创建存储桶。在另外一个账户用相同的步骤也创建一个S3桶。
第三步:授予 ElastiCache 对 S3 存储桶的访问权限。
1.进入桶内点击权限,编辑存储桶策略
将一下内容复制进去并把中文所诉的内容替换成自己的信息
{
"Version": "2012-10-17",
"Id": "Policy15397346",
"Statement": [
{
"Sid": "Stmt15399483",
"Effect": "Allow",
"Principal": {
"Service": "elasticache.amazonaws.com"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::S3桶名",
"arn:aws:s3:::S3桶名/*"
]
},
{
"Sid": "Stmt15399484",
"Effect": "Allow",
"Principal": {
"Service": "redis集群所在地区.elasticache-snapshot.amazonaws.com"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::S3桶名",
"arn:aws:s3:::S3桶名/*"
]
}
]
}
2.编辑访问控制列表(ACL)
540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353使用以下选项添加被授权者的规范 ID :
对象:列表、写入
存储桶 ACL:读取、写入
第四步:将 ElastiCache 备份导出到 S3 存储桶。
给新备份命名,选择与redis集群同地区的S3桶
导出完成后可以看到三个.rdb文件,因为我们的redis集群有三个节点。选中这三个.rbd文件,点击操作→复制
填入要传输目标地区新加坡创建的名字,点击复制即可。
完成后可以在新加坡的桶里看到备份文件,然后像第三步一样授予 ElastiCache 对 S3 存储桶的访问权限即可
第五步:通过使用 .rdb 文件进行集群播种来创建 ElastiCache for Redis 集群
1.在新加坡地区创建一个redis集群
创建的时候去复制.rdb文件的路径一会用的到
部署选项可以按照实际需求,创建方法选择从备份恢复。备份源选择其他备份,将刚才复制的文件路径复制进去s3://redisre25/cjbtest2s3-0001.rdb 去掉前面的s3://。因为集群有多个.rdb文件,这些路径之间使用逗号隔开
选择开启集群模式,剩下配置根据实际配置即可
创建的时候,可以在控制台左侧导航中的事件,查看日志信息。如果有报错看到参考下面这个链接去处理
解决 ElastiCache 集群恢复错误 | AWS re:Post
第五步:连接验证
这里使用 redis-cli 连接,下面是官方文档教学链接
src/redis-cli -c -h redis终端节点 -p 6379