Compare NoSQL-based AWS database options

As more cloud databases become available to AWS customers, NoSQL services such as ElastiCache and DynamoDB offer advantages over relational databases.

Database options used to be simpler. Your enterprise could decide to go with MySQL, SQL Server, Oracle or another...

mature relational database. But cloud-based database options have expanded, and with that a new set of features and tradeoffs has emerged. AWS currently offers a relational database service as well as two NoSQL services -- ElastiCache for Redis and DynamoDB. This article will help you compare NoSQL-based AWS database options and explains the benefits of each.

ElastiCache for Redis 

Redis is a popular cache that supports a range of key data types. AWS ElastiCache for Redis is designed to use key value data stores to improve application performance by keeping frequently used data in memory. Caches are typically used with other databases that manage persistent storage on disk (SSD) or Simple Storage Service (S3).

ElastiCache for Redis is a good option for enterprises that need to improve the performance of an app that executes frequent database reads. The Redis-based cache can store data in memory while another database, possibly a relational database, stores data persistently. This database uses a basic data structure model known as a key value data store, the simplest of the NoSQL family databases. Data is stored and retrieved by referencing a key or index, such as 'cust1324FirstName' or 'prodID,' which returns a value such as 'Joanne,' or 'SGTablet6.'

ElastiCache Redis is deployed on primary and read-only nodes. Primary nodes are replicated to read-only nodes to improve read performance while also remaining responsible for all write operations. AWS provides support for multi-zone failover when using this database service.

Pricing is based on the size of the primary and read nodes. Both standard and memory optimized nodes may be used. Memory ranges from 0.555 GB in micro instances to 237 GB in r3.8xlarge memory optimized instances. The hourly charge per instance ranges from $0.017 to $3.64.

Amazon DynamoDB 

Amazon DynamoDB provides a key value data store and supports document database features for more complex data modeling needs. Unlike ElastiCache for Redis, DynamoDB offers persistent storage; it is well suited to applications that benefit from flexible document schema and simple key value storage patterns.

Document databases expand on the concept of key values. The term documents refers to JavaScript Object Notation (JSON), XML or similarly structured entities. Documents are roughly analogous to rows in a relational table. But unlike relational tables, documents may vary in the attributes they store. Documents may also contain arrays of objects and embedded documents. Document databases favor denormalization over joins. For example, an order and its items modeled as two tables in a relational database would instead be modeled as an order document with embedded order items within the order document.

As with other AWS database services, DynamoDB is designed to minimize database administration tasks. DynamoDB maintains partitions and scales server capacity as needed to meet the demands of varying loads. The service also replicates data across data centers within a region to improve availability. Consequently, IT teams can provision the volume of IOPS appropriate for an application's needs. While cloud administrators could manage a document database in the AWS cloud using platforms such as MongoDB or Couchbase, one main advantage of DynamoDB is its management support.

DynamoDB pricing is based on a combination of provisioned IOPS and storage. The first 25 GB of storage is free of charge; each GB above that is billed at $0.25 per month.

Next Steps

What to consider when provisioning NoSQL databases on AWS

Why enterprises are deploying NoSQL databases on AWS

Five quick links: Managing big data in the cloud

Dig Deeper on Amazon S3 (Simple Storage Service) and backup