Amazon ElastiCache Update – Export Redis Snapshots to Amazon S3
Amazon ElastiCache supports the popular Memcached and Redis in-memory caching engines. While Memcached is generally used to cache results from a slower, disk-based database, Redis is used as a fast, persistent key-value store. It uses replicas and failover to support high availability, and natively supports the use of structured values.
Today I am going to focus on a helpful new feature that will be of interest to Redis users. You already have the ability to create snapshots of a running Cache Cluster. These snapshots serve as a persistent backup, and can be used to create a new Cache Cluster that is already loaded with data and ready to go. As a reminder, here’s how you create a snapshot of a Cache Cluster:
You can now export your Redis snapshots to an S3 bucket. The bucket must be in the same Region as the snapshot and you need to grant ElastiCache the proper permissions (List, Upload/Delete, and View Permissions) on it. We envision several uses for this feature:
Disaster Recovery – You can copy the snapshot to another environment for safekeeping.
Analysis – You can dissect and analyze the snapshot in order to understand usage patterns.
Seeding – You can use the snapshot to seed a fresh Redis Cache Cluster in another Region.
Exporting a Snapshot
To export a snapshot, simply locate it, select it, and click on Copy Snapshot:
Verify the permissions on the bucket (read Exporting Your Snapshot to learn more):
Then enter a name and select the desired bucket:
ElastiCache will export the snapshot and it will appear in the bucket:
The file is a standard Redis RDB file, and can be used as such.
You can also exercise this same functionality from your own code or via the command line. Your code can call
CopySnapshot while specifying the target S3 bucket. Your scripts can use the
This feature is available now and you can start using it today! There’s no charge for the export; you’ll pay the usual S3 storage charges.