Amazon MemoryDB is a Redis OSS-compatible, durable, in-memory database that delivers ultra-fast performance and Multi-AZ durability. With Amazon MemoryDB, you only pay for what you use with no minimum fee. A node is the smallest building block of a MemoryDB cluster. Each node supports varying amounts of computation and memory capacity, and you can select a node type based on your needs. You are charged based on three components: on-demand instance hours per node, volume of data written to your cluster, and snapshot storage that you use.
Get started with Amazon MemoryDB for free
As part of the AWS Free Tier, you can get started with MemoryDB for free. Upon signup, new MemoryDB customers receive 750 hours of MemoryDB on db.t4g.small instances and 20 GB of data per month free for 2 months.
The Amazon 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.
On-Demand instance hours per node: On-demand instance hours per node is the amount of node capacity for a cluster, charged per instance-hour consumed.
Data Written: Data written is the volume of data written to a cluster, charged per GB.
Snapshot Storage: Snapshot storage is the storage associated with the automated and user-initiated snapshots you take, charged per GB-month.
On-demand nodes
On-demand nodes let you pay by the instance hour with no long-term commitments or upfront fees. 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. The node type impacts the compute, in-memory data storage capacity, and network throughput available for your MemoryDB cluster.
Data tiering
Nodes with data tiering use solid state drives (SSD) to automatically optimize costs of your MemoryDB 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. Nodes with data tiering, available for MemoryDB, are ideal for workloads that access up to 20% of their data regularly, and for applications that can tolerate additional latency the first time a less-frequently accessed item is needed. Amazon MemoryDB R6gd nodes with memory and solid state drives have nearly 5x more total storage capacity and can help customers achieve over 60% storage cost savings when running at maximum utilization compared to MemoryDB R6g nodes with memory only. See Pricing Example 3 below for a comparison on how data tiering can reduce your spend.
Reserved nodes
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. With reserved nodes, you can choose to:
- Pay low hourly charges with no upfront payment (No Upfront)
- Make a one-time, partial upfront payment with lower hourly charges (Partial Upfront)
- Pay all upfront for even lower hourly charges (All Upfront)
MemoryDB reserved nodes offer size flexibility within a node family and AWS Region. This means that the discounted reserved node rate will be applied automatically to usage of all sizes in the same node family. When purchasing reserved nodes, you must designate an AWS Region, node type, payment term, and quantity. The reserved nodes may only be used in the designated AWS Region.
Reserved node pricing is also available for cluster nodes using data tiering.
* This is the average monthly payment over the course of the reserved node term. For each month, the actual monthly payment will equal the actual number of hours in that month multiplied by the hourly usage rate or number of seconds in that month multiplied by the hourly usage rate divided by 3600, depending on the MemoryDB node type you run. The hourly usage rate is equivalent to the total average monthly payments over the term of the reserved node divided by the total number of hours (based on a 365 day year) over the term of the reserved node.
** Effective hourly pricing helps you calculate the amount of money a reserved node will save you over on-demand pricing. When you purchase a reserved node, you are billed for every hour during the entire reserved node term you select, regardless of whether the node is running. The effective hourly price shows the amortized hourly node cost. This takes the total cost of the reserved node over the entire term, including any upfront payment, and spreads it out over each hour of the reserved node term.
Data Written
You pay only for the volume of data (in GB) you write to your MemoryDB cluster. This data includes the Redis OSS key, value, and command volume. There are no associated costs for reads.
Data Written | $0.20/GB |
Snapshot Storage
Snapshot storage for a MemoryDB cluster is the storage associated with the automated and user-initiated snapshots you take. A snapshot is a copy of an entire cluster at the time when the snapshot was taken. There is no additional charge for snapshot storage of up to 100% of your total MemoryDB cluster storage for a region. There is no additional charge for snapshot storage if your snapshot retention period is 1 day. Additional snapshot storage is billed at storage rates in the table below:
Pricing Examples
Pricing Example 1
You are building an application that requires a database that provides fast data access to enable a responsive, real-time user experience for a regional logistics company. The application has a total dataset size of 25 GB. On average, 3% of the data is updated every hour. You use a MemoryDB architecture with one shard that includes one primary and one replica node per shard to meet the application requirements. You choose the db.r6g.xlarge node type as it has enough memory to fit the entire working dataset. You also choose to deploy your workload in U.S. West (Oregon). Additionally, you set your snapshot retention to 2 days enabling you to store the snapshot free of charge for the first day and charging you for snapshot storage for the additional day.
Your total charges are calculated as follows:
On-demand node Charges
(1 Primary + 1 Replicas) * 1 = 2 total nodes
db.r6g.xlarge hourly pricing = $0.617/hour
2 nodes * $0.617 = $1.234/hour
Data Written Charges
Data Written = 25GB * 3% (throughput update every hour) = 0.75 GB/hour
Data Written pricing = $0.20/GB
0.750 GB/hour * $0.20/GB = $0.150/hour
Snapshot Storage Charges
Day 1: Free of charge for snapshot storage
Day 2: Snapshot storage space for 25 GB = 25 GB * $0.021 per GB-month= $0.525/month
$0.525/730 hours in month = $0.001/hour
Total Charges
Node Charges = $1.234/hour
Data Written Charges = $0.150/hour
Snapshot Storage Charges = $0.001/hour
Total = $1.234+ $0.150 + $0.001 = $1.385/hour
Pricing Example 2
You work at a media and entertainment company and your team built an application that requires very low latency and high throughput. To meet these performance requirements, you use Amazon MemoryDB as your primary database. The application is read-heavy and has a total dataset size of 50 GB consisting of 100 byte objects (includes Redis OSS key, value and command size). The application is 80% reads and 20% writes, and approximately 50,000 transactions per second. You choose two shards of db.r6g.xlarge node type to have enough memory to fit the entire dataset in the cluster (50GB) and select one replica per shard to support the reads of the application and high availability. You also choose to deploy your workload across two availability zones (AZs) in U.S. East (N. Virginia) for high availability. Additionally, you set your snapshot retention to 2 days allowing you to store the snapshot free of charge for the first day and charging you for snapshot storage for the additional day. Your total charges are calculated as follows:
On-demand node Charges
(1 Primary + 1 Replica) *2 =4 total nodes
db.r6g.xlarge hourly pricing = $0.617/hour
4 nodes * $0.617 = $2.468/hour
Data Written Charges
MemoryDB charges only for the writes. So for 50,000 transaction per second with 20% writes and 80% read, you only need to pay for 20% of 50,000 (10,000 transactions per second).
Hence, it is 10,000 transactions per second * 100 bytes * 60 * 60 = 3.6 GB/hour
Data Written pricing = $0.20/GB
3.6 GB * $0.20/GB = $0.720/hour
Snapshot Storage Charges
Day 1: Free of charge for snapshot storage
Day 2: Snapshot storage space for 50 GB = 50 GB * $0.021 per GB-month= $1.050/month
$1.05 / 730 hours in month = $0.001/hour
Total Charges
Node Charges = $2.468/hour
Data Written Charges = $0.720/hour
Snapshot Storage Charges = $0.001/hour
Total = $2.468 + $0.720 + $0.001 = $3.189/hour
Pricing Example 3
On-demand node Charges
Dataset size: 840 GB
db.r6gd.4xlarge usable memory capacity: 105.81 GiB/node = 113.64 GB/node, less 19% memory for non-data use:
113.64 * 0.81 = 92.05 GB/node
db.r6gd.4xlarge solid-state drive (SSD) capacity: 398.14 GiB = 427.6 GB
Total capacity per node: 92.05 + 427.6 = 519.65 GB/node
Shards required for dataset: 840GB ÷ 519.65 GB/node = 2
Each shard: (1 Primary + 1 Replicas) Nodes
(1 Primary + 1 Replicas) * 2 shards = 4 total nodes
db.r6gd.4xlarge hourly pricing = $3.695/hour
Total hourly charge: 4 nodes * $3.695/hr = $14.78
Data Written Charges
Data Written = 840 GB * 1% (throughput update every hour) = 8.4 GB/hour
Data Written pricing = $0.20/GB
8.4 GB/hour * $0.20/GB = $1.68/hour
Snapshot Storage Charges
Day 1: Free of charge for snapshot storage
Day 2: Snapshot storage space for 840 GB = 840 * $0.021 per GB-month= $17.64/month
$17.64/730 hours in month = $0.0242/hour
Total Charges
Node Charges = $14.78/hour
Data Written Charges = $1.68/hour
Snapshot Storage Charges = $0.0242/hour
Total = $14.78+ $1.68+ $0.0242= $16.484/hour
Shards required if running fully in memory: 840 GB ÷ 113.64 GB/node for db.r6g.4xlarge =8
db.r6g.4xlarge on-demand price: $2.463/hr
Each shard: (1 Primary + 1 Replicas) Nodes
(1 Primary + 1 Replicas) * 8 shards = 16 total nodes
Hourly charge for running fully in memory: 16 nodes * $2.463/hr = $39.41
Savings compared to running fully in memory: ($39.41 – $14.78) / $39.41 = 62%
Additional pricing resources
Easily calculate your monthly costs with AWS
Discover MemoryDB resources on the getting started page.
Check out the MemoryDB user guide to get started.