VOOZH about

URL: https://dev.to/17j/day-19-relational-database-service-2gn0

⇱ Day 19 - Relational Database Service - DEV Community


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

AWS manages them for you.

You focus on:

Applications
Queries
Schema Design
Business Logic

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

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

If primary fails:

Automatic Failover

4. Easy Scaling

You can scale:

Compute

db.t3.medium
 ↓
db.r6g.large

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

Applications connect to the RDS endpoint.

Example:

mydb.xxxxxx.us-east-1.rds.amazonaws.com

Core Components of Amazon RDS


DB Instance

A DB Instance is the database server.

Example:

MySQL Instance
db.t3.medium
50 GB Storage

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

Example:

mysql-prod.abc123.us-east-1.rds.amazonaws.com

Security Groups

Control inbound database traffic.

Example:

EC2 → MySQL Port 3306 → RDS

Parameter Groups

Used to customize database settings.

Examples:

max_connections
query_cache_size
log settings

Option Groups

Used for engine-specific features.

Examples:

Oracle Enterprise Options
SQL Server Features

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

Database failure means downtime.

With Multi-AZ:

Primary DB
 ↓
Synchronous Replication
 ↓
Standby DB

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

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

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

Aurora solves these issues.


Aurora Architecture

Application
 ↓
Aurora Cluster
 ↓
Writer Instance
 ↓
Shared Distributed Storage
 ↓
Reader Instances

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

Aurora:

Database
 ↓
Distributed Storage
 ↓
Multiple AZs

This improves:

  • Throughput
  • Durability
  • Recovery

Aurora Cluster Components


Writer Instance

Handles:

INSERT
UPDATE
DELETE

Reader Instance

Handles:

SELECT Queries

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

can be encrypted.


Encryption in Transit

Uses SSL/TLS.

Application
 ↓ TLS
Amazon RDS

IAM Authentication

Instead of passwords:

IAM Token Authentication

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

Storage Scaling

Increase storage without downtime.


Read Scaling

Add Read Replicas.


Common RDS Use Cases


Web Applications

Application
 ↓
RDS MySQL

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

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

are excellent choices.

For high-performance enterprise workloads:

Amazon Aurora

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.