Tried a new “Amazon ElastiCache Flexible Node Placement” model – Multi-AZ deployment of a cache cluster

2014.08.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

This post is the translation of "【ElastiCache】memcachedのMulti-AZ配置(ゾーンをまたいだノード分散配置)が来ました!!!".

I've got a post on Facebook "Amazon ElastiCache Flexible Node Placement" last night and excited on it!

It announced that we can deploy an ElastiCache Memcached cluster with putting nodes across over multiple Availability Zones (AZ). Formerly, a memcached cluster must be placed in only one AZ.

So, let's get tried the new model "Flexible Node Placement"!

Launching a new cache cluster

Now take a look at a screen to launch a ElastiCache cluster with memcached engine.

We can see a change on the choices in "Preference Zone".

choose_az

Spread Nodes Across Zones

Let's choose the new choice "Spread Nodes Across Zones".

Next, select a subnet group, which was prepared with including subnets on multiple AZs.

スクリーンショット 2014-07-31 2.41.50

Then, AWS launches a number of nodes properly spanning to multiple AZs defined in the subnet group.

Specify Zones

If you want to launch nodes in a single AZ as same as before, select "Specify Zones" and set a number of nodes in a specific zone.

スクリーンショット 2014-07-31 3.27.31

Now we got it!

Finaly we have got a cache cluster with nodes distributed in multiple AZs. We can prepare for a critical failure like a AZ is totally unavailable.

スクリーンショット 2014-07-31 2.47.53

Add Nodes

We can also select zones to place a node whet adding nodes to a cluster. Let's have a look.

スクリーンショット 2014-07-31 2.47.53

Spread Nodes Across Zones

When choosing "Spread Nodes Across Zones", AWS seems to manage on which AZ a node to be launched. The subnet group have to include multiple AZs.

スクリーンショット 2014-07-31 3.22.35

Specify Zones

As same as launching a new cluster, choosing "Specify Zones" allows us how many nodes to be added to the specific zones.

スクリーンショット 2014-07-31 3.01.37

Summary

Formerly, a cluster had to be placed in a single AZ, thus to keep high availability, we have to a design like following;
- launching clusters in each AZ
- application write (put) data to both clusters
- and application use a cluster placed in the same zone to read (get) data

With a new model "Flexible Node Placement", we can avoid an AZ failure leading a lost of the entire cache cluster with a cache cluster distributed in multiple AZs.

Of course, we can still choose the former model, that a cache cluster is placed in a single AZ.

Let's enjoy