Amazon RDS: What It Is and When to Use It

Definition

Amazon Relational Database Service (Amazon RDS) is a managed database service that runs popular relational engines on AWS with provisioning, patching, backups, monitoring, and high availability handled for you. You pick the engine and instance class; AWS runs the OS, the database software, automated backups, and failover. RDS lets you use the same SQL, drivers, and applications you already know — without owning the operational toil of running a database server.

How It Works

When you create an RDS DB instance, AWS provisions an EC2 instance of the class you chose, attaches EBS storage of the size and type you picked, installs the database engine, sets up parameter groups, and exposes a DNS endpoint for your application to connect to.

Key primitives:

  • DB instance — a single database server (primary, replica, or standby).
  • DB instance class — the hardware profile: General Purpose (db.m, db.t), Memory Optimized (db.r, db.x, db.z), Compute Optimized (db.c), Burstable (db.t).
  • DB subnet group — tells RDS which VPC subnets (and therefore which AZs) to use.
  • Parameter group — the engine configuration (my.cnf, postgresql.conf, etc.).
  • Option group — engine-specific features (Oracle OEM, SQL Server Mirroring, etc.).
  • Security group — network firewall controlling who can connect on the database port.

RDS integrates deeply with KMS (encryption at rest), CloudWatch (metrics and alarms), Performance Insights (database-load profiling), Secrets Manager (auto-rotating passwords), and IAM authentication (for MySQL, PostgreSQL, and MariaDB).

Key Features and Limits

Supported engines

RDS runs managed versions of: MySQL, PostgreSQL, MariaDB, Oracle, Microsoft SQL Server, and IBM Db2. Amazon Aurora (MySQL- and PostgreSQL-compatible) is documented separately but launched from the same console.

High availability

  • Multi-AZ deployment — synchronous standby in a different AZ; automatic failover on primary failure (typically 60–120 seconds). Multi-AZ is for HA, not read scaling.
  • Multi-AZ DB Cluster (MySQL, PostgreSQL only) — one writer + two readable standbys for faster failover and read offload.
  • RDS Proxy — a fully managed connection pooler that reduces connection churn and preserves availability across failovers; also integrates with IAM authentication and Secrets Manager.

Read scaling

  • Read Replicas — asynchronous copies, same-Region or cross-Region, used for read scaling or DR. You can promote a replica to a standalone database.

Storage types

  • General Purpose SSD (gp3/gp2) — default; balanced for most workloads.
  • Provisioned IOPS SSD (io1/io2) — high-performance storage for I/O-intensive databases.
  • Magnetic — legacy, not recommended for new deployments.

Storage supports storage autoscaling (grows automatically up to a ceiling) and encryption with KMS.

Backups and restore

  • Automated backups — daily full snapshot + transaction logs; retention 0–35 days. Enables point-in-time restore to any second within the retention window.
  • Manual DB snapshots — keep indefinitely until you delete them.
  • Cross-Region automated backups — optional copy to a second Region for DR.
  • Blue/Green Deployments — build a staging copy of the DB, sync changes, validate, then switch over in under a minute (MySQL, MariaDB, PostgreSQL, Aurora).
  • AWS Backup — centralized backup policies across multiple AWS services.

Common Use Cases

  1. Web and mobile application backends — classic three-tier architecture with RDS as the persistence layer.
  2. Lift-and-shift workloads — migrate on-prem Oracle, SQL Server, or MySQL to RDS with minimal application changes.
  3. Data warehousing staging — OLTP on RDS PostgreSQL with replication to Redshift for analytics.
  4. SaaS applications — Multi-tenant apps where strong transactional semantics matter.
  5. Financial or regulated workloads — engines like SQL Server and Oracle are first-class citizens with BYOL licensing options.
  6. Reporting / analytics offload — Read Replicas carry heavy read queries away from the primary.

Pricing Model

  • DB instance hours — based on instance class, engine, license (on-demand or BYOL), and Multi-AZ (doubles the hourly cost).
  • Storage — per GiB-month, different rates for gp3, io2, and magnetic.
  • Provisioned IOPS / throughput — additional charges for io1/io2 and for gp3 beyond the baseline.
  • Backup storage — free up to the size of your DB; beyond that, per GB-month.
  • Data transfer out — standard AWS data-transfer rates.
  • RDS Proxy — per vCPU of the underlying DB.
  • Reserved Instances — 1-year or 3-year commitments cut on-demand up to ~69%.

AWS Free Tier covers 750 hours/month of db.t3.micro or db.t4g.micro (MySQL/MariaDB/PostgreSQL/SQL Server Express) with 20 GB storage for 12 months.

Pros and Cons

Pros

  • Managed OS, patching, backups, and failover.
  • Supports the database engines most enterprises already use.
  • Easy high availability via Multi-AZ and Read Replicas.
  • Strong integrations: KMS, IAM auth, Secrets Manager, Performance Insights, CloudWatch, AWS Backup.

Cons

  • Per-instance pricing — scaling means bigger instances (vertical) or replicas (horizontal).
  • Version upgrades and major engine upgrades still require coordination and maintenance windows.
  • Less elasticity than Aurora or DynamoDB — storage and compute grow in chunky steps.
  • Some engine-specific features (e.g., Oracle RAC, SQL Server Always On listeners beyond Multi-AZ) aren't supported.

Comparison with Alternatives

| | RDS | Aurora | DynamoDB | Self-managed on EC2 | | --- | --- | --- | --- | --- | | Data model | Relational (SQL) | Relational (MySQL/PostgreSQL-compatible) | Key-value / document (NoSQL) | Any | | Management burden | Low | Low | None | High | | HA story | Multi-AZ + Read Replicas | 6-way storage across 3 AZs, up to 15 replicas | Automatic | You build it | | Read replicas | Up to 5–15 (engine-specific) | Up to 15, low lag | N/A (Global Tables for multi-Region) | Manual | | Best for | Standard relational workloads | Heavy MySQL/Postgres workloads needing performance/HA | Serverless key-value workloads | Specialized engines/features AWS doesn't manage |

Pick Aurora over plain RDS when you want MySQL/Postgres compatibility with significantly better performance and resilience at similar cost. Pick DynamoDB when the workload is key-value / document with predictable single-item access patterns. Pick self-managed on EC2 when you need a feature AWS doesn't expose (e.g., Oracle RAC, PostgreSQL extensions that RDS doesn't support).

Exam Relevance

  • Solutions Architect Associate (SAA-C03) — Multi-AZ vs Read Replica, encryption at rest, RDS Proxy for Lambda, Performance Insights, cross-Region backups.
  • Developer Associate (DVA-C02) — connection pooling with RDS Proxy, IAM database authentication, Secrets Manager integration, parameter groups.
  • SysOps Administrator (SOA-C02) — automated backups, maintenance windows, slow-query monitoring, storage autoscaling.
  • Database Specialty (DBS-C01) — deep coverage: every engine, parameter tuning, migration with DMS, cross-engine replication, advanced HA and DR.

Classic exam distinction: Multi-AZ is for high availability (synchronous standby, automatic failover); Read Replicas are for read scaling (asynchronous, possibly cross-Region). Do not confuse them.

Frequently Asked Questions

Q: What's the difference between RDS Multi-AZ and Read Replicas?

A: Multi-AZ keeps a synchronous standby in a different AZ that is not queryable under normal conditions — it exists purely to take over if the primary fails. Read Replicas are asynchronous, queryable copies you use to scale read traffic horizontally; they can be in the same Region or cross-Region, and you can promote a replica into a standalone database for DR. You can — and often should — combine both: a Multi-AZ primary for HA, plus Read Replicas for read scaling.

Q: When should I use Aurora instead of standard RDS MySQL or PostgreSQL?

A: Aurora is usually the better choice when you want higher performance (up to 5× MySQL, 3× PostgreSQL), faster replication (sub-10 ms replica lag), up to 15 replicas, Aurora Serverless for scale-to-zero workloads, or Aurora Global Database for cross-Region DR with sub-1-second replication. Stick with standard RDS when you're running an engine Aurora does not support (Oracle, SQL Server, Db2, MariaDB), when you need tight compatibility with a specific MySQL or PostgreSQL version, or when cost at small scale matters more than raw performance.

Q: How does RDS Proxy help Lambda applications?

A: Lambda functions scaling up can exhaust a database's connection pool, causing timeouts during traffic spikes. RDS Proxy sits between Lambda and the database, maintaining a warm pool of connections that many Lambda invocations share. It also integrates with Secrets Manager for credential rotation and with IAM for authentication, and it preserves the application's connection during an RDS failover — reducing the recovery time felt by clients from minutes to seconds.


This article reflects AWS features and pricing as of 2026. AWS services evolve rapidly — always verify against the official Amazon RDS documentation before making production decisions.

Published: 4/16/2026

This article is for informational purposes only. AWS services, pricing, and features change frequently — always verify details against the official AWS documentation before making production decisions.

More in Databases