RDS & Aurora

AWS RDS

Overview

• RDS stands for Relational Database Service

• It’s a managed DB service that uses SQL as a query language.

• It allows you to create databases in the cloud that AWS manages

  • Postgres

  • MySQL

  • MariaDB

  • Oracle

  • Microsoft SQL Server

  • Aurora (AWS Proprietary database)

The advantage over using RDS versus deploying DB on EC2

• RDS is a managed service:

  • Automated provisioning, OS patching

  • Continuous backups and restore to specific timestamps (Point in Time Restore)!

  • Monitoring dashboards

  • Read replicas for improved read performance

  • Multi-AZ setup for DR (Disaster Recovery)

  • Maintenance windows for upgrades

  • Scaling capability (vertical and horizontal) • Storage backed by EBS (gp2 or io1)

• BUT you can’t SSH into your instances

RDS Solution Architecture

RDS Deployments: Read Replicas, Multi-AZ

• Read Replicas:

  • Scale the read workload of your DB

  • Can create up to 15 Read Replicas

  • Data is only written to the main DB

• Multi-AZ:

  • Failover in case of AZ outage (high availability)

  • Data is only read/written to the main database

  • Can only have 1 other AZ as failover

RDS Deployments: Multi-Region

• Multi-Region (Read Replicas)

  • Disaster recovery in case of regional issue

  • Local performance for global reads

  • Replication cost

Amazon Aurora

Overview

  • Aurora is a proprietary technology from AWS (not open-sourced)

  • PostgreSQL and MySQL are both supported as Aurora DB

  • Aurora is “AWS cloud-optimized” and claims 5x performance improvement over MySQL on RDS, over 3x the performance of Postgres on RDS

  • Aurora storage automatically grows in increments of 10GB, up to 128 TB

  • Aurora costs more than RDS (20% more) – but is more efficient

  • Not in the free tier

Serverless

  • Automated database instantiation and auto-scaling based on actual usage

  • PostgreSQL and MySQL are both supported as Aurora Serverless DB

  • No capacity planning is needed

  • Least management overhead

  • Pay per second can be more cost-effective

  • Use cases: good for infrequent, intermittent, or unpredictable workloads...

Last updated