Amazon ElastiCache for Redis: Backup and Restore
Dan Zamansky, Sr. Product Manager, AWS
Agenda
• Overview of Caching
• ElastiCache for Redis
• Use Cases
• Design Patterns
• Backup and Restore
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
ElastiCache for Redis
• Managed Redis service
• Use existing clients
• Pay as you go
• Available in all public AWS regions since launch
Benefits of a managed service
Cost Effective Solution
On Demand Pricing RI Pricing (Heavy Utilization)
Instance
Type
EC2
Cost
ElastiCache
Cost
Difference EC2
Cost
ElastiCache
Cost
Difference
M1.large $126 $163 $37 $71 $92 $21
M2.xlarge $177 $217 $40 $69 $89 $20
Cost of running ElastiCache vs. a self-managed cache on EC2 (per month):
Key features
• Compatibility with Redis engine
• Versions 2.6.13 and 2.8.6. supported
• Ability to create Redis nodes inside VPC
environment
• Support for Lua scripting
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 backup your Redis data through Backup and Restore
– Ability to seed an ElastiCache for Redis master node from both internal and external snapshots
So just how fast is Redis?
• We created a test application that can work with or
without ElastiCache Redis in front of RDS database. – After adding ElastiCache, latency was cut by 8x and throughput jumped by 6x.
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
Redis Data Protection and Persistence
Replication
• Master-Slave configuration
• Asynchronous (few seconds lag)
• Assisted Failover
AOF
• Logs writes received by server, thus can be used to reconstruct the dataset.
• A parameter that can be turned on and off easily
Backup
• Cluster-level snapshot
• Can be used for seeding Redis clusters
• Provides scaling up/down capability
Redis Backup and Restore
• Create snapshots of Redis clusters via few clicks on the
console
• Create automatic or manual snapshots
• Use snapshots for data persistence, archiving and scaling – Can pre-seed larger or smaller sizes of Redis clusters, delivering scaling up/down
capability
Backup and Restore - Best Practices
• Backup the slaves, not the master
• As a rule of thumb, filling less than 50% of the cluster
should ensure no swap.
– Use “reserved-memory” parameter to mitigate swap
• Backup and Restore isn’t supported on t1.micro
• Set backup window for a low utilization period (especially
low on writes)
Setup Instructions: ElastiCache for Redis Cluster
Setup Instructions: ElastiCache for Redis Cluster
Setup Instructions: ElastiCache for Redis Cluster
Setup Instructions: ElastiCache for Redis Cluster
Setup instructions: Backup and Restore
Setup instructions: Backup and Restore
Free tier: 750 hours of Micro Cache Node per Month
Pay as little as $0.022 per hour thereafter
for a T1.micro node
We just made a 30% price drop in April, making
ElastiCache even more affordable.
You can get started for free
Amazon
ElastiCache for
Redis
Quick Review:
• Managed Redis service
• Easy migration
• Rich Use Cases
• Backup and Restore
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?