Brief Overview OF AWS Database Services

Jeremiah LanierJeremiah Lanier
6 min read

Introduction

Databases are the backbone of many modern applications. Databases can come on two favors usually, relational and non-relational. Relational databases were first put forward by computer scientist Edgar Frank Codd at IBM in 1970. Using what’s called a “relational model”. The relational model seeks to represent data through relationships in tabular form. Rows in the table are called records and columns are known as attributes. Columns stores the actual value of an attribute. While records store related values of one object or entity. Each record can have a primary key which is a unique identifier. Relational databases use SQL as a standard language. It’s used to add, update, or delete rows of data. SQL also can retrieve subsets of data for transaction processing and analytics. Relational Databases are great for Data Integrity and Transactions. Non-relational Databases are non-tabular and are sometimes referred to as NoSQL (Not Only SQL). With Non-relational databases, they’ve forgone the relational model and table for documents to store data. Non-relational databases use tends to back faster. They’re also great for massively large data sets. With our new understanding of both types and some of their benefits let’s examine Amazon’s offering in this space.

Amazon Aurora

What is it and what does it do?

Aurora is a fully managed modern relational database management system/ relational database engine created for the cloud. It can be used with MySQL or PostgreSQL. Aurora comes with a high-performance storage system that scales automatically as needed. The storage system is also distributed fault-tolerant and self-healing. In the event of a crash, Amazon Aurora moves the buffer cache out of the database process and makes it immediately available at the restart. With Aurora, your database will automatically split your database volume into 10GB segments and be distributed across multiple disks. Each of these parts is spread across three AZs and in six ways.

Use Case:

You want to Go serverless

Modernize enterprise applications

Deploy globally distributed applications

Build SaaS applications

Cost:

Provisioned and On-Demand tiers.

Amazon DocumentDB

What is it and what does it do?

DocumentDB is a fast and reliable, database service fully managed and MongoDB compatible. A native JSON document database that’s cost-effective and easy to set up, operate, and scale MongoDB-compatible databases in your cloud environment. This service is great because it has flexible schemas and extensive query capabilities. You can also migrate an existing MongoDB to the cloud with DocumentDB. DocumentDB has an important feature called Elastic Clusters that elastically scale your document database to handle millions of writes and reads. DocumentDB is the go-to service for a document database in the cloud.

Use Case:

Dynamic datasets that require ad-hoc querying, indexing, and aggregations

Store and query content management data

Manage user profiles, preferences, and requests

Scale mobile and web applications

Cost:

Free and Paid tiers.

Amazon DynamoDB

What is it and what does it do?

While still on the subject of NoSQL databases Amazon also has a key-value fully managed, serverless NoSQL database called DynamoDB. DynamoDB is flexible and fast and built with the consistency model. This means users are given two choices eventually consistent or strongly consistent. The former is the default and means DynamoDB will maximize your read throughput. Though the results may not show for a recently completed write in an eventually consistent read. Strongly consistent reads returns all writes that received a successful response before the read. As mentioned, DynamoDB is a key-value database and so a primary key is a required attribute for any item in a table.

Use Case:

Create media metadata stores

Scale gaming platforms

design patterns for deploying shopping carts, workflow engines, inventory tracking, and customer profiles.

Cost:

Provisioned and On-Demand Pricing.

Amazon ElastiCache

What is it and what does it do?

Amazon ElastiCache is a scale-distributed in-memory cache service fully managed by AWS. ElastiCache can be used in a couple of ways. It can be used as a primary data store when durability is important like session stores, gaming leaderboards, analytics, and streaming. The other important way is obviously caching. ElastiCache works with both the Redis and Memcached engines and you choose which one is best for your situation. Redis is an open in-memory data store cache, message broker, database, and streaming engine. Memcached is an open source distributed memory object caching system that’s high-performance and free. This web service removes the complexity associated with deploying and managing a distributed cache environment. Boost application performance, eliminate the operational overhead of self-managed caching, and reduce latency.

Use Case:

Cache your data to reduce pressure on your backend database

Build low-latency data stores

Use ElastiCache to Accelerate your application performance

Cost:

Free and Paid tiers.

Amazon Neptune

What is it and what does it do?

Neptune is a serverless graph database that’s fully managed by AWS. A fast, reliable, and high-performance graph database that uses the graph query languages Apache TinkerPop Gremlin and W3C’s SPARQL. Neptune is fault-tolerant, self-healing and can handle storing billions of relationships and querying with milliseconds latency. Neptune has 3 key service components. Primary DB instance, Neptune replica, and Cluster volume. The Primary DB instance is as it sounds. It performs all the data modifications to the cluster volume and handles read and write operations. Neptune DB cluster can have as many as 15 Neptune Replicas in addition to the primary DB instance. Neptune replicas are connected to the same storage volume as the primary DB instance and supports read-only operations. Cluster volumes hold Neptune data because of its durability and high availability. Volumes are made up of copies of the data across multiple Availability Zones in one AWS Region. Neptune is highly secure with data encrypted at rest and multiple levels of security.

Use Case:

recommendation engines

knowledge graphs

network security

Cost:

Free and Paid tiers.

Amazon RDS

What is it and what does it do?

RDS is a cost-efficient easy to use and managed relational databases web service. The base of RDS is the DB instance. The DB instance type is based on the database software you choose. This will also determine your database engine. Each DB engine has its own supported features. Some of the supported engines include:

MariaDB

Microsoft SQL Server

MySQL

Oracle

PostgreSQL

DB parameter group controls the behavior of the databases that it manages through a set of parameters with each DB engine.

Use Case:

Move to managed databases

Need a relational database

Cost:

Free and paid tiers.

Conclusion

This wraps up part one of our introduction and overview of AWS database services. Can’t wait to bring you part two where we’ll look at a few more services that don’t quite fit into these models. Subscribe for and look out for more articles and tutorials on all things cloud, computers and development.

0
Subscribe to my newsletter

Read articles from Jeremiah Lanier directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Jeremiah Lanier
Jeremiah Lanier