Background
last week we had a major outage, we identified the bottle neck to be redis number of connections:
Our quick fix was to scale redis from cache.m4.4xlarge to chache.m4.10xlarge (vertical scaling)
However this scaling is quite expensive:
we would like to scale horizontally: Unfortunately, the application code we are using now only allows us to either create a redis cluster with multiple shards, or using a single shard with multiple replicas (see discussion here).
Question
considering that our bottle neck is the connection limit, would it be getter to scale by clustering and increasing the shard number, or by having a single shard and replicating it?