DEV Community

Cover image for Day 19 - Relational Database Service
Rahul Joshi
Rahul Joshi

Posted on

Day 19 - Relational Database Service

Latest applications rely heavily on databases.

Whether you're building:

  • E-commerce platforms
  • Banking applications
  • SaaS products
  • Mobile apps
  • Enterprise systems
  • AI-powered applications

You need a reliable database.

Traditionally, managing databases meant:

  • Installing database servers
  • Managing backups
  • Configuring replication
  • Applying patches
  • Monitoring performance
  • Handling failovers
  • Scaling storage

All manually.

This creates operational overhead and increases risk.

To solve this problem, AWS introduced Amazon Relational Database Service (RDS).


🔗 Resources


What is AWS RDS?

Amazon Relational Database Service (RDS) is a fully managed database service provided by AWS.

RDS allows you to run relational databases without worrying about underlying infrastructure management.

Instead of managing:

Operating System
Database Installation
Patching
Backups
Failover
Monitoring
Storage Scaling
Enter fullscreen mode Exit fullscreen mode

AWS manages them for you.

You focus on:

Applications
Queries
Schema Design
Business Logic
Enter fullscreen mode Exit fullscreen mode

Why AWS Created RDS

Before RDS, database administrators spent significant time managing infrastructure.

Typical workflow:

Provision Server
       ↓
Install Database
       ↓
Configure Security
       ↓
Setup Backups
       ↓
Configure Replication
       ↓
Monitor Health
       ↓
Apply Patches
Enter fullscreen mode Exit fullscreen mode

RDS automates most of these tasks.


Why Use Amazon RDS?

1. Managed Service

AWS handles:

  • OS maintenance
  • Database patching
  • Monitoring
  • Automated backups
  • High availability

2. Automated Backups

RDS automatically creates backups.

Benefits:

  • Point-in-time recovery
  • Reduced operational effort
  • Disaster recovery support

3. High Availability

Using Multi-AZ deployment:

Primary Database
        ↓
Synchronous Replication
        ↓
Standby Database
Enter fullscreen mode Exit fullscreen mode

If primary fails:

Automatic Failover
Enter fullscreen mode Exit fullscreen mode

4. Easy Scaling

You can scale:

Compute

db.t3.medium
      ↓
db.r6g.large
Enter fullscreen mode Exit fullscreen mode

Storage

Increase storage without rebuilding infrastructure.


5. Security

Integration with:

  • IAM
  • KMS Encryption
  • Security Groups
  • VPC
  • CloudTrail

rds


RDS Architecture

Application
       ↓
Load Balancer
       ↓
EC2 / ECS / EKS
       ↓
Amazon RDS
       ↓
Storage Layer
Enter fullscreen mode Exit fullscreen mode

Applications connect to the RDS endpoint.

Example:

mydb.xxxxxx.us-east-1.rds.amazonaws.com
Enter fullscreen mode Exit fullscreen mode

Core Components of Amazon RDS


DB Instance

A DB Instance is the database server.

Example:

MySQL Instance
db.t3.medium
50 GB Storage
Enter fullscreen mode Exit fullscreen mode

This is where the database engine runs.


Storage Layer

RDS supports:

  • General Purpose SSD
  • Provisioned IOPS SSD
  • Magnetic Storage (legacy)

Endpoint

Applications never connect directly to servers.

Instead they connect using:

Database Endpoint
Enter fullscreen mode Exit fullscreen mode

Example:

mysql-prod.abc123.us-east-1.rds.amazonaws.com
Enter fullscreen mode Exit fullscreen mode

Security Groups

Control inbound database traffic.

Example:

EC2 → MySQL Port 3306 → RDS
Enter fullscreen mode Exit fullscreen mode

Parameter Groups

Used to customize database settings.

Examples:

max_connections
query_cache_size
log settings
Enter fullscreen mode Exit fullscreen mode

Option Groups

Used for engine-specific features.

Examples:

Oracle Enterprise Options
SQL Server Features
Enter fullscreen mode Exit fullscreen mode

How to Create Amazon RDS MySQL Database - Step by Step Guide

Image first

Image second

Image third

Image four

Image five


Understanding Multi-AZ Deployments

One of the most important RDS features.

Without Multi-AZ:

Application
      ↓
Single Database
Enter fullscreen mode Exit fullscreen mode

Database failure means downtime.

With Multi-AZ:

Primary DB
      ↓
Synchronous Replication
      ↓
Standby DB
Enter fullscreen mode Exit fullscreen mode

Benefits:

  • High availability
  • Automatic failover
  • Better resilience

Read Replicas

Read Replicas improve read performance.

Architecture:

Primary Database
      ↓
Asynchronous Replication
      ↓
Read Replica 1
      ↓
Read Replica 2
Enter fullscreen mode Exit fullscreen mode

Used for:

  • Reporting
  • Analytics
  • Read-heavy applications

Automated Backups

RDS automatically creates backups.

Features:

  • Daily snapshots
  • Transaction logs
  • Point-in-time recovery

Example:

Restore database
to 11:42 AM yesterday
Enter fullscreen mode Exit fullscreen mode

Manual Snapshots

Manual snapshots remain until deleted.

Useful for:

  • Migration
  • Upgrades
  • Disaster recovery

Amazon Aurora Explained

Aurora is AWS's cloud-native relational database.

It is compatible with:

  • MySQL
  • PostgreSQL

But internally it is architected differently.


Why Aurora Exists

Traditional databases face limitations:

Storage Bottlenecks
Replication Delays
Scaling Challenges
Enter fullscreen mode Exit fullscreen mode

Aurora solves these issues.


Aurora Architecture

Application
       ↓
Aurora Cluster
       ↓
Writer Instance
       ↓
Shared Distributed Storage
       ↓
Reader Instances
Enter fullscreen mode Exit fullscreen mode

Storage and compute are separated.


Aurora MySQL vs Standard MySQL

rds vs aurora


Aurora Performance Advantage

Aurora's storage system replicates data across multiple Availability Zones.

Traditional MySQL:

Database
      ↓
Single Storage Layer
Enter fullscreen mode Exit fullscreen mode

Aurora:

Database
      ↓
Distributed Storage
      ↓
Multiple AZs
Enter fullscreen mode Exit fullscreen mode

This improves:

  • Throughput
  • Durability
  • Recovery

Aurora Cluster Components


Writer Instance

Handles:

INSERT
UPDATE
DELETE
Enter fullscreen mode Exit fullscreen mode

Reader Instance

Handles:

SELECT Queries
Enter fullscreen mode Exit fullscreen mode

Used for scaling reads.


Shared Storage Layer

Aurora automatically replicates data across multiple AZs.


RDS vs Aurora

Feature RDS MySQL Aurora MySQL
Simplicity Easier More Advanced
Cost Lower Higher
Performance Good Excellent
Scaling Good Better
Availability High Very High
Enterprise Workloads Moderate Excellent

Security Features in RDS


Encryption at Rest

Uses AWS KMS.

Database Storage
Snapshots
Read Replicas
Enter fullscreen mode Exit fullscreen mode

can be encrypted.


Encryption in Transit

Uses SSL/TLS.

Application
      ↓ TLS
Amazon RDS
Enter fullscreen mode Exit fullscreen mode

IAM Authentication

Instead of passwords:

IAM Token Authentication
Enter fullscreen mode Exit fullscreen mode

can be used.


VPC Integration

RDS runs inside VPC.

Benefits:

  • Isolation
  • Network security
  • Controlled access

Monitoring RDS

AWS provides:


CloudWatch Metrics

Monitor:

  • CPU Utilization
  • Free Storage
  • Memory
  • Connections
  • IOPS

Enhanced Monitoring

Provides OS-level visibility.


Performance Insights

Shows:

  • Slow queries
  • Wait events
  • Database bottlenecks

Very useful for troubleshooting.


RDS Scaling


Vertical Scaling

Increase instance size.

db.t3.medium
      ↓
db.r6g.large
Enter fullscreen mode Exit fullscreen mode

Storage Scaling

Increase storage without downtime.


Read Scaling

Add Read Replicas.


Common RDS Use Cases


Web Applications

Application
      ↓
RDS MySQL
Enter fullscreen mode Exit fullscreen mode

E-commerce Platforms

Store:

  • Orders
  • Products
  • Customers

SaaS Platforms

Store:

  • Users
  • Billing data
  • Application metadata

Enterprise Applications

Store:

  • ERP data
  • CRM data
  • Business records

Cost Optimization Tips

Use Right Instance Types

Avoid oversized databases.


Use Reserved Instances

Can significantly reduce cost.


Enable Storage Auto Scaling

Avoid over-provisioning.


Remove Unused Read Replicas

Unused replicas generate cost.


Best Practices for Production

Enable Multi-AZ

Never run critical production workloads on single-AZ databases.


Enable Backups

Always configure backup retention.


Monitor Performance

Use:

  • CloudWatch
  • Performance Insights

Encrypt Everything

Enable:

Storage Encryption
TLS Connections
Enter fullscreen mode Exit fullscreen mode

Use Read Replicas

For read-heavy applications.


Test Restores

Backups are useless if restore procedures are never tested.


Example Production Architecture

rds flow


Final Thoughts

Amazon RDS removes much of the operational complexity involved in running databases.

Instead of spending time managing:

  • Servers
  • Backups
  • Failovers
  • Patching

teams can focus on building applications.

For most workloads:

RDS MySQL
RDS PostgreSQL
Enter fullscreen mode Exit fullscreen mode

are excellent choices.

For high-performance enterprise workloads:

Amazon Aurora
Enter fullscreen mode Exit fullscreen mode

is often the preferred option.

Whether you're a:

  • Cloud Engineer
  • DevOps Engineer
  • Backend Developer
  • Platform Engineer
  • Solutions Architect

understanding RDS is a fundamental AWS skill because databases remain at the heart of nearly every modern application.

Top comments (0)