Table of Contents
AWS ElastiCache
Caching, as we all know is a technique of storing the frequently accessed data at a temporary location on the server, which, if not accessed for a given amount of time is then lost.
AWS ElastiCache is caching service available on AWS Cloud. Amazon ElastiCache improves the performance of web applications by allowing you to retrieve information from a fast, managed, in-memory system, instead of relying entirely on slower disk-based databases. It provides a high-performance, scalable, and cost-effective caching solution with lower complexity as compared to deploying a distributed caching solution.
Few of the Benefits Associated with ElastiCache:
- AWS ElastiCache Supports Clustered Configurations, hence it can automatically detects and replaces the failed nodes, providing a resilient system that mitigates the risk of overloaded databases, which slow website and application load times.
- AWS ElastiCache can be integrated with the AWS Cloud Watch service that will further help to monitor the key performance metrics on your EC2 nodes.
- Flexible Availability Zone placement of nodes and clusters.
- Amazon ElastiCache can scale easily to meet fluctuating application demands.
Related – Launching AWS EC2 Instance
Amazon ElastiCache Offers two caching Engines
- Memcached
- Redis
Before we dive into details of the Caching engines, we must be aware of the two terminologies as below:
ElastiCache nodes are a building blocks of AWS ElastiCache which are nothing but network attached RAM with each node having its own DNS name and port.
ElastiCache Cluster is a grouping of ElastiCache Nodes.
Next, let us dive into the details of the two caching engines.
AWS Memcached Cache
If an ElastiCache Cluster comprises of memcached nodes, then the nodes can be spread across different availability zones to achieve high-availability.
Memcached supports up to 100 nodes per customer for each AWS Region with each cluster having 1–20 nodes. You partition your data across the nodes in a Memcached cluster.The latest version of Memcached supported in ElastiCache is 1.4.24. A Memcached cluster has multiple nodes whose cached data is horizontally partitioned across each node. Each of the nodes in the cluster is capable of read and write.
Each node in a Memcached cluster has its own endpoint. The cluster also has an endpoint called the configuration endpoint. If you enable Auto Discovery and connect to the configuration endpoint, your application automatically knows each node endpoint, even after adding or removing nodes from the cluster.
Use Cases of Memcached
Following are the few cases where we would consider using Memcached Engine:
- Need the simplest data model possible to store Key-Value pairs.
- Need to run large nodes with multiple cores or threads
- Need the ability to scale out and in, adding and removing nodes as demand on your system increases and decreases.
- Need to cache objects, such as a database.
AWS Redis Cache
AWS Redis Cache is a newer technology of ElastiCache and often considered as a superset of Memcached. That means AWS Redis Cache offers more and performs better than Memcached. Amazon ElastiCache supports Redis 2.8.23 and lower. Redis-2.8.6 and higher is a significant step up because a Redis cluster on version 2.8.6 or higher will have Multi-AZ enabled. Upgrading is a non-disruptive process and the cache data is retained.
A Redis cluster has only one node, which is the master node. Redis clusters do not support data partitioning. Rather, there are up to five replication nodes in-replication groups which are read-only. They maintain copies from the master node which is the only writeable node. The data are copied asynchronously to the read-replicas, and read requests are spread across read-replica clusters. Having multiple read replicas in different AZs enables high availability.
Redis cluster supports backup and restore processes. It is useful when you want to create a new cluster from existing cluster data.
Use Cases of Memcached
Following are the few cases where we would consider using AWS Redis Cache Engine:
- Need to store complex data types, such as strings, hashes, lists, sets, sorted sets, and bitmaps.
- Need to sort or rank in-memory datasets.
- Need persistence of your key store.
- Need to replicate your data from the primary to one or more read replicas for read intensive applications
- Need automatic failover if your primary node fails.
- Need automatic failover if your primary node fails.
- Need backup and restore capabilities.
- Need to support multiple databases.
Conclusion
AWS ElastiCache is a caching solution which renders high performance, gives scalability, and is very cost-effective. The two flavors of elasticache are Memcached and Redis.
ABOUT THE AUTHOR
I am here to share my knowledge and experience in the field of networking with the goal being – “The more you share, the more you learn.”
I am a biotechnologist by qualification and a Network Enthusiast by interest. I developed interest in networking being in the company of a passionate Network Professional, my husband.
I am a strong believer of the fact that “learning is a constant process of discovering yourself.”
– Rashmi Bhardwaj (Author/Editor)