Amazon ElastiCache is a fully managed, Redis- and Memcached-compatible service that delivers real-time, cost-optimized performance for modern applications. ElastiCache speeds up database and application performance, scaling to hundreds of millions of operations per second with microsecond response time. ElastiCache offers enhanced security, reliability, scalability, and performance when compared to open source alternatives.

You can quickly get started with ElastiCache by using our serverless option, which removes the need to plan, provision, and manage cache cluster capacity. Amazon ElastiCache Serverless instantly scales to accommodate your workload as your memory, compute, and network throughput requirements change. With ElastiCache Serverless, you pay for data stored in GiB-hours and the compute used by your application workload in ElastiCache Processing Units (ECPUs).

You can also design an ElastiCache cluster by selecting the ElastiCache node type and number of nodes. When doing so, you are charged hourly per node. ElastiCache supports both on-demand nodes, which require no commitment, and reserved nodes, which provide discounts for customers who commit to either one-year or three-year terms. Learn more about how to pick between ElastiCache Serverless and designing your own ElastiCache cluster.

You could also incur costs associated with backup storage, data transfer within or across Regions, or use of AWS Outposts.

AWS Pricing Calculator

AWS Pricing Calculator for ElastiCache

Pay only for what you use with no minimum fee. Calculate your ElastiCache and architecture cost in a single estimate based on locations, data transfer amounts, number of requests, and more. Create your custom estimate for using ElastiCache now »

AWS Free Tier

As part of the AWS Free Tier, you can get started with ElastiCache for free. Upon sign-up, new AWS customers receive 750 hours of ElastiCache cache.t2.micro or cache.t3.micro node usage for free for up to 12 months.

There is no ElastiCache data transfer charge for traffic in or out of the ElastiCache node itself. As part of the AWS Free Tier, new AWS customers will receive 15 GiB of free data transfer out each month aggregated across all AWS services for one year.

The AWS Free Tier applies to participating services across our global Regions. Your free usage under the AWS Free Tier is calculated each month across all Regions and automatically applied to your bill. Free usage does not accumulate. The AWS Free Tier is not available in the AWS GovCloud (US) Regions or the China (Beijing) Region at this time.

Note: The AWS Free Tier is not currently available with ElastiCache Serverless.

Serverless

Key Terms

Data stored: You pay for data stored in ElastiCache Serverless billed in gigabyte-hours (GB-hrs). ElastiCache Serverless continuously monitors the amount of data stored in your cache, sampling multiple times per minute, and calculates an hourly average to determine the cache’s data storage usage in GB-hrs. Each ElastiCache Serverless cache is metered for a minimum of 1 GB of data stored.

ElastiCache Processing Units (ECPUs): You pay for ElastiCache Serverless requests in ElastiCache Processing Units (ECPUs), a unit that includes both vCPU time and data transferred. Reads and writes require 1 ECPU for each kilobyte (KB) of data transferred. For example, a GET command that transfers 3.2 KB of data will consume 3.2 ECPUs. Commands that require additional vCPU time or transfer more than 1 KB of data will consume proportionally more ECPUs.

Minimum metered data storage: 1 GB per cache.

Region

On-demand nodes

You can design your own ElastiCache cluster by choosing a cache node type and the number of cache nodes. A node is the smallest building block of an ElastiCache cluster. In general, the current-generation types provide more memory and computational power at lower cost when compared to their equivalent previous-generation node types. For information on which node size to use, see supported node types and choosing your node size.

Using on-demand nodes allows you to pay for memory capacity by the hour with no long-term commitments. When using on-demand nodes, you are billed hourly from the time a node is launched until it is terminated. Each partial node-hour consumed will be billed as a full hour.

Region

Data tiering

Nodes with data tiering use solid state drives (SSD) to automatically optimize the costs of your ElastiCache clusters by moving the least frequently used items from memory to SSD. Data stored on SSD exhibits slightly higher latency and lower throughput compared to data stored in memory.

Amazon ElastiCache for Redis nodes with data tiering are ideal for workloads that regularly access up to 20% of their data and for applications that can tolerate additional latency the first time a less-frequently accessed item is needed.

ElastiCache R6gd nodes with memory and SSD have nearly 5x more total storage capacity, and can help you achieve over 60% cost savings when running at maximum use compared to ElastiCache R6g nodes with memory only. See Example 6 below for an explanation of how data tiering can reduce your costs.

Note: Data tiering is not available with ElastiCache Serverless.

Reserved nodes

ElastiCache reserved nodes or instances (RIs) provide a significant discount off the ongoing hourly usage rate for the node(s) you reserve in one-year or three-year terms. With reserved nodes, you can choose to:

• Pay low hourly charges with no upfront payment
• Make a one-time, partial upfront payment with lower hourly charges
• Pay all upfront for even lower hourly charges

Reserved node pricing is also available for cluster nodes using data tiering. To learn more, visit our ElastiCache reserved node documentation.

Note: Reserved nodes are not available with ElastiCache Serverless.

Reserved node plans for ElastiCache

* RI monthly fees are the average monthly payment over the course of the Reserved Instance term. For each month, depending on the ElastiCache instance type you run, the actual monthly payment will equal the actual number of hours in that month multiplied by the hourly usage rate, or the number of seconds in that month multiplied by the hourly usage rate divided by 3,600. The hourly usage rate is equivalent to the total average monthly payments over the term of the Reserved Instance divided by the total number of hours (based on a 365-day year) over the term of the Reserved Instance.

** RI effective hourly rate helps you calculate how much a Reserved Instance will save you over on-demand pricing. When you purchase a Reserved Instance, you are billed for every hour during the entire Reserved Instance term you select, regardless of whether the instance is running. The effective hourly price shows the amortized hourly instance cost. This takes the total cost of the Reserved Instance over the entire term, including any upfront payment, and spreads it out over each hour of the Reserved Instance term.

Backup and restore

With ElastiCache, you can store backups at a rate of $0.085 per GiB per month for all AWS Regions. There are no data transfer fees for creating a backup or for restoring data from a backup to a cache.

Data transfer

Data transfer costs within a Region

There is no charge for data transfer between Amazon Elastic Compute Cloud (Amazon EC2) and ElastiCache within the same Availability Zone (AZ). While standard Amazon EC2 Regional data transfer charges of $0.01 per GiB in or out apply when transferring data between an EC2 instance and an ElastiCache node in different AZs of the same Region, you are only charged for the data transfer in or out of the EC2 instance.

Data transfer costs across Regions

ElastiCache Global Datastore enables fully managed, fast, reliable, and secure cross-Region replication. The following charges apply for outgoing traffic from the primary (or source) Region.

Global Datastore is available with M5, R5, R6g, R6gd, M6g, M7g, and R7g nodes, which are not eligible for the AWS Free Tier.

Note: Global Datastore is not currently available with ElastiCache Serverless.

Region

AWS Outposts

AWS Outposts is a fully managed service that extends AWS infrastructure, services, APIs, and tools to customers’ datacenters, colocation spaces, or on-premises facilities. You can purchase Outposts servers for a three-year term with partial upfront, all upfront, and no upfront options available. The price includes delivery, installation, servicing, and removal at the end of the term.

By providing local access to infrastructure managed by AWS, Outposts allows you to build and run applications on premises using the same programming interfaces as in AWS Regions, while using local compute and storage resources for lower latency and local data-processing needs. ElastiCache for Outposts only supports M5 and R5 family nodes.

Note: AWS Outposts are not available for ElastiCache Serverless.

On-Demand

Region

Pricing examples

Example 1: Getting started with a cache in a new application

Scenario: You are building a new application that requires a cache to store frequently accessed data from the database to improve application performance. You estimate that your average dataset size will be about 10 GB and an average request rate of 50,000 requests per second. You choose to deploy your workload in U.S. East (N. Virginia).

Your total cache charges are calculated as follows:
Data storage charges
Average hourly data storage usage = 10 GB-hours.

Average hourly data storage charges:
10 GB-hours * $0.125/GB-hour = $1.25/hr.

ECPU charges
Since your workload is a caching use case, each request will consume 1 ECPU, assuming the average bytes transferred per request are less than 1 KB.

Average hourly ECPU usage = 50,000 requests/second * 3,600 seconds in an hour = 180,000,000 ECPUs.

Average hourly ECPU charges:
(180,000,000/1,000,000) * $0.0034 / million ECPUs = $0.612/hr.

Total serverless charges
Data storage = $1.25/hr
ECPU charges = $0.61/hr
Total = $1.86/hour

Example 2: Redis cache for an application with spiky traffic

Scenario: You are building an application that requires a cache that provides fast data access to enable a responsive, real-time user experience for an e-commerce website. You estimate that the application has a total cache dataset size of 10 GB in the idle state and grows to 100 GB during peaks for two hours during the day. Your application accesses this cache using Redis SET and GET commands to read and write objects of 500 bytes in size. You estimate that your typical request rate is 100,000 requests per second, with daily peaks of 1 million requests per second for two hours of the day. You choose to deploy your workload in U.S. East (N. Virginia).

Decision: You choose to start building your application with ElastiCache Serverless for its simplicity. You can also choose to run the workload by configuring your own cluster using on-demand nodes. You compare the pricing of both options.

Serverless option
Your total charges are calculated as follows:
Data storage charges
Average hourly data storage usage = ((10 GB * 22 hours) + (100 GB * 2 hours))/24 hrs in a day = 17.5 GB-hours

Average hourly data storage charges:
17.5 GB-hours * $0.125 / GB-hour = $2.19/hr.

ECPU charges
Since your workload comprises of Redis SET and GET requests, and each request transfers 500 bytes, each request will consume 1 ECPU.

Average hourly ECPU usage = (100,000 ECPUs/sec * 3,600 seconds in an hour * 22 hours + 1,000,000 ECPUs/sec * 3,600 seconds in an hour * 2 hours)/24 hrs in a day = 630,000,000 ECPUs

Average hourly ECPU charges:
(630,000,000/1,000,000) * $0.0034 / million ECPUs = $2.14/hr

Data transfer charges
You access your serverless cache in the AZs you select, and thus do not incur any cross-AZ data transfer charges.

Total serverless charges
Data storage = $2.19/hr
ECPU charges = $2.14/hr
Total = $4.33/hour

On-demand nodes option
You design your cluster using r7g.xlarge nodes. To accommodate your peaks of 100 GB and 1 million requests per second, and keep a buffer of 20% for unpredictable peaks, you require six shards, each with 19.74 GB (75% of 26.32 GB) of available storage, with two nodes for high availability (when configuring your own cluster, ElastiCache recommends reserving 25% of the node’s memory for non-data use). You distribute your nodes evenly across two AZs to achieve high availability.

On-demand node charges
Cache.r7g.xlarge = $0.437
Total = $0.437 * 12 node cluster = $5.25/hr.

Data transfer charges
(100,000 requests/sec * 3,600 secs/hr * 22 hours + 1,000,000 requests/sec * 3,600 secs/hr * 2 hours)/24 = 630,000,000 requests/hr.
Data transferred = 630,000,000 requests/hr * 500 bytes/request = 293.36 GB/hr.
Approximately 50% of your data will cross AZs due to multi-AZ architecture
293.36 GB/hr * 50% * $0.01/GB = $1.46/hr

Total on-demand charges
Node charges = $5.25/hr
Data Transfer charges = $1.46/hr
Total = $6.71/hr

Example 3: Getting started with a Memcached cache in a new application

Scenario: You have a straightforward database caching use case that uses Amazon ElastiCache for Memcached. You require high availability for your cache to avoid application performance degradation in case of a node or AZ failure. You estimate that the application has a total cache dataset size of 20 GB in the idle state and grows to 150 GB during peaks. Your application accesses this cache using Memcached set and get commands to read and write objects of 500 bytes in size. You estimate that your typical request rate is 100,000 requests per second, with daily peaks of 500,000 requests per second for two hours of the day. You choose to deploy your workload in U.S. East (N. Virginia).

Decision: You choose to start building your application with ElastiCache Serverless for its simplicity. You can also choose to run the workload by configuring your own cluster using on-demand nodes. Since you require high-availability, you operate two ElastiCache for Memcached clusters and write to both clusters from your application. You compare the pricing of both options.

Serverless option

Your total charges are calculated as follows:
Data storage charges
Average hourly data storage usage = ((20 GB * 22 hours) + (150 GB * 2 hours))/24 hrs in a day = 30.83 GB-hours

Average hourly data storage charges:
30.83 GB-hours * $0.125 /GB-hour = $3.85/hr.

ECPU charges
Since your workload comprises of Memcached set and get requests, and each request transfers 500 bytes, each request will consume 1 ECPU.

Average hourly ECPU usage = (100,000 ECPUs/sec * 3,600 seconds in an hour * 22 hours + 500,000 ECPUs/sec * 3,600 seconds in an hour * 2 hours)/24 hrs in a day = 480,000,000 ECPUs

Average hourly ECPU charges:
(480,000,000/1,000,000) * $0.00340 / million ECPUs = $1.63/hr

Data transfer charges
You access your serverless cache in the AZs you select, and thus do not incur any cross-AZ data transfer charges

Total serverless charges
Data storage = $3.85/hr
ECPU charges = $1.63/hr
Total = $5.48/hour

On-demand nodes option
You design your cluster using r7g.xlarge nodes. To accommodate your peaks of 150 GB and keep a buffer of 20% for unpredictable peaks, you require seven shards, each with 26.32 GB of available storage. You will require a total of 14 nodes to create two clusters for high availability.

On-demand node charges
Cache.r7g.xlarge = $0.437
Total = $0.437 * 7 node cluster * 2 clusters = $6.12/hr.

Data transfer charges
(100,000 requests/sec * 3,600 secs/hr * 22 hours + 500,000 requests/sec * 3,600 secs/hr * 2 hours)/24 = 480,000,000 requests/hr.
Data transferred = 480,000,000 requests/hr * 500 bytes/request = 223.51 GB/hr.
Approximately 50% of your data will cross AZs due to multi-AZ architecture
223.51 GB/hr * 50% * $0.01/GB * 2 clusters = $2.24/hr

Total on-demand charges
Node charges = $6.12/hr
Data Transfer charges = $2.24/hr
Total = $8.36/hr.

Example 4: Operating a Redis-based gaming leaderboard

You work at a gaming company and your team manages a Redis-based leaderboard. Your datastore size is 100 GB consisting of an average of 1.2 KB objects. You use Redis’ SortedSet data structure to maintain your leaderboard and your average request rate is 500,000 requests per second. Each Redis request from your workload averages three times the vCPU time of a SET or GET request and transfers 1.2 KB of data. Hence, the average ECPU consumed by each request from your application is 3 ECPUs. Your total charges are calculated as follows

Data storage charges
Average hourly data storage usage = 100 GB-hours

Average hourly data storage charges:
100 GB-hours * $0.125 /GB-hour = $12.50/hr

ECPU charges
Average hourly ECPU usage = 500,000 requests/sec * 3 ECPUs/request * 3,600 seconds in an hour = 5,400,000,000 ECPUs

Average hourly ECPU charges:
(5,400,000,000/1,000,000) * $0.00340 / million ECPUs = $18.36/hr

Total serverless charges
Data storage = $12.50/hr
ECPU charges = $18.36/hr
Total = $30.86/hour

Example 5: High-write with Global Datastore for ElastiCache for Redis, three-year upfront (distributed session store use case)

Scenario: You have a write-heavy distributed session store workload that uses ElastiCache for Redis. Since your users are located all over the United States, you opt to use Global Datastore in U.S. East (N. Virginia) as the primary Region and U.S. West (N. California) as the secondary Region. Your total dataset size is 25 GiB of 200 byte objects. Your traffic pattern is 50,000 writes per second with 50,000 reads per second on the primary Region and 50,000 reads on the secondary Region. You’ve opted to deploy a clustered architecture across three AZs with three shards and two replica nodes per shard, in each Region. A shard is a collection of between one and six Redis nodes.

Decision: You expect this workload to be very stable and have opted to commit to Reserved Instances over three years with full upfront purchasing. Your total charges would be calculated as follows:

Reserved node charges with a three-year commitment, all upfront
3 shards * 3 nodes per shard * 2 Regions = 18 total nodes
cache.m7g.xlarge three-year all upfront effective hourly pricing = $0.142 /hr
18 nodes * $0.142 = $2.556 /hr

Data transfer charges
100,000 reads per second * 200 bytes * 60 minutes /hr * 60 seconds /min = 72 GiB/hr

50,000 writes per second * 200 bytes * 60 minutes /hr * 60 seconds/min = 36 GiB/hr
Approximately 66% of your data will cross AZs due to multi-AZ architecture
(72 GiB + 36 GiB) * 66% * $0.01/GiB = $0.713 /hr

Global Datastore replication traffic OUT = 36 GiB /hr
36 GiB * $0.02 = $0.72 /hr

Total = $0.72 + $0.713 = $1.43 /hr

Total charges
ElastiCache node charges = $2.56 /hr
Data transfer charges = $1.43 /hr
Total = $3.99 /hr

Example 6: Hosting a terabyte-scale cache with low-millisecond latencies using data tiering

Scenario: You are running a reporting application and have chosen ElastiCache to boost performance of the underlying database. The application is temporal in nature, mostly accessing data generated over the last month, but is required to keep 12 months of data for compliance purposes. The amount of stored data is fairly static at 85 GiB per month for a total of 1 TiB.

Decision: Because your application uses mostly recent data, you select the cache.r6gd.16xlarge node type with data tiering. Your application is running in the US East (N. Virginia) Region. You are not using read replicas, snapshots, Global Datastore, or any other billable ElastiCache feature. Your total charges are calculated as follows:

On-demand node charges
Dataset size: 1 TiB (or 1024 GiB)
cache.r6gd.16xlarge usable memory capacity: 419.1 GiB/node, less 25% reserved memory: 419.1*.75 = 314.33 GiB/node
cache.r6gd.16xlarge SSD capacity: 1592.56 GiB
Total capacity per node: 314.33 + 1592.56 = 1906.89 GiB/node
Nodes required for dataset: 1024 GiB ÷ 1906.89 GiB/node = 1 node
cache.r6gd.xlarge on-demand price: $12.477/hr
Total hourly charge: 1 nodes * $12.477/hr = $12.48

Nodes required if running fully in memory: 1024 GiB ÷ 314.33 GiB/node for cache.r6g.16xlarge = 4 nodes
cache.r6g.16xlarge on-demand price: $6.567/hr
Hourly charge for running fully in memory: 4 nodes * $6.567/hr = $26.27
Savings compared to running fully in memory: $26.27 – ($12.48 / $26.27) = 52.5%

FAQs

Is ElastiCache a part of the AWS Free Tier?

Yes, you can get started with ElastiCache for free. New AWS customers receive 750 hours of ElastiCache cache.t2.micro or cache.t3.micro node usage for free for up to 12 months. As part of the AWS Free Tier, new AWS customers will receive 15 GiB of free data transfer out each month, aggregated across all AWS services for one year.

The AWS Free Tier applies to participating services across our global Regions. Your free usage under the AWS Free Tier is calculated each month across all Regions and automatically applied to your bill -- free usage does not accumulate. The AWS Free Tier is not available in the AWS GovCloud (US) Regions or the China (Beijing) Region at this time.

Note: The AWS Free Tier is not currently available for ElastiCache Serverless.

How much does ElastiCache cost per month?

Use the AWS Pricing Calculator to calculate your ElastiCache cost in a single estimate based on locations, data transfer amounts, number of requests, and more.

What factors affect the costs for ElastiCache?

Serverless, designing your own cluster, data tiering, reserved nodes, backup and restore, data transfer, and AWS Outposts can affect your ElastiCache costs.
 
  • Serverless: Serverless caches help optimize costs by automatically scaling when needed, removing the need to provision capacity for peak demand.
  • On-demand nodes: Clusters configured using on-demand nodes can help optimize costs for workloads that have predictable scaling needs.
  • Data tiering: Nodes with data tiering use SSDs to automatically optimize the costs of your ElastiCache clusters by moving the least frequently used items from memory to SSD.
  • Reserved nodes: ElastiCache reserved nodes provide a significant discount off the ongoing hourly usage rate for the node(s) you reserve in one-year or three-year terms.
  • Backup and restore: Storage space for backups is charged at a rate of $0.085 per GiB per month for all AWS Regions.
  • Data transfer: There is no charge for data transfer between Amazon EC2 and ElastiCache within the same AZ. While standard Amazon EC2 Regional data transfer charges apply when transferring data between an EC2 instance and an ElastiCache node in different AZs of the same Region, you are only charged for the data transfer in or out of the EC2 instance.

How will I be charged and billed for my use of ElastiCache?

With ElastiCache Serverless, you are charged for cached data in GiB-hours and the number of ElastiCache Processing Units (ECPUs) used by your application. When designing your own cluster, pricing is per node-hour.

How are ElastiCache Processing Units (ECPUs) calculated?

You pay for ElastiCache Serverless requests in ECPUs. The number of ECPUs consumed by your requests depends on the vCPU time taken and the amount of data transferred. Each simple read and write, like the Redis GET and SET commands or the Memcached get and set commands, requires 1 ECPU for each kilobyte (KB) of data transferred. For example, a GET command that transfers 3.2 KiB of data will consume 3.2 ECPUs.

Some Redis commands that operate on in-memory data structures can consume more vCPU time than a GET or SET command. ElastiCache calculates the number of ECPUs consumed based on the vCPU time taken by the command compared to a baseline of the vCPU time taken by a Redis SET or GET command. For example, a SORT command that takes three times the vCPU time taken by a SET or GET command and transfers 2 KiB of data will consume 3 ECPUs.

If your command takes additional vCPU time and transfers more data than the baseline of 1 ECPU, then ElastiCache calculates the ECPUs required based on the higher of the two dimensions. For example, a ZADD command that takes two times the vCPU time taken by a SET or GET command and transfers 3 KiB of data will consume 3 ECPUs.

How are data transfer costs calculated between Amazon EC2 and ElastiCache?

There is no charge for data transfer between Amazon EC2 and ElastiCache within the same AZ. When you create an ElastiCache Serverless cache you can choose the AZs where you want ElastiCache to create VPC endpoints. There are no cross-AZ data transfer costs when the EC2 instance accessing the cache is in the same AZ as the cache endpoints. If you access the cache from a different AZ, standard Amazon EC2 cross-AZ data transfer costs will apply. You are only charged for the data transfer in or out of the EC2 instance. There is no ElastiCache data transfer charge for traffic in or out of the VPC endpoint.

When you design your own cluster, your application directly connects to each cache node. While standard Amazon EC2 Regional data transfer charges apply when transferring data between an Amazon EC2 instance and an ElastiCache node in different AZs of the same Region, you are only charged for the data transfer in or out of the EC2 instance. There is no ElastiCache data transfer charge for traffic in or out of the ElastiCache node itself.

Standard data transfer rates apply for data transferred out from a Region.

When does billing of my ElastiCache Serverless cache begin and end?

Billing for ElastiCache Serverless caches commences as soon as the cache is available. Billing continues until the cache is deleted. ElastiCache Serverless caches are billed any time your cache is running in an “Available” or “Updating” state. If you no longer wish to be charged for your cache, then you must delete it to avoid being billed for additional usage

When does billing of my ElastiCache on-demand nodes begin and end?

Billing for ElastiCache nodes commences as soon as the node is available. Billing continues until the node is terminated, which would occur upon deletion.

What defines ElastiCache node hours?

ElastiCache node hours are billed any time your node runs in an Available or Modifying state. If you no longer wish to be charged for your node, then you must terminate it to avoid being billed for additional node hours.

Do ElastiCache prices include taxes?

Unless noted otherwise, ElastiCache prices exclude applicable taxes and duties, including VAT and applicable sales tax. Customers with a Japanese billing address are subject to a Japanese consumption tax for use of AWS services.

Discover how AWS customers are using ElastiCache

Visit the customers page
Ready to build?
Get started with ElastiCache
Have more questions?
Contact us