Amazon ElastiCache for Redis Documentation

Amazon ElastiCache for Redis is a fast in-memory data store that provides extremely low latency to power internet-scale real-time applications. Built on open-source Redis and compatible with the Redis APIs, ElastiCache for Redis works with your Redis clients and uses the open Redis data format to store your data. Your self-managed Redis applications can work with ElastiCache for Redis without any code changes.  

Performance

Amazon ElastiCache for Redis works as an in-memory data store to support applications requiring sub-millisecond response times. In comparison to disk-based databases where most operations need a roundtrip to disk, in-memory data stores manage data in-memory which is an order of magnitude faster than disks. The result is extremely fast performance. ElastiCache gives you an optimized end-to-end hardware and software stack for fast performance. Amazon ElastiCache for Redis 7 now includes enhanced I/O multiplexing, which delivers significant improvements to throughput and latency at scale. Enhanced I/O multiplexing is useful for throughput-bound workloads with multiple client connections, and its benefits scale with the level of workload concurrency.

Security

Starting with Amazon ElastiCache for Redis 6, ElastiCache provides you with the ability to create and manage users and user groups that can be used to set up Role-Based Access Control (RBAC) for Redis commands. You can take advantage of granular access control to manage groups. You can use AWS Identity and Access Management (IAM) to connect to ElastiCache for Redis using IAM identities. ElastiCache for Redis supports Amazon VPC, so you can isolate your cluster to the IP ranges you choose for your nodes. The ElastiCache team continuously monitors for known security vulnerabilities in open-source Redis, operating system, and firmware to keep your Redis environment secure. It offers encryption in transit, at rest (including customer managed CMK stored in AWS KMS), and Redis AUTH for internode communications.

Managed

Amazon ElastiCache for Redis is a managed service. You don’t need to perform management tasks such as hardware provisioning, software patching, setup, configuration, monitoring, failure recovery, and backups. ElastiCache continuously monitors your clusters to keep your Redis up and running so that you can focus on higher value application development. It provides detailed monitoring metrics of your Redis usage, enabling you to track application trends and adjust cluster configuration, as needed. ElastiCache adds automatic write throttling, intelligent swap memory management, and failover enhancements to improve upon the availability and manageability of open source Redis.

Redis-Compatible

Redis is an in-memory data store for use as a database, cache, message broker, queue, session store, and leaderboard. Amazon ElastiCache for Redis maintains compatibility with the open source Redis data formats, Redis APIs, and works with Redis clients. You can migrate your self-managed Redis workloads to ElastiCache for Redis without any code change.

High availability and Disaster Recovery

Amazon ElastiCache for Redis supports both Redis cluster and non-cluster modes and provides high availability via support for automatic failover by detecting primary node failures and promoting a replica to be primary with minimal impact. It allows for read availability for your application by supporting read replicas (across availability zones), to enable the reads to be served when the primary is busy with the increased workload. ElastiCache for Redis supports enhanced failover logic to allow for automatic failover in cases when majority of the primary nodes for Redis cluster mode are unavailable. On Redis 5.0.5 onwards, auto-failover enabled clusters provide online configuration changes for all planned operations.

Scalable

With Amazon ElastiCache for Redis, you can start small and scale your Redis data as your application grows - all the way up to a cluster with 310 TiB of in-memory data, or 982 TiB when using clusters with data tiering. It is designed to allow you to scale your Redis Cluster environment up to 500 nodes and 500 shards. It is designed to support online cluster resizing to scale-out and scale-in your Redis clusters and adapt to changing demand. To scale read capacity, ElastiCache allows you to add up to five read replicas across multiple availability zones. To scale write capacity, ElastiCache supports Redis cluster mode which enables you to partition your write traffic across multiple primaries.

Global Datastore

Global Datastore in Amazon ElastiCache for Redis is designed to provide managed, fast, reliable and secure cross-region replication. Global Datastore is designed to enable you to write to your ElastiCache for Redis cluster in one region and have the data available to be read from two other cross-region replica clusters, thereby enabling low-latency reads and disaster recovery across regions.

Designed for real-time applications with a global footprint, Global Datastore for Redis supports low cross-region replication latency, increasing the responsiveness of your applications by providing geo-local reads closer to end users. In the unlikely event of regional degradation, you can promote one of the healthy cross-region replica clusters to become the primary cluster with full read/write capabilities. Once initiated, the promotion completes quickly, allowing your applications to remain available. Global Datastore uses encryption in-transit for cross-region data transfer traffic.

You can setup a Global Datastore by starting with an existing cluster, or by creating a new cluster to be used as a primary. You can create a Global Datastore in the AWS Management Console for ElastiCache, or by downloading the latest AWS SDK or CLI. Global Datastore is also supported on Amazon CloudFormation.

Write locally, read globally

Global Datastore is designed to enable you to write to your ElastiCache for Redis cluster in one region and have the data available to be read from two other cross-region replica clusters to enable low-latency local reads. Global Datastore is designed for low cross-region replication latency so your applications can enjoy quick data access across regions.

Cross-region Disaster Recovery

In the unlikely event of regional degradation, you can quickly promote one of the cross-region replica clusters in the Global Datastore to become the primary cluster with full read/write capabilities, allowing your applications to remain available.

Performance

Leverage Redis' low latency for local read/writes in primary region and local reads in secondary regions.  

Encryption

Global Datastore for Redis uses encryption in-transit for cross-region traffic. Additionally, you can encrypt your primary and secondary clusters using encryption at-rest. Each primary and secondary cluster can have a separate customer managed AWS KMS key in AWS Key Management Service (KMS) for encryption at rest.

Set-up

Global Datastore is designed to help you manage the complexity and operational burden of deploying, managing and replicating data in clusters across regions. You can set-up a Global Datastore by starting with an existing cluster, or by creating a new cluster to be used as primary. You can create a Global Datastore in the Amazon AWS ElastiCache Management Console for ElastiCache, or by downloading the latest AWS SDK or CLI.

Configuration changes

Global Datastore allows you to scale or upgrade regional clusters and is designed to ensure that all participating clusters are identically configured. You can add or remove regions from the Global Datastore, or promote a secondary region to become the primary. With any configuration change, Global Datastore is designed to ensure that cross-region replication is appropriately setup and all secondary clusters replicate data from the primary cluster.

Auto Scaling

Amazon ElastiCache for Redis is designed to provide managed, automatic scaling to maintain performance for your applications. It is designed to help you manage the complexity of managing cluster capacity for your workloads by allowing you to define resource requirements and scaling behaviors. ElastiCache will automatically scale your cluster based on these scaling plans, which can help you save on overall cloud spend by matching provisioned resources with changing capacity requirements.

Amazon ElastiCache for Redis uses AWS Auto Scaling to manage scaling and Amazon CloudWatch metrics to determine when it is time to scale up or down. ElastiCache offers two types of scaling. First, you can use dynamic scaling, which scales your cluster automatically to keep a target metric, like free memory capacity, steady while load on your cluster changes. This enables you to increase performance of clusters when needed and reduce consumption when resources aren’t required. Second, you can use scheduled scaling to determine days and times to scale to accommodate predictable workload capacity changes. 

Set up scaling

Amazon ElastiCache for Redis allows you to define auto scaling plans to define how your cluster scales. You can enable auto scaling on an existing or already running cluster. You can set up auto scaling in the AWS Management Console, or through the AWS SDK or CLI. ElastiCache uses AWS Auto Scaling to manage the scaling of your cluster. 

Scale for your specific application needs

When you set up auto scaling for Amazon ElastiCache for Redis, you apply a scaling policy based on predefined metrics, which enables you to optimize for your applications specific needs, whether that be performance or cost optimization. AWS Auto Scaling sets targets based on your preferences and monitors your application to add or remove capacity as your demand changes. 

Maintain performance

When your Amazon ElastiCache for Redis clusters exceed or fall below your target value, AWS Auto Scaling adjusts your scaling capacity.  This is designed to allow you to continue to meet your performance requirements even when your workloads continuously change or become unpredictable. When your demand spikes, AWS Auto Scaling increases your cluster capacity to help you maintain high performance.

Pay only for what you need

Amazon ElastiCache for Redis auto scaling helps you optimize cost efficiency. When demand drops, AWS Auto Scaling adjusts your clusters to help you avoid overprovisioning and overspending. Amazon ElastiCache for Redis auto scaling is free to use. 

Enhanced I/O Multiplexing

Amazon ElastiCache for Redis provides enhanced I/O multiplexing that improves throughput and latency at scale. Enhanced I/O multiplexing is useful for throughput-bound workloads with multiple client connections, and its benefits scale with the level of workload concurrency. For these types of workloads, a node’s network I/O processing can become a limiting factor in the ability to scale. With enhanced I/O multiplexing, each dedicated network I/O thread pipelines commands from multiple clients into the Redis engine, and takes advantage of Redis’ ability to efficiently process commands in batches.

Enhanced I/O multiplexing is available in all AWS regions when using Redis 7 . No application or service configuration changes are required to use ElastiCache for Redis enhanced I/O multiplexing. 

Additional Information

For additional information about service controls, security features and functionalities, including, as applicable, information about storing, retrieving, modifying, restricting, and deleting data, please see https://docs.aws.amazon.com/index.html. This additional information does not form part of the Documentation for purposes of the AWS Customer Agreement available at http://aws.amazon.com/agreement, or other agreement between you and AWS governing your use of AWS’s services.