AWS ElastiCache のエラーから Redis の永続化について調べた

きっかけ

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 処理が発生するので, ある程度のパフォーマンスが出るインスタンスでないと

安定した挙動が確保できないからだろう(と予測).

参考

docs.aws.amazon.com

Redis の永続化 — Redis Documentation (Japanese Translation)