{Redis}外部で作成されたバックアップで新しいクラスタのシード

https://www.sraoss.co.jp/tech-blog/redis/redis-persistdata/

-- 1. redis-cliのインストール

sudo yum -y install openssl-devel gcc
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make distclean
make redis-cli BUILD_TLS=yes
sudo install -m 755 src/redis-cli /usr/local/bin/

redis-cli --version


-- 2. Redisインストール

amazon-linux-extras list | grep redis
sudo amazon-linux-extras install redis6 -y
redis-server -v
sudo cat /etc/redis/redis.conf | grep -Ev '^#|^$'

sudo vim /etc/redis/redis.conf

#bind 127.0.0.1 -::1
bind 192.0.2.1

sudo systemctl restart redis

-- 3. テストデータ作成
redis-cli -h 192.0.2.1 -p 6379

set x XXX
set y YYY
set z ZZZ
get x
get y
get z


-- 4. Redis バックアップを作成する

redis-cli -h 192.0.2.1 -p 6379

bgsave
lastsave

sudo ls -l /var/lib/redis/dump.rdb
sudo cp /var/lib/redis/dump.rdb ~ec2-user
cd
redis-check-rdb dump.rdb


-- 5. S3バケット作成

aws s3 mb s3://bucket123
aws s3 ls

-- 6. バックアップをS3にアップロードする

aws s3 cp dump.rdb s3://bucket123/redis01/
aws s3 ls s3://bucket123 --recursive --human-readable


-- 7. S3オブジェクトACLの設定


aws s3api get-object-acl \
--bucket bucket123 \
--key redis01/dump.rdb


aws s3api put-object-acl \
--bucket bucket123 \
--key redis01/dump.rdb \
--grant-read id=540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353 \
--grant-read-acp id=540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353 \
--grant-full-control id=9999999999999999999999999999999999999999999999999999999999999999

 

-- 8. クラスターの作成

aws elasticache create-replication-group \
--replication-group-id redis01 \
--replication-group-description "redis01" \
--num-cache-clusters 2 \
--cache-node-type cache.t3.micro \
--cache-parameter-group default.redis6.x \
--engine redis \
--engine-version 6.x \
--multi-az-enabled \
--snapshot-arns arn:aws:s3:::bucket123/redis01/dump.rdb


-- 9. クラスターの詳細の表示

aws elasticache describe-replication-groups
aws elasticache describe-replication-groups --replication-group-id redis01

aws elasticache describe-cache-clusters --cache-cluster-id redis01-001
aws elasticache describe-cache-clusters --cache-cluster-id redis01-001 --show-cache-node-info

aws elasticache describe-cache-clusters --cache-cluster-id redis01-002
aws elasticache describe-cache-clusters --cache-cluster-id redis01-002 --show-cache-node-info


-- 10. データ確認

redis-cli -h redis01.xxxxxx.ng.0001.apne1.cache.amazonaws.com -p 6379

get x
get y
get z

-- 11. クリーンアップ

-- クラスターの削除

aws elasticache delete-replication-group \
--replication-group-id redis01 \
--no-retain-primary-cluster


-- バケット一覧
aws s3 ls

-- バケット削除
aws s3 rb s3://bucket123 --force