aws中国导出redis到s3

aws中国导出redis到s3

摘要

aws中国导出redis到s3

bug说明

2016年11月24日发的ticket

s3已经添加  b14d6a125bdf69854ed8ef2e71d8a20b7c490f252229b806e514966e490b8d83
但是redis 备份界面点击copy时并没有列出bucket列表,而是报错了

The provided token is malformed or otherwise invalid. (Service: Amazon S3; Status Code: 400; Error Code: InvalidToken; Request ID: AC49441342551722)

官方回复

您好! 感谢您联系我们。 

根据您在案例中提供的信息,分析如下: 

问题描述:

Elasticache 备份不能 copy 

分析过程:

您好,非常抱歉,关于使用console做备份,这是一个bug,我们后台部门正在尝试修正。如果您已经按照下面的文档设置了权限

http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/UserGuide/Snapshots.Exporting.html#Snapshots.Exporting.CLI

可以先尝试使用CLI的方式做备份就没有问题了,如下:

aws elasticache copy-snapshot --source-snapshot-name ec-backup --target-snapshot-name my-exported-backup  --target-bucket ec.backup

解决方案:

网页控制台的bug已经提交到后台,修复后会第一时间通知您。非常抱歉给您带来的困扰。

此致 (Best Regards),

dongaws

注意

先对redis进行备份—>Backups,也就是生成快照
然后才能对快照导出到S3

S3 bucket要设置权限
参考 http://docs.amazonaws.cn/en_us/aws/latest/userguide/elasticache.html

grantee=b14d6a125bdf69854ed8ef2e71d8a20b7c490f252229b806e514966e490b8d83
选中List,Upload/Delete,View Permissions

导出快照备份到S3

比如

aws elasticache copy-snapshot \
    --source-snapshot-name msgchk-20161223\
    --target-snapshot-name msgchk-20161223 \
    --target-bucket redisbak

去s3下载下来文件rdb文件

类似文件名 msgchk-20161223-0001.rdb

本地恢复

127.0.0.1:6379> CONFIG GET dir
1) "dir"
2) "/var/lib/redis/6379"

找到快照存放的位置 : /var/lib/redis/6379

先关闭redis
然后复制快照到dir文件夹
cp msgchk-20161223-0001.rdb /var/lib/redis/6379/dump.rdb
再启动redis

keys * 看一下,是不是数据都恢复了 ?

版本说明: 我本地的redis版本是3.2.5, 生成快照的redis版本是2.8.21