Introduction to Amazon
ElastiCache for Redis
Omer Zaki, Sr. Product Manager, AWS
Pravin Muthukumar, Business Development Manager, AWS
Dimensions for categorizing data stores
• Persistence – In Memory vs Strongly Durable
• Data Model – Key Value vs Document Model vs Relational
• Scalability – None vs Scale up vs Scale out
Redis is a popular key-value store
• High speed, in-memory, key-value data store
• Optional durability (persistence via snapshot or
append only file)
• Supports pub/sub functionality
Redis is a popular key-value store
• Supports advanced data structures (in addition
to strings) – Lists of strings
– Sets of strings (collection of non-repeating unsorted elements)
– Sorted Sets (collections of non-repeating elements ordered by
a floating-point number called score)
– Hashes where keys and values are strings
Elastic Load
Balancing EC2 App
Instances
MySQL DB
Instance
ElastiCache
for Redis
Database Writes
App
Reads
Clients
Cache
Updates
Use Redis to accelerate your application
Database Reads
Introducing ElastiCache for Redis
• Managed Redis service
• Use existing clients
• Pay as you go
• Available in all public AWS regions at launch
Benefits of a managed service
Easy to Deploy
Deploy master-slave(s)
configuration with a few button clicks or
API calls
Easy to Migrate
Compatible with Redis
Existing code will work when you
update node end points
Easy to Administer
ElastiCache automatically
replaces failed nodes and patches software as needed
CloudWatch enables you to monitor cache performance
metrics
Easy to Secure
Supports VPC and Security Group configurations
Key features
• All Redis commands supported except slave
and backup commands
• Redis version 2.6.13
• Ability to create Redis nodes inside VPC
environment
• Support for Lua scripting
• Support for pub/sub e.g. Resque
Key features
• Managed Redis experience – Console, API, and CLI options to create and manage Redis nodes
– Monitoring and node replacement
– CloudWatch metrics
– Support several instance types at launch: t1.micro, m1.small, m1.medium, m1.large, m1.XL, m2.XL, m2.2XL, m2.4XL, C1.XL
• Replication – Master-slave(s) configuration
• High Availability – Multi-AZ support
– Assisted failover: Console and API options to select best slave node for promotion to master during failover event
• Backup and DR – Ability to connect external slave to master for backup and DR
– Ability to seed an ElastiCache for Redis master node from external snapshot
Where is ElastiCache Redis used?
• Gaming
• Social
• Media & Entertainment
• Mobile
• Ad Tech
• Many more…
• Auto-scaling front end
• Amazon ElastiCache
• Amazon RDS
• Amazon S3
• Amazon CloudFront
Sample deployment: Gaming
ZADD leaderboard 556 “Andy” ZADD leaderboard 819 “Barry” ZADD leaderboard 105 “Carl” ZADD leaderboard 1312 “Derek”
ZREVRANGE leaderboard 0 -1 1) “Derek” 2) “Barry” 3) “Andy” 4) “Carl”
Design Patterns
• Cache
• Leaderboards
• High Speed Sorting
• Atomic Counters
• Queuing Systems
• Activity Streams
Some things to watch out for with Redis
• Whole dataset must fit in memory
• Soft Persistence
• Single Threaded
• Some datatypes cannot scale out
• No Transactions
Setup Instructions: Master Node
Setup Instructions: Master Node
Setup Instructions: Master Node
Setup Instructions: Master Node
Setup Instructions: Replication Group
Setup Instructions: Replication Group
Setup instructions: Read Replica
Setup instructions: Read Replica
Promoting a Read Replica to Master Node
Promoting a Read Replica to Master Node
Free tier: 750 hours of Micro Cache Node per
Month
Pay as little as $0.022 per hour thereafter
for a T1.micro node
You can get started for free
Amazon
ElastiCache for
Redis
Quick Review:
• Managed Redis service
• Support for Replication
• Easy migration
• Rich Use Cases
For More Information:
• ElastiCache for Redis Detail Page and Docs:
http://aws.amazon.com/documentation/elasticache/
• Getting Started:
http://docs.aws.amazon.com/AmazonElastiCache/latest/U
serGuide/GettingStarted.html
Any Questions?