Learning AWS Day by Day — Day 42 — Amazon ElastiCache

Saloni SinghSaloni Singh
2 min read

Exploring AWS !!

Day 42:

Amazon ElastiCache

Overview:
- same way as RDS is used to get managed Relational Database, ElastiCache is to get managed Redis or Memcached.
- Cache are in-memory database with really high performance low latency.
- Helps reduce load off of database for read intensive workloads.
- helps make your application stateless.
- AWS takes care of OS maintenance/patching, optimization. setup, configuration, monitoring, failure recovery and backups.
- Using ElastiCache involves heavy application code changes.

ElastiCache Solution Architecture — Database Cluster: - Application queries ElastiCache, if not available get from RDS and store in ElastiCache.
- Helps relieve load in RDS.
- Cache must’ve an invalidation strategy to make sure only most current data is used there.

ElastiCache Solution Architecture — User Session Store: - User logs into any of the application.
- The application writes session data into ElastiCache
- The user hits another instance of our application.
- The instance retrieves the data and user already logged in

Redis v/s Memcached:
Redis:

Multi-AZ with auto failover
Read replicas to scale reads and have high availability.
Data durability using AOF persistence.
Backup and restore.
Memcached:
Multi node for partitioning of data (sharding)
No high availability
Non persistent
No backups and restore
Multi-threaded architecture

ElastiCache for Solutions Architect — Cache Security
All caches in ElastiCache:

- Does not support IAM Authentication
- IAM Policies on ElastiCache are only used for AWS API level security
Redis AUTH:
- You can set password/token where you created Redis cluster
- This is extra level section for cache
Memcached:
- Supports SAS2-based authentication (advanced)

Patterns for ElastiCache:
- Lazy loading: all read data is cached, data can become stale in cache
- Write Through: add or update data in cache when written to database (no stale data)
- Session store: store temporary session data in cache (using TTL feature)
- Quote: there are only 2 hard things in computer science. Cache invalidation and naming things.

Redis Use Case:
Gaming leaderboards are computationally complex.
Redis sorted guarantee both uniqueness and element ordering.
Each time a new element is added, it is ranked in real time, then added in correct order.

Important Ports vs RDS Database Ports:
FTP: 21
SSH: 22
SFTP: 22
HTTP: 80
HTTPS: 443

PostgreSQL: 5432
MySQL: 3306
Oracle RDS: 1521
MSSQL Server: 1433
MariaDB: 3306
Aurora: (5432 if PostgreSQL compatible, 3306 if MySQL compatible)

0
Subscribe to my newsletter

Read articles from Saloni Singh directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Saloni Singh
Saloni Singh

• A Software Engineer with hands-on experience in AWS and Aws DevOps • Experience in CodePipeline using CodeCommit, CodeBuild and CodeDeploy • Experience with Terraform, Gitlab, Kubernetes, AWS DevOps, Helm charts, Golang, Python and NodeJS • Hands-on experience on AWS Migration projects including services - DMS, Glue, Aurora, Lambda, S3 • Possesses good knowledge on Bash Shell Scripting and Python Programming