Notes on: AWS Essentials: 6) Databases

Just a place to put some notes on the “AWS Essentials” course from https://linuxacademy.com

6) Databases
6.1) RDS and DynamoDB Basics

Two main categories of databases:
(1) Relational Databases - “SQL
(2) Non-Relational Databases - “NoSQL

RDS (Relational Database Service) for SQL databases
DynamoDB for NoSQL databases

Image: AWS Console > AWS Services > Database

RDS is a SQL database service that provides a wide range of SQL database options to select from:
Amazon Aurora, MySQL, MariaDB, PostgreSQL, Oracle, and Microsoft SQL Server

Image: AWS Console > AWS Services > Database: RDS > Instances > Launch DB Instance

DynamoDB is a fast and flexible NoSQL database service for all applications that need consistent, single-digit-millisecond latency at any scale.
DynamoDB can replace (is similar to): MongoDB, Cassandra DB, Oracle NoSQL

Image: AWS Console > AWS Services > Database: DynamoDB > Create Table (no ‘Select Engine’)

RDS (SQL) vs DynamoDB (NoSQL)

Stores related data in: tables vs JSON-like, name-value documents
Typically used for: very structured data (such as content lists) vs non-structured data (such as cataloguing documents)

RDS Pricing/Cost Overview

Free Tier is available for all RDS options except Aurora.

How are you charged for using RDS?
(1) The RDS “engine”
(2) RDS Instance Classes
(3) Purchasing Terms: On-Demand or Reserved
(4) Database Storage
(5) Data Transfer (in/out of RDS)


DynamoDB Pricing/Cost Overview

Free Tier use is available for DynamoDB.

How are you charged for using DynamoDB?
(1) Provisioned Throughput Capacity
(2) Indexed Data Storage
(3) DynamoDB Streams
(4) Reserved Capacity
(5) Data Transfer (in/out of DynamoDB)


6.2) Provisioning an RDS MySQL Database

(1) Creating a DB Subnet Group

Image: AWS Console > AWS Services > Database:RDS > Subnet Groups

(2) AWS Console > AWS Services > Database: RDS > Instances > Launch DB Instance
Select: MySQL: MySQL Community Edition
Specify DB Details > Next Step

Image: Step 2: Specify DB Details

(3) Configure Advanced Settings > Launch DB Instance

Image: Step 3: Configure Advanced Settings

Note: The course shows an example using SSH tunnelling - via an EC2 instance - to connect to the database (which is in a private subnet).
Note: Whenever you see a failed to connect issue, first thing you want to take a look at is: Security Groups, NACLs, route tables, and Internet Gateway.

6.3) Quiz: RDS/DynamoDb Essentials

Q: What term describes the practice of using SSH to access a resource without a public IP address via a resource with a public IP address (inside of a VPC)?
A: SSH tunnelling.

T: RDS stands for Relational Database Service
T: Amazon RDS databases do not have a GUI in the AWS console
T: RDS databases store data in tables using columns and rows, while DynamoDB stores data in JSON-like, name-value documents.
T: There are free tier options available for all other RDS engines and DynamoDB, but not for Aurora.

Comments