Amazon ElastiCache is a web service that makes it easy to deploy, operate, and scale an in-memory cache in the cloud. The service improves the performance of web applications by allowing you to retrieve information from a fast, managed, in-memory caching system, instead of relying entirely on slower disk-based databases. Amazon ElastiCache is protocol-compliant with Memcached, a widely adopted memory object caching system, so code, applications, and popular tools that you use today with existing Memcached environments will work seamlessly with the service.
Amazon ElastiCache simplifies and offloads the management, monitoring, and operation of in-memory cache environments, enabling you to focus on the differentiating parts of your applications. Play the video below for a quick overview of the service and to learn how to get started.
Easy to sign up, pay only for what you use
Using Amazon ElastiCache, you can add an in-memory cache to your application architecture in a matter of minutes. With a few clicks of the AWS Management Console, you can launch a Cache Cluster consisting of a collection of Cache Nodes, each running Memcached software. You can then scale the amount of memory associated with your Cache Cluster in minutes by adding or deleting Cache Nodes to meet the demands of your changing workload. In addition, Amazon ElastiCache automatically detects and replaces failed Cache Nodes, providing a resilient system that mitigates the risk of overloaded databases, which slow website and application load times. Through integration with Amazon CloudWatch, Amazon ElastiCache provides enhanced visibility into key performance metrics associated with your Cache Nodes.
This page contains the following categories of information. Click to jump down:
Amazon ElastiCache gives you access to the capabilities of a familiar Memcached compatible caching environment.
To use Amazon ElastiCache, you simply:
Use the AWS Management Console or Amazon ElastiCache APIs to launch a Cache Cluster selecting a Cache Cluster Name, Cache Node Type and Number of Nodes that best meets your needs.
Connect to your Cache Nodes using your favorite Memcached clients or programming language. Since Amazon ElastiCache is Memcached compatible, your code and most clients should work unmodified.
Get detailed monitoring statistics of your Cache Nodes for no additional charge via Amazon CloudWatch (you will find these in the Amazon ElasticCache tab of the AWS Management Console).
If at any point you need additional capacity, you can add more Cache Nodes to your Cache Cluster with a few clicks of the console or a simple API call.
Pay only for the resources you actually consume, based on your Cache Node hours used.
Simple to Deploy Amazon ElastiCache makes it very easy to deploy a Memcached compliant cache environment. Use the AWS Management Console or simple API calls to access the capabilities of a production-ready Cache Cluster in minutes without worrying about infrastructure provisioning, or installing and maintaining cache software.
Managed Amazon ElastiCache automates time-consuming management tasks --such as patch management, failure detection and recovery-- allowing you to pursue higher value application development.
Compatible With Amazon ElastiCache, you get native access to a Memcached environment. This facilitates compatibility with your existing tools and applications. In addition, Amazon ElastiCache gives you optional control over which supported Memcached version powers your Cache Cluster via Cache Engine Version Management.
Elastic With a simple API call or a few clicks of the AWS Management Console, you can add or delete Cache Nodes to your Cache Cluster to meet your application load. Auto Discovery enables automatic discovery of Cache Nodes by ElastiCache Clients when the nodes are added to or removed from an Amazon ElastiCache Cluster.
Reliable Amazon ElastiCache has multiple features that enhance reliability for critical production deployments, including automatic failure detection and recovery. Amazon ElastiCache runs on the same highly reliable infrastructure used by other Amazon Web Services.
Designed for use with other Amazon Web Services Amazon ElastiCache is designed for use with other Amazon Web Services, including Amazon Relational Database Service (Amazon RDS), Amazon SimpleDB, Amazon Elastic Compute Cloud (Amazon EC2), Amazon CloudWatch, and Amazon Simple Notification Service (Amazon SNS). For example, an application running in Amazon EC2 can securely connect and experience low-latency access to an Amazon ElastiCache Cluster in the same Region. Additionally, by using Amazon CloudWatch, you can get detailed monitoring statistics of a number of metrics such as cache hits and cache misses, at no extra charge. You can also set up your application to use Amazon SNS and receive e-mail notifications for key events such as failure recovery of Amazon ElastiCache Nodes.
Secure Amazon ElastiCache provides a number of mechanisms to secure your Cache Cluster.
Amazon ElastiCache provides web service interfaces that allow you to configure firewall settings that control network access to your Cache Cluster.
Amazon ElastiCache allows you to run your Cache Cluster in Amazon Virtual Private Cloud (Amazon VPC). Amazon VPC enables you to isolate your Cache Cluster by specifying the IP ranges you wish to use for your Cache Nodes, and connect to your existing applications inside Amazon VPC. To learn more about Amazon ElastiCache in VPC, refer to the Amazon ElastiCache User Guide.
Cost Effective Amazon ElastiCache saves you the administrative cost of setting up and managing a multi-node Cache Cluster. You can scale up and scale down the number of Cache Nodes in your Cache Cluster to deliver optimum performance as your application usage pattern changes, paying only for the resources you actually consume. The on-demand pricing allows you to pay for memory/compute capacity by the hour with no long-term commitments. This makes the use of Amazon ElastiCache very cost effective and frees you from the costs and complexities of planning, purchasing, and maintaining hardware.
Pre-configured Parameters Amazon ElastiCache Nodes are pre-configured with a sensible set of parameters and settings appropriate for the Node Type you have selected. You can simply launch a Memcached Cluster and connect your application within minutes without additional configuration. If you desire additional control, you can achieve it via Cache Parameter Groups.
Automatic failure detection and recovery Amazon ElastiCache monitors the health of your Cache Clusters and automatically replaces your Cache Nodes in the event of network partitioning, host hardware or software failure. The replaced Cache Nodes are designed to have the same DNS name as the failed Cache Nodes, avoiding the need for client-side refresh of end-point lists.
Detailed Monitoring and Metrics Amazon ElastiCache provides detailed Amazon CloudWatch metrics for your Memcached deployments at no additional charge. You can use the AWS Management Console to view key operational metrics for your Cache Nodes, including memory/compute capacity utilization, cache hits, cache misses, and number of cache connections.
Automatic Software Patching Amazon ElastiCache updates the cache software powering your deployment with the latest patches. You can control when and if your Cache Clusters are patched via Cache Engine Version Management.
Push-Button Scaling Using a few clicks of the AWS Management Console or a simple API call, you can scale the memory resources powering your deployment in minutes by adding or deleting Cache Nodes. Auto Discovery enables automatic discovery of Cache Nodes by ElastiCache Clients when the Cache Nodes in your deployment change.
Amazon ElastiCache currently supports the following Cache Node Types:
Micro
Micro Cache Node (cache.t1.micro): 213 MB memory, Up to 2 ECU (for short periodic bursts), 64-bit platform, Low I/O Capacity
Standard
Small Cache Node (cache.m1.small): 1.3 GB memory, 1 ECU (1 virtual core with 1 ECU), 64-bit platform, Moderate I/O Capacity
Medium Cache Node (cache.m1.medium): 3.35 GB memory, 2 ECU (1 virtual core with 2 ECUs), 64-bit platform, Moderate I/O Capacity
Large Cache Node (cache.m1.large): 7.1 GB memory, 4 ECUs (2 virtual cores with 2 ECUs each), 64-bit platform, High I/O Capacity
Extra Large Cache Node (cache.m1.xlarge): 14.6 GB of memory, 8 ECUs (4 virtual cores with 2 ECUs each), 64-bit platform, High I/O Capacity
Enhanced
Extra Large Cache Node (cache.m3.xlarge): 14.6 GB memory, 13 ECUs (4 virtual cores with 3.25 ECUs each), 64-bit platform, Moderate I/O Capacity
Double Extra Large Cache Node (cache.m3.2xlarge): 29.6 GB memory, 26 ECUs (8 virtual cores with 3.25 ECUs each), 64-bit platform, High I/O Capacity
High-Memory
High-Memory Extra Large Cache Node (cache.m2.xlarge): 16.7 GB memory, 6.5 ECU (2 virtual cores with 3.25 ECUs each), 64-bit platform, High I/O Capacity
High-Memory Double Extra Large Cache Node (cache.m2.2xlarge): 33.8 GB memory, 13 ECUs (4 virtual cores with 3.25 ECUs each), 64-bit platform, High I/O Capacity
High-Memory Quadruple Extra Large Cache Node (cache.m2.4xlarge): 68 GB memory, 26 ECUs (8 virtual cores with 3.25 ECUs each), 64-bit platform, High I/O Capacity
High-CPU
High-CPU Extra Large Cache Node (cache.c1.xlarge): 6.6 GB memory, 26 ECUs (8 virtual cores with 2.5 EC2 Compute Units each), 64-bit platform, High I/O Capacity
Note: Each Cache Node Type above lists the memory available to Memcached after taking System Software overhead into account.
One ECU provides the equivalent CPU capacity of a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor.
Get Started with Amazon ElastiCache for Free If you are new to Amazon ElastiCache, you can get started for free.
Pay only for what you use. There is no minimum fee. Estimate your
monthly bill using
the AWS
Simple Monthly Calculator.
On-Demand Cache Nodes
On-Demand Cache Nodes let you pay for cache capacity by the hour
your Cache Node runs with no long-term commitments. This frees you
from the costs and complexities of planning, purchasing, and
maintaining hardware and transforms what are commonly large fixed
costs into much smaller variable costs.
Pricing is per Cache
Node-hour consumed, from the time a Cache Node is launched
until it is terminated. Each partial Cache Node-hour consumed will
be billed as a full hour.
Reserved Cache Nodes
With Reserved Cache Nodes, you can make a low, one-time, up-front
payment for each Cache Node you wish to reserve for a 1 or 3 year
term. In return, you receive a significant discount off the ongoing
hourly usage rate for the Cache Node(s) you reserve. Amazon ElastiCache provides three Reserved Cache Node types (Light, Medium, and Heavy Utilization Reserved Cache Nodes) that enable you to balance the amount you pay upfront with your effective hourly price. To learn more about Reserved Cache Nodes, please visit
our Reserved Cache Nodes page.
Light Utilization Reserved Cache Nodes
Medium Utilization Reserved Cache Nodes
Heavy Utilization Reserved Cache Nodes
Data Transfer
Amazon ElastiCache provides strong network level security by allowing access/data transfer only from or to the Amazon EC2 Instances you define as part of your Cache Security Groups.
There is no charge for data transfer between Amazon EC2 and Amazon ElastiCache within the same Availability Zone.
While standard Amazon EC2 Regional Data Transfer charges of $0.01 per
GB in/out apply when transferring data between an Amazon EC2
instance and an Amazon ElastiCache Node in different Availability Zones
of the same Region, you are only charged for the Data Transfer in or
out of the Amazon EC2 instance. There is no Amazon ElastiCache Data
Transfer charge for traffic in or out of the Amazon ElastiCache Node
itself.
As part of AWS’s Free Usage Tier, new AWS customers will receive free 15 GB of data transfer out each month aggregated across all AWS services for one year.
No charge for delete requests of Standard or RRS objects. For objects that are archived to Glacier, there is a pro-rated charge of $0.03 per gigabyte for objects deleted prior to 90 days. Learn more.
Glacier is designed with the expectation that restores are infrequent and unusual, and data will be stored for extended periods of time. You can restore up to 5% of your average monthly Glacier storage (pro-rated daily) for free each month. If you choose to restore more than this amount of data in a month, you are charged a restore fee starting at $0.01 per gigabyte. Learn more.
No charge for delete requests of Standard or RRS objects. For objects that are archived to Glacier, there is a pro-rated charge of $0.033 per gigabyte for objects deleted prior to 90 days. Learn more.
Glacier is designed with the expectation that restores are infrequent and unusual, and data will be stored for extended periods of time. You can restore up to 5% of your average monthly Glacier storage (pro-rated daily) for free each month. If you choose to restore more than this amount of data in a month, you are charged a restore fee starting at $0.011 per gigabyte. Learn more.
No charge for delete requests of Standard or RRS objects. For objects that are archived to Glacier, there is a pro-rated charge of $0.036 per gigabyte for objects deleted prior to 90 days. Learn more.
Glacier is designed with the expectation that restores are infrequent and unusual, and data will be stored for extended periods of time. You can restore up to 5% of your average monthly Glacier storage (pro-rated daily) for free each month. If you choose to restore more than this amount of data in a month, you are charged a restore fee starting at $0.012 per gigabyte. Learn more.
No charge for delete requests of Standard or RRS objects.
Amazon ElastiCache can be used to significantly improve latency and throughput for many read-heavy application workloads (such as social networking, gaming, media sharing and Q&A; portals) or compute-intensive workloads (such as a recommendation engine). Caching improves application performance by storing critical pieces of data in memory for low-latency access. Cached information may include the results of I/O-intensive database queries or the results of computationally-intensive calculations.
Working with Amazon ElastiCache
Amazon ElastiCache allows you to use the AWS Management Console or a simple set of web services APIs to create, delete and modify Cache Clusters. A Cache Cluster is a logical collection of Cache Nodes, each running Memcached software. You can control access and security for your Cache Cluster(s) using Cache Security Groups and tune your deployments using Cache Parameter Groups.
Easily port your existing applications
If your application already relies on Memcached, you can easily port it to take advantage of Amazon ElastiCache with the following steps:
First, create a Cache Cluster with a Cache Node Type and a Number of Cache Nodes that match your existing configuration.
Second, configure a Cache Security Group to allow access to your Cache Cluster from your Amazon EC2 Instances (or application servers).
Third, get the details of the endpoints (or DNS Names) of your Cache Nodes created in the first step. You can do so by visiting the Amazon ElastiCache tab of the AWS Management Console and then navigating to the “Nodes” screen corresponding to your Cache Cluster, and clicking on the “Copy Node Endpoints” button. Alternatively, you can also use the Amazon ElastiCache DescribeCacheClusters API.
Fourth, configure your Amazon EC2 Instances to access the Cache Cluster by updating the Memcached configuration file of your client libraries to include the endpoints retrieved in the previous step.
As with any migration process, we recommend thorough testing of your new Amazon ElastiCache deployment before completing the cut over from your current solution.
Paying for What You Use
You will be charged at the end of each month for the Amazon ElastiCache resources you consumed. Once a Cache Node is deployed, you will be charged for each hour it is running (for example, $0.095/hour for a Small Cache Node). Each Cache Node will run until termination, which occurs when you delete the Cache Node or the associated Cache Cluster. Partial hours consumed are billed as full hours.
Getting Started
You can easily get started with Amazon ElastiCache by viewing a quick demo created by AWS Evangelist Simone Brunozzi or reviewing the Getting Started Guide. Once you are ready to create your own Cache Cluster(s) and start building applications, you can use the AWS Management Console or Amazon ElastiCache APIs to launch a Cache Cluster in minutes.
By default, you are allowed to have up to a total of 20 Amazon ElastiCache Nodes per customer account. If you wish to run more Cache Nodes, please complete the ElastiCache Limit Increase Request form and we will promptly respond to your request.
Setting up redundant Cache Clusters in different Availability Zones
Amazon ElastiCache monitors the health of your Cache Nodes and replaces them in the event of network partitioning, host hardware or software failure. However, given the ephemeral nature of a cache, Cache Node replacements begin empty (also called “cold”), and depending on your workload pattern, may take some time to be re-populated with data (also called “warming up”). Additionally, the auto-replacement functionality provided by Amazon ElastiCache is restricted to a single Availability Zone. If your application is sensitive to the failure recovery or the “warm up” time of Cache Nodes, or you want enhanced fault-tolerance for Availability Zone level failures, you may wish to deploy redundant ElastiCache Clusters in different Availability Zones.
One of the ways to manage data redundancy is to have your application apply all cache writes to Cache Nodes across these Availability Zones. If one or more of your Cache Nodes in the primary Availability Zone fails, you could direct reads to the corresponding Cache Node(s) in the secondary Availability Zone while Amazon ElastiCache restores the Cache Node(s) in the primary Availability Zone.