きっかけ
AWS ElastiCache で Redis のクラスタを作成したときに, 以下の警告文がイベントに出力されていて気になった.
This cache cluster does not support persistence (ex: 'appendonly'). Please use a different instance type to enable persistence.
「現在のクラスタでは永続化がサポートされていないので, 別のインスタンスを使おう」
環境
- AWS ElastiCache
- Redis 3.2.10
- ノードのインスタンスタイプ: cache.t2.small
AOF とは?
Redis の AOF (Append-Only File) 機能を有効にすることができます。この機能を有効にすると、キャッシュノードは、キャッシュデータを変更するすべてのコマンドを Append-Only File に書き込みます。
MySQL でいう Binary Log, PostgreSQL でいう WAL Log.
Redis サーバが受けた全てのコマンドが記録されており, サーバ起動時にログからコマンドが実行され元のデータが再構築される.
結論
今回の警告の原因はスペック不足.
AOF (Append Only File) は、cache.t1.micro ノードおよび cache.t2* ノードではサポートされません。
AOF では I/O 処理が発生するので, ある程度のパフォーマンスが出るインスタンスでないと
安定した挙動が確保できないからだろう(と予測).