Due to popular demand, earlier this week we made available new Multiple Availability Zones plans for Redis Cloud and Memcached Cloud instances in the AWS eu-west data region. These new plans, like our existing Multi AZ plans in the us-east, offer superior resilience against failures of an entire zone by transparently failing over to a healthy zone when required.
All of our plans feature built-in replication that ensures the availability of the Redis and Memcached service in the event of a single server failure. In the Multi AZ plans these replicas are kept in different availability zones, thus eliminating the risk of downtime due to an entire zone failure.
Zone failures, although hopefully rare, are still real enough that critical applications must be able to survive them. Setting up an application to run off multiple availability zones is a relatively simple task given the stateless nature of modern application servers. Generally speaking, all that’s usually needed to zone-ify an application are two instances of the application server in different zones and a load balancer to direct the traffic. However, it is almost infinitely harder to do the same for any kind of datastore, since a datastore – by nature – keeps a state (i.e. its data) and that state has to be available in all availability zones.
Replication is a text-book solution to the challenge of setting up that kind of distributed datastore, but implementing it effectively is somewhat of a holy grail for the industry. The effectiveness of replication is extremely susceptible to factors that are external to the datastore itself, including its rate of changes and network performance. As we worked to develop a reliable replication mechanism between availability zones, we focused extensively ensuring data consistency, optimizing inter-zone traffic, keeping gaps to a minimum and distinguishing between different types of network failures.
If your application needs to stay up when zones go down, you should try out our Multi AZ plans in the eu-west and us-east AWS data regions. Never worry again that your Redis and Memcached instances might become unavailable!