Dash1 (noun) (11):
“a small quantity of anything thrown into or mixed with something else: a dash of salt.”
Yesterday AWS announced the newest addition to its ever-growing set of web services: ElastiCache with Redis. When a big-player like Amazon sees fit to embrace an open source technology, it is indeed good news for the community.
Naturally, we couldn’t resist reading all there is about the new service and taking it for a run. However, it turned out to be only a short and somewhat disappointing dash (”Dash1 (verb): (12) a hasty or sudden movement”, Dictionary.com):
It doesn’t scale out
Don’t be confused by AWS’s generously applied use of the term “Cluster” – you can only have a single Redis instance that’s as big as their EC2 instances (currently offered up to 68GB).
It doesn’t scale up
Redis does not “just scale” when you throw more memory at it. Above 25-30GB you actually need to work pretty hard to keep Redis and its replication working properly – more background in this post.
It is not persistent:
No AOF and snapshots for you!
It is unbackupable
(ok, that’s not a real word but neither is “undurable”)
See point 3 above. At least, you can import your existing Redis instance to ElastiCache.
[UPDATE] As of April 24th, 2014 you can have scheduled and on-demand snapshots of your database.
It doesn’t failover automatically
But you can do it manually – weren’t you just dying for extra responsibility?
[UPDATE] As of October 24th, 2014 failover does happen automatically, albeit “the entire failover process, from detection to the resumption of normal caching behavior, will take several minutes.”
It doesn’t make any performance guaranties
Smaller datasets will, naturally, use the smaller instances, so they are likely to meet some very noisy neighbors – more here.
It cannot be accessed from outside
Yep, that’s right – only a private IP address is provisioned, so if you want to access your Redis from anywhere but your AWS data region that’s gonna be tricky to do.
It is insecure
You can use security groups but you can’t set a Redis password… what’s the point of setting one if you can’t access your database from outside?… Oh right.
It is only one Redis database:
So if you need multiple Redis databases, you need to buy multiple ElastiCache instances – one for each. That probably makes sense to some people (those that sell the instances).
And lastly, it has the wrong name:
Elasticity means you don’t need to use (or pay for) an overprovisioned server. Unless your data is exactly the size of the AWS’s ElastiCache instances, that’s probably what you are going to do.
So it appears that AWS’s dash of Redis is indeed just that – a small and basic offer that ignores the real challenges you want addressed. Hey – if a little salt could fix any dish then everyone would be great cooks, right?
We do recommend that you look into other Redis services before committing to AWS’s ElastiCache.