By using AWS re:Post, you agree to the Terms of Use

aws redis vs dynamodb vs rds


My supervisor ask me to explore the options to put a repository or cache between a database that is sourced (from other team) and an App that we are building, it will contain a subset (not big) of that db to be read-only from the API of that App, that subset will be fully reloaded from its origin on a daily basis, We already have a RDS (pg), my question is being the size of the data equal to the three options what will be cheaper, put that data into the existing RDS, put a a cache layer with redis or use a (new) dynamodb repo?

1 Answer

From the description, it sounds like you are looking for a solution where you could temporarily cache data that can be consumed (read-only) by an API. Redis seems to be a potential fit, you could also look at Memcached. Below document has a comparison of Memcached and Redis

Having said this, I would recommend you to review the requirement in a bit more detail and make a choice. Here are some areas you could think of and some questions you could ask yourselves (Not an exhaustive list) -

  1. What is the type and structure of data? What is the volume of data? A reference on evaluating DynamoDB -

    Redis is also a key-value pair data store.

  2. How often this data changes? Can the external source propagate the incremental data changes to AWS i.e. Do you really need a daily full dump or incremental delta feeds?

  3. Would persisting this data in RDS or DynamoDB serve any of your long term goals? (Based on the volume of reads, this could be a combination of 'RDS and Redis' or 'DynamoDB & DAX')?

  4. What is the request volume? What volumes of requests query for same data as response (i.e. repeated reads)?

  5. Do you have an API gateway for the API and does that already cache the API responses? Also, do you have any CDN (Content Delivery Network) already caching the API responses.

  6. What are the data encryption/security, back-up and recovery (RTO and RPO), availability, durability requirements?

Use the below cost calculator to create an estimate for these 3 services to compare. Make sure you also consider the opportunity of reservations for these services -

profile picture
answered 2 months ago
profile picture
reviewed 2 months ago
  • Thank you!, That calculator is complex, there are some parameters that I dont have, we never be writting to the cache/repo (only reading from it) with full loads everyday from the source (external), we can adapt to any form of data structure, tabular from a db or key, value, we are not willing to persists this data, and suppose we are not weighting the benefits (caching) of responses times between one option or the other, we are being forced to use this because the owners of the source data do not want us to be openning db connections all day, just once a day. The question is what will be cheaper, keep in mind that we already have an RDS.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions