実は Redis on ElastiCacheに関しては、先月2013年9月5日に AWSからリリースされてから、すぐにベンチマークをとっていました。
が、記事にするのを忘れていたという、いつもの有様です。
さて、Redis on ElastiCacheに関しては、他にも既にいくつかのベンチマーク記事があります。
今回は、EC2で Redisを実際に高トラフィックで使っている立場から、EC2とRedis on Elastic Cacheを比較したベンチマークを公開します。(他の記事とは違いm2.4xlargeベースの検証です)
目次
- 目次
- 検証項目
- 1. Redis on ElastiCache と EC2 Instance上のRedisの性能差
- 2. Redis on ElastiCache(AOFなし) と Redis on ElastiCache (AOF-everysec) の性能差
- Redis on ElastiCacheの利点
- Redis on ElastiCacheの課題
検証項目
以下を検証します。
- Redis on ElastiCache と EC2 Instance上のRedisの性能差
- Redis on ElastiCache(AOFなし) と Redis on ElastiCache (AOF-everysec) の性能差
1. Redis on ElastiCache と EC2 Instance上のRedisの性能差
gist にまとめたのでどうぞ。
2. Redis on ElastiCache(AOFなし) と Redis on ElastiCache (AOF-everysec) の性能差
Redis on ElastiCacheの利点
性能としては悪くないですし、Slave の昇格が容易 かつ MultiAZ が結構マネージドに作れる点で Redis ElastiCacheは非常に優れています。
その他にも数多くの利点があります。
- Linux チューニング不要
EC2 InstanceのAWS Linuxをチューニングした結果にも劣らず性能を発揮していることから、Linux側のチューニングが不要なのは運用コストからメリットと言えます。
- AOF によるRDBより堅牢なデータ保持も視野に
Redis on ElastiCache AOF自体は、EC2上のRedisのはずなので、ElastiCacheだからこそのメリットとも言えないでしょうが、EC2上に自身で構築、管理するよりも圧倒的に容易なのは事実です。
この点から、AOFを Latency面から躊躇していた場合でも、一歩踏み切るきっかけになります。 *1
- Redis Parameterの限定
これはメリットともデメリットとも言えます。 RDS同様、設定可能なパラメータ、コマンドが限られているので、運用においては両面に働くでしょう。
Redis on ElastiCacheの課題
また、以前あった課題も解決しました。
- bgsave なども使えないため、バックアップウィンドウ以外に任意のバックアップができない。
安全のため、EC2上にRedisを構築し、ElastiCacheのRedisマスタのスレーブになって、データをレプリケーション実施しEC2上でRDBを取得するという方法がAWSからも推奨されています。
それがなくても、任意で BGSAVE が実行可能になったので問題ないでしょう。
*1:今後のRedisはAOFに移行を続けている