ElastiCache Redisを使用していて、AOFを後から追加したい!ってなった場合、パラメータグループを操作する必要があります。
この時に、Redisに再起動が掛かるのか不安になりましたので、検証しました。
もし仮に再起動が掛かると、AOFファイルからデータ復旧しようとするので、いま格納されているデータが消えてしまいます。
なので、検証方法を以下の手順で試してみます。
- AOF無しのElasitCacheRedisを作成
- 幾つかデータを格納する
- AOF有りのパラメータグループを作成
- AOF有りのパラメータグループを設定
- データが入っているか確認
結論
先に結論から行くと再起動しません。よかったね。
バックアップウィンドを追加しても再起動しませんでした。
EC2上にRedisを構築したときは、AOFを途中から有りにする場合は、手順を間違うとAOFからデータ吸いだしてしまい、
データが消えてしまいます。
この辺りはAWSが良しなにしてくれているみたいです。
AOF無しのElasitCacheRedisを作成
m1.smallでRedis 2.8で構築。
パラメータグループはdefault.redis2.8を設定。
幾つかデータを格納する
まずEC2にRedisをインストールする。
こちらの記事を参考にしてサクっと入れました。あざす!
AWS EC2にredisをインストールする
データを格納
$ redis-cli -h ********.apne1.cache.amazonaws.com
*****.apne1.cache.amazonaws.com:6379> set mykey myvalue
OK
*****.apne1.cache.amazonaws.com:6379> get mykey
"myvalue"
*****.apne1.cache.amazonaws.com:6379> set myhoge myhoge
OK
********.apne1.cache.amazonaws.com:6379> get myhoge
"myhoge"
※当たり前ですがこの状態でリブートかけると、↑で入れたデータはきれいさっぱり消えました。
AOF有りのパラメータグループを作成
Create Cache Parameter Groupから新しいグループを作成。
appendonlyの項目をyesに変更。これでおkです。
AOF有りのパラメータグループを設定
さきほど作成したパラメータグループをmodifyして、設定。
この時にstatusがmodifyになり、チェックボックスがグルグルになります。
データが入っているか確認
$ redis-cli -h ********.apne1.cache.amazonaws.com
*****.apne1.cache.amazonaws.com:6379> get mykey
"myvalue"
********.apne1.cache.amazonaws.com:6379> get myhoge
"myhoge"
おk!ちゃんとデータが入ってますね。
この状態で再起動しても、ちゃんとデータは残っていますので、安心。
ちなみにCache EventにはUpdated to use a CacheParameterGroup 【パラメータグループ名】となっていました。
こう思った
途中でパラメータグループを変更することが無かったので、気になって検証しました。
これで再起動して、AOFから復旧されたらたまったもんじゃないので^^;
最近では、Multi-AZ対応も入ったようなので、ますます便利になってきました。以前はスレーブも無かったので、EC2にRedisを入れて、それをスレーブとしてました。ちょっと懐かしいです。