AWS Elasticache Redis

Amazon ElastiCache for Redis is a blazing fast in-memory data store that provides sub-millisecond latency to power internet-scale real-time applications.

View Source Code
Deployments

64

Made by

Massdriver

Official

Yes

No

Compliance

aws-elasticache-redis

Amazon ElastiCache for Redis is a blazing fast in-memory key-value database providing sub-millisecond latency to power internet-scale real-time applications. As a fully managed AWS service, Elasticache gives you the power of Redis without the headache of high-touch server management, patching, backups, etc. Elasticache for Redis offers robust rollover protection and disaster recovery workflows in the case of failures. Whether you’re a small startup or a large enterprise, Elasticache can scale with your business, offering small 500MB instances up to hundreds of Terabyte clusters and the ability to resize online without downtime or data loss.

Use Cases

Amazon ElastiCache for Redis is an excellent choice for real-time transactional and analytical processing use-cases across various application industries, generalized services types, and custom-built application integrations.

Caching

Reduce the load on your existing relational or NoSQL database while improving query performance by using Redis to cache query results.

Session Store

Redis works great as a session store for web applications to manage user authentication and session information, automatically terminating sessions after an appropriate TTL

Chat & Messaging

PUB/SUB standard with pattern matching is fully supported, allowing applications to trigger actions based upon these events. Great for chat and message applications

Gaming Leaderboards

Creating leaderboards is a breeze using Redis’s “Sorted Sets” data structure.

Geospatial

Redis offers in-memory data structures that allow applications to manage real-time geographical details such as drive time, drive distance, estimated arrival time, points of interest, and other real-time geographical information.

Queues

Build lightweight, persistent queues with ease using Redis. Great for applications that require a reliable message broker or circular list.

Configuration Presets

Free Tier

A small, single-instance cluster that falls under AWS’s free tier plan. Use this if you’re trying out the product or building a proof of concept. This tier is discouraged from production use due to the lack of high availability.

Highly Available

A small multi-instance cluster (master and read-replica) that offers high availability. Great for most staging and production use cases; just choose the proper instance size for your use case.

Sharded Cluster

This type is a multi-instance, multi-node-group cluster that can scale massively by sharding data across multiple node-groups that act as a single cluster. Consider using this configuration if you expect your redis data to scale beyond a single node group.

Design

High Availability

Elasticache offers high availability in two ways: replication and clustering. Replication achieves high availability by replicating your data to one or more “read replicas”. This allows you to spread your read operations across multiple instances to increase read capacity. Write operations still must go through the primary node. In the event of a failure of the primary node, Elasticache will automatically promote a read replica to primary, minimizing downtime and preventing data loss.

Clustering is when two or more server nodes are woven together into a grouped unit to share data via “sharding”. Sharding allows Redis to split data across multiple instances so that every instance will only contain a subset of the keys. This allows Redis to scale massively to handle terabytes of data while still providing high availability in an outage. However, most use cases don’t require this degree of scale.

For most use cases, cluster mode can be left disabled, and your data can be stored in a single node group with primary and read replicas, which still offers high availability.

This bundle offers both clustering options to clients in order to empower them to build appropriately configured resources for their projects.

Best Practices

Below are some of the benefits of Massdriver’s Elasticache for Redis bundle.

Automated Patches

Stay up to date with the latest feature and bug fixes with automated minor version updates.

Automated Snapshots

Snapshots are taken daily, as well as upon cluster deletion, making disaster recovery a breeze.

Distribute Replicas

Read replicas spread across availability zones to offer high availability in the event of zonal failures through read replicas.

Security

Leverage Redis’s feature-rich security options - granular user access controls, support for Amazon VPC, real-time vulnerability monitoring, and Redis AUTH communication that meets strict compliance requirements.

Automated Security Patches

Your cluster will stay up to date on with the latest security patches.

Network Security

Elasticache will be deployed into your network’s private or internal subnets to prevent access from the internet. Firewall rules are automated to prevent access from anything but connected bundles.

Authentication

Auth tokens and TLS encryption are enabled by default to protect your data.

Observability

By default, clusters will be created with alarms at key performance degradation or failure thresholds. You will be notified when memory crosses 90% or CPU crosses 90% usage on any instance in the cluster.

Trade-offs

Once provisioned, changing ‘Cluster-Mode Enabled’ is a non-trivial effort. It cannot be disabled without recreating the instance, which will incur full data loss. Currently, we do not support complex or specific implementation settings such as:

  • Data tiering
  • Specific availability zone placement
VariableTypeDescription
cluster_mode_enabledbooleanCluster mode allows you to scale your cluster horizontally across multiple node groups. This is useful at massive scale (beyond limits of vertical scaling). NOTE: this setting cannot be changed after cluster creation.
node_groupsintegerNumber of node groups (shards) in the cluster. Each node group will have a primary node and the number of read replicas specified above.
node_typestringAWS node type to use for the cluster
redis_versionstringMajor Redis version to use
replicasintegerNumber of read replicas per node group. Each node group will have a single primary instace, and 0 to 5 read replicas. If you would like automatic fail-over for high-availability, you need at least 1 replica.
securebooleanEnabling this will auto-generate an auth token (password) and enable TLS encrypted client connections. NOTE: this setting cannot be changed after cluster creation.
subnet_typestringDeploy Redis to internal subnets (cannot reach the internet) or private subnets (internet egress traffic allowed)