Amazon ElastiCache for Redis introduces dynamic addition and removal of shards while continuing to serve workloads

Posted on: Nov 9, 2017

Amazon ElastiCache for Redis introduces Online Cluster Resizing to add and remove shards from a running cluster. You can now dynamically scale-out or scale-in your Redis cluster workloads to adapt to changes in demand. ElastiCache will resize the cluster and redistribute hash slots uniformly across the new shard configuration, all while the cluster continues to stay online and serve requests. Additionally, for optimized processing, you can also rebalance a cluster and uniformly distribute the slot space, without changing the number of shards.

Below are the key highlights of the announcement:

  • Right size and improve efficiency – By dynamically scaling-out and scaling-in a cluster, ElastiCache eliminates the need to overprovision clusters based on peak demand, allowing you to right size clusters, improve efficiency, and reduce costs.
  • Online experience – Cluster resizing in ElastiCache is designed to be a fully online experience which ensures availability, performance, durability and data consistency, throughout slot migration. 
    • Availability – Unlike open source Redis, ElastiCache cluster resizing is designed to run multi-threaded operations at the source shard, allowing slot migration to run on a separate thread from the main I/O thread. This allows ElastiCache to deliver a fully online experience and enables the cluster to serve incoming I/O requests while resizing is in progress. 
    • Redis command support – ElastiCache uses atomic slot migration instead of the atomic key migration used by open source Redis. When a key is migrated to the target shard, the source shard maintains a copy and retains ownership of the key, until the entire slot and all its keys are migrated. While this improves performance, it also allows you to benefit from full Redis API coverage, including operations such as multi-key commands, transactions, and LUA scripts.
    • No Client side changes needed – The enhanced slot distribution used in cluster resizing workflow is compliant with Redis cluster client behavior and does not require any application changes. ElastiCache retains cluster end points, enabling you to continue using existing clients without any changes.
  • Fully managed – ElastiCache provides a full-managed experience where you can initiate cluster resizing as a one-click workflow. Online Cluster Resizing is hardened for better performance, fault tolerance and robustness, eliminating any need for manual intervention to maintain data consistency and data durability. 
  • Integrated experience – Online Cluster Resizing comes with support for API, CLI and AWS Management Console, along with end-to-end monitoring and reporting, and familiar tagging capability.

These capabilities are available with the latest version, Amazon ElastiCache for Redis 3.2.10, at no additional charge, and maintain open source Redis compatibility.

To learn more, please read Jeff Barr’s blog or visit Amazon ElastiCache for Redis. To get started with just a few clicks, log into the AWS Management Console