November 7th: Exploring an 80% lower cost hosted Redis alternative - register

Question: What are the differences in pricing between Amazon ElastiCache and Amazon MemoryDB?

Answer

Amazon ElastiCache and Amazon MemoryDB are both in-memory caching services offered by AWS, but they have different pricing models. Here's how their pricing works:

ElastiCache Pricing

ElastiCache pricing is primarily based on the instance type that you choose. There is a hourly rate associated with each instance type. Other cost factors include:

  • Data transfer
  • Backups
  • Regional data transfer costs if your data is transferred across regions.

You can find more details about ElastiCache pricing on AWS Pricing Page for ElastiCache.

MemoryDB Pricing

MemoryDB pricing differs from ElastiCache in that it doesn't directly depend on the instance type but is determined by capacity units known as shards and replicas. Each shard has its own pricing and you pay extra for every replica of a shard. Other cost factors may include:

  • Data transfer
  • Backups
  • Data replication across regions.

More detailed information can be found at AWS Pricing Page for MemoryDB.

When selecting between ElastiCache or MemoryDB, consider not only the pricing structure but also the specific features and use cases of your application. MemoryDB, being fully compatible with Redis, offers durability and replication features while ElastiCache provides a simple, scalable in-memory cache.

Please note that prices can vary over time and between regions, so it's always a good idea to consult the latest information on the AWS official site.

# Sample Python code to connect to ElastiCache import redis def connect_to_elasticache(): r = redis.StrictRedis(host='mycache.1234.0001.use1.cache.amazonaws.com', port=6379, db=0) return r # Sample Python code to connect to MemoryDB from rediscluster import RedisCluster def connect_to_memorydb(): startup_nodes = [{"host": "mymemorydb.1234.clustercfg.use1.memorydb.amazonaws.com", "port": "6379"}] rc = RedisCluster(startup_nodes=startup_nodes, decode_responses=True) return rc

These are just simple examples to connect to each service from a Python application. Depending on the security configuration of your AWS environment, additional parameters such as SSL/TLS settings may need to be configured.

Was this content helpful?

White Paper

Free System Design on AWS E-Book

Download this early release of O'Reilly's latest cloud infrastructure e-book: System Design on AWS.

Free System Design on AWS E-Book

Switch & save up to 80% 

Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement. Instantly experience up to a 25X boost in performance and 80% reduction in cost