weblog of key_amb

主にIT関連の技術メモ

AWS ElastiCache Redis のイケてないところ ※2014/12/21 時点

CONFIG GET ができないとかいう制約があるのは別として、最近ハマって、他の人もハマりかねないだろうと思うことを書いておきます。

Cache Cluster のスペックアップができない

RDS のように作成した Cache Cluster のインスタンスタイプを変更することはできません。 AWSサポートに問い合わせても現時点ではできないという回答でした。

また、異なるインスタンスタイプのノードをレプリケーショングループに追加することもできないため、現時点でスペックアップしたい場合、新たな Cache Cluster を作成して手動でデータ移行と、アプリケーション側のエンドポイント切り替えを行う必要があります。

最近 Multi-AZ なクラスタ構成がサポートされたので、近い将来にはスペックアップ(インスタンスタイプ変更)もサポートされると期待したいものです。

Freeable Memory に OS の使用メモリも反映される

CloudWatch のメトリクスで見れる Freeable Memory ですが、Redis の used_memory の監視としては不適当です。

おそらくこの Freeable Memory は OS の空きメモリそのものであるため、OSのページキャッシュなどもこちらに反映されます。 公式ドキュメントには「The amount of free memory available on the host. 」と定義されています。

Host-Level Metrics - Amazon CloudWatch

CloudWatch のメトリクスに used_memory に相当するものはないので、監視したい場合は独自に行う必要があります。

(2015/4/27 追記)
Redis の used_memory に相当するメトリクスとしては、BytesUsedForCache があります。
ので、Freeable Memory でなくこちらを監視すればよいでしょう。

Metrics for Redis - Amazon CloudWatch

また、Evictions (=eviction 数) も取れるので、合わせて監視しておくとよさそうです。