tech.guitarrapc.cóm

Technical updates

AWS Redis on ElastiCache のBenchmark をしてみた

実は 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) の性能差

1. Redis on ElastiCache と EC2 Instance上のRedisの性能差

gist にまとめたのでどうぞ。

ElastiCacheBenchmark_rdb.md · GitHub

2. Redis on ElastiCache(AOFなし) と Redis on ElastiCache (AOF-everysec) の性能差

ElastiCacheBenchmark_aof.md · GitHub

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に移行を続けている