如何备份AWS Elasticache Redis数据?

Win*_*eld 7 amazon-web-services redis amazon-elasticache

我正在AWS Elasticache Redis中测试新的Redis集群(AWS Large主/从节点).

如何从Redis群集备份或导出数据?

其他托管的redis服务会自动创建Redis RDB转储文件并将其存储在S3上.我想和ElastiCache做类似的事情.

Win*_*eld 16

编辑:截至2014年4月24日的新AWS功能

自4/24起,亚马逊已添加内部备份支持. 这允许您每天快照redis数据并将其还原到ElastiCache群集.它目前不允许导出/下载.如果要保留自己的redis数据存档/备份,仍然需要以下解决方案.

大多数人应该能够使用现在可用的内置备份系统.

原始答案

看起来这样做的唯一方法是执行以下操作.

  • 启动新的EC2实例
  • 安装Redis
  • 配置连接到ElastiCache redis primary的本地副本
  • 等待数据在本地同步
  • 发出redis SAVE命令以生成本地转储
  • dump.rdb在S3上存档本地

我喜欢更简单的解决方案或ElastiCache内置的东西.

编辑:精化

我最终使用Ruby gem /实用程序"redis-backup"(https://github.com/josegonzalez/ruby-redis-backup)和运行以下shell命令的crontab 构建了这个:

sudo -u redis /usr/bin/env S3_SAVE=true redis-backup -s /var/lib/redis/dump.rdb -B YOUR_S3_BUCKET_FOR_BACKUPS -A S3_ACCESS_KEY_ID -S S3_ACCESS_SECRET_KEY
Run Code Online (Sandbox Code Playgroud)