DEV Community

Cover image for 30 days of AWS - Part 5: AWS Databases
Jully Achenchi
Jully Achenchi

Posted on

30 days of AWS - Part 5: AWS Databases

Welcome to part 5 of 8 of the 30 days of AWS challenge

Database- A collection of data that is stored digitally and can be accessed digitally.

AWS offers a wide range of Databases that a customer can choose from depending on their use case(s). AWS database services can be classified into two categories: Relational databases and non-relational databases.

Relational Databases

Relational databases work with structured data that is organized by tables, records, and columns.

Relational databases use Structured Query Language (SQL).

1. Amazon Relational Database Service (AWS RDS)

Amazon RDS is the major relational database offered by AWS.
It is a fully managed service.
Definition of managed - Scaling, fault tolerance, and availability are built into the service.

Under the shared responsibility model, AWS is responsible for:

  • OS installations and patches
  • Database software installation and patches
  • Database backups
  • Scalability
  • High availability
  • Racking and stacking of servers
  • Server maintenance

The customer is responsible for:

  • Application optimization

Amazon RDS supports the following 6 database engines: MySQL, Amazon Aurora, Microsoft SQL Server, PostgreSQL, MariaDB, and Oracle.

Features of Amazon RDS for Disaster Recovery

a. High availability with Multi-AZ deployment

This is one of the powerful features of Amazon RDS. The customer can configure their database(s) instance(s) for high availability with Multi-AZ deployment.

Once configured, Amazon RDS automatically generates a standby copy of the db instance in another Availability Zone within the same VPC.

After seeding (the process of uploading data that is already present in your main DB instance) the database copy, transactions are synchronously replicated to the standby copy.

In the event of failure of the main database instance in a Multi-AZ deployment, Amazon RDS automatically brings the standby database instance online as the new main instance.

Here's the basic architecture of the RDS multi-AZ deployment:

RDS Multi-AZ deployment

b. Amazon RDS read replicas

Read Replica - Operates as a database instance that allows only read-only connections

Amazon RDS supports the creation of read replicas for MySQL, MariaDB, PostgreSQL, and Amazon Aurora.

Features of read replicas

  • Offers asynchronous replication
  • A read replica can be promoted to a primary DB instance if need be.
  • Read replicas can be created in a different region than the primary database.

When to use read replicas

  • It is used for read-heavy database workloads
  • It is used to offload read queries

Use cases of Amazon RDS

1. Web and Mobile applications - It is suitable for applications that need a database with high throughput, massive storage scalability, and high availability.
2. E-commerce applications - For small and large e-commerce businesses, Amazon RDS offers a flexible, secure, and low-cost database solution for online sales and retailing.
3. Mobile and online games - Amazon RDS provides a platform with high throughput and availability.

2. Amazon Redshift

It is a fast, fully managed data warehouse that makes it simple and cost-effective to analyze all your data using standard SQL and existing Business Intelligence (BI) tools.

3. Amazon Aurora

Amazon Aurora is a MySQL and PostgreSQL relational database built for the cloud.

Amazon Aurora is a managed service.

Aurora is designed to automate time-consuming tasks like provisioning, patching, backup, recovery, failure detection, and repair.

Amazon Aurora is designed to be highly available: it stores copies of data in multiple AZs with continuous backups to Amazon S3.

Non-Relational Databases

A non-relational database is any database that does not follow the relational model that is provided by the relational database management systems.

Non-relational databases were developed to overcome the limitations of relational databases in handling variably structured data.

1. Amazon DynamoDB

DynamoDB is a fast and flexible fully managed NoSQL database service for all applications that need consistent single-digit millisecond latency.

With Amazon DynamoDB, you can:

  • Create tables and items
  • Add items to the table

The system automatically partitions your data and has table storage to meet workload requirements.

There is no practical limit to the number of items that you can store in a table.

Use cases of Amazon DynamoDB

a. Social media applications - Community-based applications, such as online gaming, and photo-sharing apps, have unpredictable usage patterns with the potential to go viral anytime. The elasticity and flexibility of Amazon DynamoDb make it suitable for such high-volume, variable workloads.

b.Serverless applications - DynamoDB provides a durable backend for storing data at any scale.

c. High volume special events - Such as electoral campaigns that are of relatively short duration and have variable workloads. Amazon DynamoDB lets you increase and decrease capacity as needed

2. Amazon DocumentDB

It is a fully managed document database service.

It is scalable, highly available, and compatible with MongoDB.

With it, you can store, index, and query JSON files.

Use cases of DocumentDB

  • Content and catalog management - This includes online publications, point-of-sale terminals, and digital archives.
  • Profile management - This includes user preferences, authentication profiles, and online transactions.

Other Non-relational databases offered by AWS include:

  • Amazon ElastiCache - It is a fully managed, in-memory data store. This service improves the performance of web applications.

  • Amazon Neptune - It is a fully managed graph database service.

Top comments (0)