Amazon RDS is a managed relational database service that handles provisioning, patching, backup, recovery, and scaling — so you can focus on your application rather than database administration.
In Azure terms: AWS RDS = Azure SQL Database / Azure Database for PostgreSQL / MySQL
Engine Notes Amazon Aurora AWS’s custom MySQL/PostgreSQL-compatible engine — 5× faster than MySQL, 3× faster than PostgreSQL MySQL Open-source, widely used PostgreSQL Advanced open-source, extensible MariaDB Community MySQL fork Oracle Enterprise, bring-your-own-license or license-included Microsoft SQL Server Full MS SQL Server support with license options
Concept Description DB Instance The running database server DB Instance Class Hardware spec (CPU, RAM) — e.g., db.t3.micro, db.r6g.large Multi-AZ Deployment Standby replica in another AZ for automatic failover Read Replica Read-only copy for offloading read traffic (async replication) Parameter Group DB engine configuration settings Subnet Group Set of subnets (in different AZs) where RDS can deploy instances Automated Backups Daily snapshots + transaction logs, retained 1–35 days Manual Snapshots User-triggered snapshots, kept until deleted
Feature Multi-AZ Read Replica Purpose High availability, failover Read scalability Sync type Synchronous replication Asynchronous replication Readable No (standby not accessible) Yes (read-only) Failover Automatic (~60 seconds) Manual promotion Cross-region Yes (Multi-AZ Cluster) Yes Extra cost ~2× the instance cost Additional instance cost
Aurora is AWS’s cloud-native relational database, compatible with MySQL and PostgreSQL:
Storage auto-scaling — starts at 10 GB, grows to 128 TB automatically
6 copies of data across 3 AZs — 4 out of 6 copies needed for writes
Read replicas — up to 15, with sub-10ms replica lag
Aurora Serverless v2 — auto-scales compute up and down to 0 (great for variable workloads)
Global Database — replicate across regions with < 1 second latency
Component Description Instance hours Billed per second for the running instance Storage GB/month for provisioned storage (gp2/gp3/io1) I/O requests For magnetic and provisioned IOPS storage Backup storage Free up to 100% of DB storage size Data transfer Outbound internet transfer
db.t3.micro is included in the AWS Free Tier (750 hours/month + 20 GB storage for 12 months).
VPC isolation — deploy in private subnets, no public access
Security Groups — control inbound connections
Encryption at rest — AES-256 via KMS (enable at creation)
Encryption in transit — SSL/TLS connections
IAM authentication — use IAM tokens instead of passwords (MySQL and PostgreSQL)
Secrets Manager integration — automatic credential rotation
Feature AWS RDS Azure SQL Database Managed service Yes Yes Engines MySQL, PostgreSQL, Oracle, SQL Server, MariaDB SQL Server (native), plus separate services for others Aurora equivalent Amazon Aurora Azure SQL Hyperscale Read replicas Yes Yes (Geo-replicas, read replicas) Auto-failover Multi-AZ Zone-redundant / Geo-failover Serverless Aurora Serverless v2 Azure SQL Serverless Backup retention 0–35 days 1–35 days IAM auth Yes (MySQL, PostgreSQL) Azure AD auth
# Create an RDS PostgreSQL instance
aws rds create-db-instance \
--db-instance-identifier my-postgres \
--db-instance-class db.t3.micro \
--master-username admin \
--master-user-password MyPassword123! \
--no-publicly-accessible \
--db-subnet-group-name my-subnet-group
aws rds create-db-instance-read-replica \
--db-instance-identifier my-postgres-read \
--source-db-instance-identifier my-postgres
# Create a manual snapshot
aws rds create-db-snapshot \
--db-instance-identifier my-postgres \
--db-snapshot-identifier my-postgres-snap-2024
aws rds describe-db-instances \
--query ' DBInstances[*].[DBInstanceIdentifier,DBInstanceStatus,Endpoint.Address] ' \