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を入れて、それをスレーブとしてました。ちょっと懐かしいです。