Upgrading Engine Versions
You can control if and when the protocol-compliant software powering your cache cluster is upgraded to new versions that are supported by ElastiCache. This level of control enables you to maintain compatibility with specific Memcached or Redis versions, test new versions with your application before deploying in production, and perform version upgrades on your own terms and timelines.
Because version upgrades might involve some compatibility risk, they will not occur automatically and must be initiated by you.
You initiate version upgrades to your cluster or replication group by modifying it and specifying a new engine version. For more information, see Modifying an ElastiCache Cluster or Modifying a Cluster with Replicas.
You can upgrade to a newer engine version, but you can’t downgrade to an older engine version. If you want to use an older engine version, you must delete the existing cluster and create it anew with the older engine version.
Although engine version management functionality is intended to give you as much control as possible over how patching occurs, ElastiCache reserves the right to patch your cluster on your behalf in the unlikely event of a critical security vulnerability in the system or cache software.
Redis (cluster mode enabled) does not support changing engine versions.
ElastiCache does not support switching between cluster enabled and cluster disabled.
Important Notes on Memcached Engine Upgrades
Because the Memcached engine does not support persistence, Memcached engine version upgrades are always a disruptive process which clears all cache data in the cluster.
Important Notes on Redis Engine Upgrades
The Amazon ElastiCache engine upgrade process is designed to make a best effort to retain your existing data and requires successful Redis replication.
If you want to upgrade your engine from Redis 2.x to Redis 3.x you can do so, but you cannot upgrade from Redis (cluster mode disabled) to Redis (cluster mode enabled). To upgrade to Redis (cluster mode enabled), you must create a new Redis (cluster mode enabled) cluster which you can seed using a Redis (cluster mode disabled) snapshot as long as both the old and new clusters have the same number of shards (API/CLI: node groups).
For single Redis clusters and clusters with Multi-AZ disabled, we recommend that sufficient memory be made available to Redis as described in Ensuring You Have Sufficient Memory to Create a Redis Snapshot. Please note that in these cases, the primary will be unavailable to service requests during the upgrade process.
For Redis clusters with Multi-AZ enabled, in addition to the preceding, we also recommend scheduling engine upgrades during periods of low incoming write traffic. The primary will continue to be available to service requests during the upgrade process, except for a few minutes when a failover is initiated.
Blocked Redis Engine Upgrades
As shown in the following table, your Redis engine upgrade operation is blocked if you have a pending scale up operation.
|Pending Operations||Blocked Operations|
|Scale up||Immediate engine upgrade|
|Engine upgrade||Immediate scale up|
|Scale up and engine upgrade||Immediate scale up|
|Scale up and engine upgrade||Immediate engine upgrade|
To resolve a blocked engine upgrade, do one of the following
Schedule your Redis engine upgrade operation for the next maintenance window by clearing the Apply immediately check box (CLI use:
--no-apply-immediately, API use:
Wait until your next maintenance window (or after) to perform your Redis engine upgrade operation.
Add the Redis scale up operation to this cluster modification with the Apply Immediately check box selected (CLI use:
--apply-immediately, API use:
ApplyImmediately=true). (This effectively cancels the engine upgrade during the next maintenance window by performing it immediately.)
How to Upgrade Engine Versions
You initiate version upgrades to your cluster or replication group by modifying it using the ElastiCache console, the AWS CLI, or the ElastiCache API and specifying a newer engine version. For more information, see the following topics.
Remember, for Redis (cluster mode enabled) you cannot modify clusters or replication groups.
|Using the console||Modifying a Cluster (Console)||Modifying a Redis Cluster (Console)|
|Using the AWS CLI||Modifying a Cache Cluster (AWS CLI)||Modifying a Replication Group (AWS CLI)|
|Using the ElastiCache API||Modifying a Cache Cluster (ElastiCache API)||Modifying a Replication Group (ElastiCache API)|