RDS vs Aurora vs DynamoDB – Database Selection Guide

RDS vs Aurora vs DynamoDB – AWS Database Selection Guide

Choosing the right AWS database service is one of the most impactful architectural decisions you’ll make. Amazon RDS, Amazon Aurora, and Amazon DynamoDB serve fundamentally different needs, and selecting the wrong one leads to performance bottlenecks, cost overruns, or painful migrations. This guide provides a structured decision framework — not just feature comparisons — to help you choose correctly the first time.

This post is designed as a selection/decision guide with clear criteria, decision flowcharts, and tradeoff analysis for each service.

🎯 Quick Decision Rule:

  • Need SQL, complex joins, existing relational schema? → RDS or Aurora
  • Need SQL + high availability + auto-scaling + performance? → Aurora
  • Need unlimited scale, single-digit ms latency, simple access patterns? → DynamoDB

Decision Framework: When to Choose Each

Choose Amazon RDS When:

  • You need a specific database engine not supported by Aurora (Oracle, SQL Server, MariaDB)
  • Your workload is predictable and steady with well-understood capacity needs
  • You want the lowest cost for a managed relational database with moderate performance needs
  • You’re doing a lift-and-shift migration from on-premises with minimal changes
  • Your application requires engine-specific features (e.g., Oracle RAC alternatives, SQL Server Always On)
  • Storage needs are under 64 TB and you want direct control over IOPS provisioning

Choose Amazon Aurora When:

  • You need MySQL or PostgreSQL compatibility with significantly better performance
  • Your workload requires high availability with fast automated failover (<30 seconds)
  • You need auto-scaling storage up to 128 TB without manual provisioning
  • Your traffic is variable or unpredictable (Aurora Serverless v2 scales to zero)
  • You need cross-region disaster recovery with <1 second replication lag (Global Database)
  • You need horizontal write scaling for relational data (Aurora Limitless Database)
  • Performance requirements exceed what standard RDS can deliver (5x MySQL, 3x PostgreSQL throughput)

Choose Amazon DynamoDB When:

  • Your access patterns are well-defined and predictable (key-value lookups, simple queries)
  • You need single-digit millisecond latency at any scale (or microseconds with DAX)
  • Your application must scale to millions of requests per second without capacity planning
  • You want zero infrastructure management — no instances, no patching, no maintenance windows
  • You need active-active multi-region writes with Global Tables
  • Your data model is denormalized or fits key-value/document patterns
  • You need event-driven architectures with DynamoDB Streams triggering Lambda

Architecture Differences

Amazon RDS – Traditional Managed Architecture

  • Compute + Storage coupled — EC2 instance with attached EBS volumes (gp3 or io2)
  • Storage limited to 64 TB (gp3) with manual IOPS provisioning
  • Multi-AZ: synchronous standby replica for failover (30-60 second failover)
  • Multi-AZ DB Clusters: 1 writer + 2 readable standbys, ~35 second failover
  • Read Replicas: asynchronous, up to 15 (MySQL/MariaDB) or 5 (PostgreSQL/Oracle/SQL Server)
  • Supports 6 engines: MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, Db2
  • RDS Custom: Full OS/database access for Oracle and SQL Server customization
  • RDS Proxy: Connection pooling for serverless/Lambda workloads

Amazon Aurora – Cloud-Native Relational Architecture

  • Compute and storage decoupled — storage is a shared distributed volume across 3 AZs
  • 6 copies of data across 3 AZs; writes acknowledged with 4/6 quorum
  • Tolerates loss of 2 copies for writes, 3 copies for reads — without interruption
  • Storage auto-scales from 10 GB to 128 TB, no provisioning needed
  • Up to 15 read replicas sharing the same storage (near-zero replication lag)
  • Failover to replica in <30 seconds (no data copy required — shared storage)
  • Aurora Serverless v2: scales in ACUs, scales to zero, up to 30% better performance (2026 platform v4)
  • Aurora Global Database: cross-region with <1 second replication, RPO <1 second
  • Aurora Limitless Database (GA Oct 2024): automated horizontal write scaling via sharding, millions of writes/sec
  • Aurora DSQL (GA May 2025): distributed SQL, active-active multi-region, 99.999% availability
  • Supports: MySQL and PostgreSQL only

Amazon DynamoDB – Serverless Distributed NoSQL

  • Fully serverless — no instances, no storage provisioning, no maintenance windows
  • Data automatically replicated across 3 AZs
  • Horizontally partitioned by partition key — unlimited scaling
  • Supports key-value and document data models
  • Global Tables: active-active multi-region with multi-region strong consistency (MRSC, 2025)
  • DynamoDB Streams: ordered change data capture for event-driven patterns
  • DAX: in-memory cache providing microsecond read latency
  • Zero-ETL with Redshift: real-time analytics without data movement
  • Standard and Standard-IA table classes for cost optimization

Comprehensive Comparison Table

Criteria Amazon RDS Amazon Aurora Amazon DynamoDB
Database Type Relational (SQL) Relational (SQL) – cloud-native NoSQL (Key-Value / Document)
Engines MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, Db2 MySQL-compatible, PostgreSQL-compatible Proprietary (API + PartiQL)
Max Storage 64 TB (gp3) 128 TB (auto-scaling) Unlimited (per table)
Performance Standard engine performance; dependent on instance + EBS IOPS 5x MySQL, 3x PostgreSQL throughput; optimized I/O paths Single-digit ms latency; microseconds with DAX; consistent at any scale
Scaling – Vertical Instance resize (downtime); up to 128 vCPUs Instance resize or Serverless v2 auto-scaling (0.5–256 ACUs) N/A – fully managed, scales automatically
Scaling – Horizontal (Reads) Up to 15 read replicas (async) Up to 15 replicas (shared storage, near-zero lag) Automatic partitioning; unlimited read throughput
Scaling – Horizontal (Writes) Single writer only (manual sharding needed) Single writer; Limitless Database for automated sharding (PG) Automatic partitioning; unlimited write throughput
Availability SLA 99.95% (Multi-AZ) 99.99%; 99.999% (DSQL multi-region) 99.99% (standard); 99.999% (Global Tables)
Failover Time 30-60 sec (Multi-AZ); ~35 sec (DB Clusters) <30 sec (replica promotion); instant (Serverless) N/A – multi-AZ by default, no failover concept
Multi-Region Cross-region read replicas (manual promotion) Global Database (<1s lag); DSQL (active-active) Global Tables (active-active, MRSC for strong consistency)
Serverless Option No (always provisioned instances) Yes – Serverless v2 (scales to zero) Yes – fully serverless by default
Backup/Recovery Automated backups (35 days); manual snapshots; PITR Continuous backup to S3; PITR; Backtrack (MySQL, in-place rewind) Continuous backup; PITR (35 days); on-demand backup
Encryption At-rest (KMS) + in-transit (SSL/TLS) At-rest (KMS) + in-transit (SSL/TLS) At-rest (KMS, default) + in-transit (TLS)
Authentication DB native + IAM DB Auth + Kerberos/AD DB native + IAM DB Auth + Kerberos/AD IAM policies + fine-grained access control
Pricing Model Instance hours + EBS storage + IOPS (if io2) + data transfer Instance/ACU hours + storage ($0.10/GB) + I/O or I/O-Optimized On-demand (per request) or Provisioned (WCU/RCU) + storage ($0.25/GB)
Cost Optimization Reserved Instances (1yr/3yr) Reserved Instances; I/O-Optimized tier; Serverless Reserved Capacity; Standard-IA class; on-demand vs provisioned
Maintenance Maintenance windows required for patching Maintenance windows (less frequent); zero-downtime patching available Zero maintenance — no windows, no patching, no downtime
Best For Lift-and-shift; Oracle/SQL Server workloads; steady predictable loads High-performance MySQL/PostgreSQL; variable traffic; mission-critical apps Massive scale; gaming/IoT/mobile; simple access patterns; event-driven

Scaling Approaches Compared

RDS Scaling

  • Vertical: Change instance class (requires brief downtime for single-AZ; rolling for Multi-AZ DB Clusters)
  • Storage: Increase EBS volume size (online, but cannot decrease); up to 80,000 IOPS with gp3 (2026)
  • Read scale-out: Add read replicas (async replication means eventual consistency for reads)
  • Write scale-out: Not supported natively — requires application-level sharding
  • Limitation: Write throughput bound by single instance capacity

Aurora Scaling

  • Vertical: Instance resize or Serverless v2 auto-scaling (0.5 to 256 ACUs, increments of 0.5)
  • Storage: Automatic — grows in 10 GB increments, up to 128 TB, never shrinks below high-water mark
  • Read scale-out: Up to 15 replicas with shared storage (no replication lag penalty)
  • Write scale-out: Aurora Limitless Database (PostgreSQL) — automated sharding across multiple writer instances, petabyte scale
  • Serverless: Scales to zero when idle; responds in milliseconds; ideal for dev/test and variable traffic
  • Advantage: Scaling doesn’t require data copying — shared storage architecture

DynamoDB Scaling

  • Fully automatic: No instance sizing or storage provisioning — scales horizontally by adding partitions
  • On-demand mode: Instantly accommodates up to 2x previous peak; no throttling for gradual increases
  • Provisioned mode: Set WCU/RCU with auto-scaling policies (target utilization-based)
  • No practical limits: Handles millions of requests/second, unlimited storage per table
  • Consideration: Requires good partition key design — hot partitions can cause throttling
  • 2025 update: More frequent mode switches between provisioned and on-demand now allowed

Pricing Comparison

Amazon RDS Pricing

  • Instance hours: Pay per hour for chosen instance type (e.g., db.r6g.large ~$0.26/hr in us-east-1)
  • Storage: gp3 at $0.115/GB/month (includes 3,000 IOPS baseline); io2 for high-performance
  • Additional IOPS: gp3 provisioned IOPS $0.08/IOPS/month above baseline
  • Backup: Free up to 100% of DB size; additional at $0.095/GB/month
  • Data transfer: Standard AWS rates
  • Savings: Reserved Instances (up to 60% discount for 3-year all-upfront)
  • Lowest entry cost among the three for relational workloads

Amazon Aurora Pricing

  • Instance hours: ~20% premium over equivalent RDS instances
  • Storage: $0.10/GB/month (auto-provisioned, slightly cheaper per-GB than RDS gp3)
  • I/O (Standard tier): $0.20 per million I/O requests — can be significant for write-heavy workloads
  • I/O-Optimized tier: 30-40% higher instance + storage cost, but zero I/O charges — breaks even at ~500K I/Os per instance hour
  • Serverless v2: $0.12 per ACU-hour (billed per second); scales to zero = $0 when idle
  • Savings: Reserved Instances; choose I/O-Optimized for high-throughput; Serverless for variable loads
  • Cost trap: I/O charges in Standard tier can double the bill for read-heavy/high-throughput workloads

Amazon DynamoDB Pricing

  • On-demand: $1.25 per million write request units (WRU); $0.25 per million read request units (RRU)
  • Provisioned: $0.00065 per WCU/hour; $0.00013 per RCU/hour (~$0.47/WCU/month)
  • Storage: $0.25/GB/month (Standard); $0.10/GB/month (Standard-IA for infrequent access)
  • Global Tables: Replicated writes cost 1.5x (rWRU/rWCU) + cross-region transfer
  • Transactions: 2x cost (each transactional operation counts double)
  • Savings: Reserved Capacity (up to 77% for 3-year); provisioned mode for steady workloads
  • Cost insight: On-demand is ~7x more expensive than provisioned for sustained throughput — switch to provisioned once patterns stabilize
💰 Cost Decision Matrix:

  • Lowest cost, steady relational workload: RDS with Reserved Instances
  • Variable traffic, pay-for-what-you-use: Aurora Serverless v2 or DynamoDB on-demand
  • High-throughput relational: Aurora I/O-Optimized with Reserved Instances
  • Massive scale NoSQL, steady traffic: DynamoDB Provisioned + Reserved Capacity
  • Unpredictable/spiky NoSQL: DynamoDB on-demand

Availability and Disaster Recovery

Feature RDS Aurora DynamoDB
Data Replication Synchronous to 1 standby (Multi-AZ) 6 copies across 3 AZs (automatic) 3 copies across 3 AZs (automatic)
RPO (Data Loss) 0 (Multi-AZ sync); seconds (read replicas) 0 (same region); <1 sec (Global Database) 0 (same region); 0 with MRSC (Global Tables)
RTO (Recovery Time) 30-60 sec (Multi-AZ); minutes (replica promotion) <30 sec (replica); <1 min (Global failover) Instant (multi-AZ built-in); seconds (Global Tables failover)
Cross-Region DR Cross-region read replicas (manual failover) Global Database (managed failover); DSQL (automatic) Global Tables (automatic active-active)
Point-in-Time Recovery Yes (up to 35 days) Yes (up to 35 days) + Backtrack (MySQL, no new cluster) Yes (up to 35 days)
Maintenance Downtime Required (maintenance windows) Minimal (zero-downtime patching for many updates) Zero (no maintenance windows ever)

Security Features

Security Feature RDS Aurora DynamoDB
Network Isolation VPC, Security Groups, private subnets VPC, Security Groups, private subnets VPC Endpoints (Gateway); no VPC placement needed
Encryption at Rest AES-256 via KMS (must enable at creation) AES-256 via KMS (must enable at creation) AES-256 via KMS (enabled by default)
Encryption in Transit SSL/TLS (configurable, can enforce) SSL/TLS (configurable, can enforce) TLS (HTTPS endpoints, always encrypted)
Authentication Database native; IAM DB Auth; Kerberos/AD; Secrets Manager rotation Database native; IAM DB Auth; Kerberos/AD; Secrets Manager rotation IAM policies only (no DB-level users)
Fine-Grained Access Database GRANT/REVOKE (table/column level) Database GRANT/REVOKE (table/column level) IAM conditions on partition keys, attributes
Audit Logging Engine-native audit logs + CloudTrail (API) Engine-native audit logs + CloudTrail (API) CloudTrail (API); no query-level audit natively
Connection Management RDS Proxy for pooling RDS Proxy for pooling N/A — HTTP/HTTPS API (no persistent connections)

Decision Flowchart: Selecting Your Database

Step 1: What’s Your Data Model?

  • Relational (tables, joins, foreign keys, complex queries) → Go to Step 2
  • Key-value, document, or denormalized → Go to Step 5

Step 2: Which Database Engine Do You Need?

  • Oracle, SQL Server, MariaDB, or Db2Choose RDS
  • MySQL or PostgreSQL → Go to Step 3

Step 3: What Are Your Performance/Scale Requirements?

  • Standard performance is sufficient; cost is primary concernChoose RDS
  • Need high throughput (5x MySQL/3x PG), auto-scaling storage, fast failover → Go to Step 4
  • Need horizontal write scaling (millions of writes/sec)Choose Aurora Limitless Database
  • Need active-active multi-region SQL with 99.999% availabilityChoose Aurora DSQL

Step 4: What’s Your Traffic Pattern?

  • Steady, predictable trafficChoose Aurora Provisioned
  • Variable/spiky traffic or dev/test environmentsChoose Aurora Serverless v2
  • Infrequent use with cost sensitivityChoose Aurora Serverless v2 (scales to zero)

Step 5: DynamoDB Fit Assessment

  • Access patterns are known and can be modeled with partition/sort keysChoose DynamoDB
  • Need ad-hoc queries, complex joins, or flexible querying → Go back to Step 2 (use relational)
  • Need <1ms reads with cachingChoose DynamoDB + DAX
  • Need active-active multi-region with zero RPOChoose DynamoDB Global Tables (MRSC)

Common Use Case Mapping

Use Case Recommended Service Why
E-commerce product catalog + orders Aurora (orders) + DynamoDB (catalog/cart) ACID for transactions; low-latency reads for catalog
Gaming leaderboard / session store DynamoDB Unlimited scale, single-digit ms, simple access patterns
SaaS multi-tenant application Aurora (Limitless for large scale) or DynamoDB SQL for complex queries; DynamoDB for per-tenant isolation
Legacy Oracle migration to AWS RDS for Oracle or RDS Custom Full Oracle compatibility; minimal code changes
IoT sensor data ingestion DynamoDB Massive write throughput; time-series via sort key; TTL for expiry
Financial transaction processing Aurora or Aurora DSQL (global) Strong ACID; high throughput; cross-region consistency
Content management system (WordPress-style) RDS MySQL/PostgreSQL Standard performance sufficient; lowest cost; proven compatibility
Real-time mobile app backend DynamoDB + DynamoDB Streams Serverless; event-driven; scales with users
Enterprise reporting with complex joins Aurora PostgreSQL Complex SQL; parallel query; high read throughput
Globally distributed app (multi-region writes) DynamoDB Global Tables or Aurora DSQL Active-active; conflict resolution; low-latency global access

Key Tradeoffs to Consider

Tradeoff Winner Explanation
Lowest cost (small relational workload) RDS ~20% cheaper instances than Aurora; no I/O charges with gp3
Best price-performance (relational) Aurora 5x MySQL throughput offsets 20% cost premium; I/O-Optimized eliminates surprise bills
Zero operational overhead DynamoDB No instances, no patching, no maintenance windows, no version upgrades
Query flexibility RDS / Aurora Full SQL — ad-hoc queries, joins, aggregations; DynamoDB requires pre-planned access patterns
Unlimited horizontal scale DynamoDB Automatic partitioning; no upper bound on throughput or storage
Multi-region active-active (NoSQL) DynamoDB Global Tables with MRSC for zero-RPO multi-region strong consistency
Multi-region active-active (SQL) Aurora DSQL Only AWS relational option with true active-active multi-region writes
Engine diversity (Oracle, SQL Server) RDS Aurora only supports MySQL/PostgreSQL; RDS supports 6 engines

AWS Certification Exam Tips

📝 Key Exam Concepts:

  • If the question mentions “millisecond latency at any scale” or “millions of requests/second” → DynamoDB
  • If the question mentions “complex queries,” “joins,” or “ACID transactions” with high performance → Aurora
  • If the question mentions “Oracle,” “SQL Server,” or “lift-and-shift” → RDS
  • If the question mentions “serverless” + “relational” → Aurora Serverless v2
  • If the question mentions “globally distributed” + “active-active” → DynamoDB Global Tables or Aurora DSQL
  • If the question mentions “no maintenance windows” → DynamoDB
  • Aurora’s 6 copies across 3 AZs and shared storage architecture are frequent exam topics
  • DynamoDB partition key design and hot partition issues are common scenario questions

Practice Questions

Question 1:

A company is building a new e-commerce platform that requires complex SQL queries for inventory management, order processing with ACID transactions, and must handle Black Friday traffic spikes that are 10x normal load. The team uses PostgreSQL. Which database solution provides the best combination of SQL support, performance, and automatic scaling?

  1. Amazon RDS for PostgreSQL with Multi-AZ
  2. Amazon Aurora PostgreSQL with Serverless v2
  3. Amazon DynamoDB with on-demand capacity
  4. Amazon RDS for PostgreSQL with read replicas
Show Answer

Answer: B –

Explanation: Aurora PostgreSQL Serverless v2 provides full PostgreSQL SQL compatibility (complex queries, ACID transactions), delivers 3x PostgreSQL throughput, and automatically scales compute capacity to handle traffic spikes without manual intervention. It scales to zero during low-traffic periods and scales up instantly during Black Friday peaks. RDS would require manual instance resizing or over-provisioning. DynamoDB doesn’t support complex SQL queries or joins needed for inventory management.

Question 2:

A gaming company needs a database for their global leaderboard that must handle 5 million writes per second during peak hours, provide single-digit millisecond read latency, and be available in 4 AWS regions simultaneously with active-active writes. Which solution meets these requirements?

  1. Amazon Aurora Global Database with write forwarding
  2. Amazon DynamoDB with Global Tables
  3. Amazon RDS Multi-AZ with cross-region read replicas
  4. Amazon Aurora DSQL in multi-region configuration
Show Answer

Answer: B –

Explanation: DynamoDB Global Tables provide active-active multi-region replication with single-digit millisecond latency and can handle millions of requests per second with automatic scaling. Gaming leaderboards are a classic DynamoDB use case — simple access patterns (get/put by player ID, query by score) with massive scale requirements. Aurora Global Database doesn’t support active-active writes (only forwarding). Aurora DSQL supports active-active but is optimized for OLTP transactions, not the extreme write throughput needed here. RDS doesn’t support active-active multi-region.

Question 3:

A financial services company is migrating their Oracle-based core banking application to AWS. The application uses PL/SQL stored procedures extensively, requires full ACID compliance, and the team wants minimal code changes. Which is the most appropriate migration path?

  1. Amazon Aurora PostgreSQL with Babelfish
  2. Amazon RDS for Oracle
  3. Amazon DynamoDB with transactions
  4. Amazon Aurora MySQL
Show Answer

Answer: B –

Explanation: RDS for Oracle provides full Oracle engine compatibility including PL/SQL stored procedures, requiring minimal or zero code changes. The requirement explicitly states “minimal code changes” with heavy PL/SQL usage, which rules out Aurora (only MySQL/PostgreSQL compatible). DynamoDB doesn’t support SQL or stored procedures. Babelfish is for SQL Server T-SQL compatibility, not Oracle PL/SQL. For lift-and-shift of Oracle workloads, RDS for Oracle (or RDS Custom for Oracle with OS access) is the correct choice.

Question 4:

A startup is building an IoT platform that ingests sensor data from 100,000 devices. Each device sends readings every 5 seconds. The data must be stored for 30 days, after which it should be automatically deleted. The team needs to query recent data by device ID and time range. Which database solution is most cost-effective and operationally efficient?

  1. Amazon Aurora PostgreSQL with table partitioning
  2. Amazon RDS for MySQL with scheduled deletion jobs
  3. Amazon DynamoDB with TTL enabled
  4. Amazon Aurora Serverless v2 with scheduled scaling
Show Answer

Answer: C –

Explanation: DynamoDB with TTL (Time to Live) is ideal for this scenario. The access pattern is simple (device_id as partition key, timestamp as sort key), enabling efficient range queries. TTL automatically deletes expired items at no cost — no scheduled jobs needed. The write volume (~20,000 writes/second from 100K devices at 5-sec intervals) is easily handled by DynamoDB’s automatic scaling. DynamoDB’s serverless model means zero operational overhead for the startup. Aurora or RDS would require instance management, manual partition pruning or deletion jobs, and would be more expensive for this write-heavy, simple-query workload.

Question 5:

A company runs a MySQL-based application on Amazon RDS. They are experiencing performance issues during peak hours and their DBA reports that read replica lag is causing stale data problems. They need to improve read performance with minimal replication lag while keeping MySQL compatibility. The budget allows for a 20% cost increase. What should they do?

  1. Upgrade to a larger RDS instance class
  2. Migrate to Amazon Aurora MySQL
  3. Add more RDS read replicas
  4. Migrate to Amazon DynamoDB
Show Answer

Answer: B –

Explanation: Aurora MySQL provides 5x throughput improvement over standard MySQL, and its shared storage architecture means read replicas have near-zero replication lag (typically <10ms vs seconds/minutes for RDS async replicas). This directly addresses both problems: performance issues and stale read data. Aurora instances cost ~20% more than RDS (within budget). Adding more RDS replicas doesn’t fix the lag issue. A larger instance helps writes but doesn’t fix replica lag. DynamoDB would require a complete application rewrite and doesn’t maintain MySQL compatibility.

Summary

  • Amazon RDS is the right choice for traditional relational workloads requiring specific engines (Oracle, SQL Server, MariaDB, Db2), lift-and-shift migrations, or when cost is the primary concern for steady, predictable workloads.
  • Amazon Aurora excels for MySQL/PostgreSQL workloads needing superior performance, high availability, automatic storage scaling, and modern features like Serverless v2, Limitless Database, and DSQL for distributed SQL.
  • Amazon DynamoDB is the answer for applications requiring unlimited scale, single-digit millisecond latency, zero operational overhead, and well-defined access patterns that fit a key-value or document model.
  • Many real-world architectures use multiple services together — e.g., Aurora for transactional data and DynamoDB for session stores or high-velocity data streams.
  • The selection decision should be driven by access patterns, scale requirements, and data model — not team familiarity or historical precedent.

Frequently Asked Questions

How do I choose between RDS, Aurora, and DynamoDB?

Start with your data model: if you need key-value/document access patterns, choose DynamoDB. For relational data, choose Aurora for high performance and scaling needs, or standard RDS for simple workloads where cost is the priority.

Is Aurora worth the extra cost over RDS?

Aurora costs ~20% more than standard RDS but delivers up to 5x MySQL / 3x PostgreSQL throughput, 6-way storage replication, faster failover (30s vs 60-120s), and auto-scaling storage up to 128TB. Worth it for production workloads needing high availability.

Can DynamoDB replace a relational database?

DynamoDB can replace relational databases for access-pattern-driven workloads, but not for complex ad-hoc queries, multi-table joins, or analytics. It excels at single-digit millisecond key-value lookups at any scale but requires careful data modeling upfront.

References

Aurora vs RDS vs DynamoDB – Database Services Compared

AWS Aurora vs RDS vs DynamoDB – Database Services Compared

AWS offers multiple database services, each designed for different workloads. Amazon Aurora, Amazon RDS, and Amazon DynamoDB are three of the most widely used options. Understanding their architecture, scaling capabilities, pricing models, and ideal use cases is critical for both real-world implementations and AWS certification exams.

Overview

  • Amazon RDS – Managed relational database service supporting MySQL, PostgreSQL, MariaDB, Oracle, and SQL Server. Handles provisioning, patching, backup, and failover.
  • Amazon Aurora – Cloud-native relational database compatible with MySQL and PostgreSQL. Part of the RDS family but with a fundamentally redesigned storage architecture delivering up to 5x MySQL and 3x PostgreSQL throughput.
  • Amazon DynamoDB – Fully managed, serverless NoSQL key-value and document database delivering single-digit millisecond performance at any scale.

Architecture

Amazon RDS Architecture

  • Traditional database architecture with compute and storage tightly coupled on a single instance
  • Uses Amazon EBS (gp3 or io2) for storage, attached to a single DB instance
  • Multi-AZ deployment creates a synchronous standby replica in another AZ for failover
  • Multi-AZ DB Clusters (MySQL/PostgreSQL) provide one writer + two readable standbys across 3 AZs with faster failover (~35 seconds)
  • Read Replicas use asynchronous replication (up to 15 for MySQL/MariaDB, 5 for PostgreSQL/Oracle/SQL Server)
  • Supports ENA Express for improved Multi-AZ replication (2026)

Amazon Aurora Architecture

  • Separation of compute and storage – fundamentally different from RDS
  • Shared distributed storage volume spanning 3 AZs with 6 copies of data
  • Writes acknowledged when 4 of 6 copies confirm (quorum-based)
  • Tolerates loss of 2 copies without write impact, 3 copies without read impact
  • Storage auto-scales from 10 GB up to 128 TB with no provisioning
  • Up to 15 low-latency read replicas sharing the same storage volume (replication lag typically <10ms)
  • Failover to read replica in <30 seconds (shared storage means no data copy needed)
  • Aurora Serverless – auto-scales compute capacity in ACU (Aurora Capacity Units); scales to zero; up to 30% better performance with enhanced scaling (2026)
  • Aurora Global Database – cross-region replication with <1 second lag, RPO <1 second
  • Aurora DSQL (GA May 2025) – distributed SQL with active-active multi-region writes, 99.999% availability, PostgreSQL-compatible

Amazon DynamoDB Architecture

  • Fully serverless – no instances to provision or manage
  • Distributed across multiple AZs automatically (data replicated 3 times)
  • Partitioned by partition key for horizontal scalability
  • Supports key-value and document data models
  • Global Tables – active-active multi-region replication with multi-region strong consistency (MRSC, GA 2025) enabling zero RPO
  • Cross-account replication for Global Tables (2026)
  • DAX (DynamoDB Accelerator) provides microsecond read latency via in-memory caching

Data Model

Feature RDS Aurora DynamoDB
Type Relational (SQL) Relational (SQL) NoSQL (Key-Value / Document)
Schema Fixed schema, structured data Fixed schema, structured data Flexible schema, semi-structured
Query Language SQL SQL (MySQL/PostgreSQL compatible) PartiQL, API-based access
Transactions Full ACID Full ACID ACID (up to 100 items, 4 MB)
Joins Yes (complex queries) Yes (complex queries) No native joins (denormalized design)
Secondary Indexes Standard SQL indexes Standard SQL indexes GSI and LSI (max 20 GSI, 5 LSI)

Scaling

Vertical Scaling

Aspect RDS Aurora DynamoDB
Compute scaling Instance class change (requires downtime/failover) Instance class change OR Aurora Serverless (auto-scales ACUs in seconds) N/A – fully serverless, automatic
Storage scaling Manual increase (up to 64 TB); auto-scaling with threshold Automatic (10 GB to 128 TB, no action needed) Unlimited – fully managed
Max storage 64 TB (io2), 16 TB (gp3) 128 TB Virtually unlimited

Horizontal Scaling

Aspect RDS Aurora DynamoDB
Read scaling Up to 5-15 Read Replicas (async) Up to 15 Read Replicas (shared storage, <10ms lag); Auto Scaling Automatic partitioning; DAX for caching
Write scaling Single writer (vertical only) Single writer (Aurora DSQL supports multi-region active-active writes) Automatic horizontal partitioning; virtually unlimited write throughput
Global distribution Cross-Region Read Replicas Aurora Global Database (<1s replication); Aurora DSQL (active-active) Global Tables (active-active, multi-region strong consistency)

Pricing

Component RDS Aurora DynamoDB
Compute Per-hour instance pricing Per-hour (provisioned) or per-ACU-second (serverless) No compute charges (serverless)
Storage EBS: ~$0.115/GB/month (gp3) $0.10/GB/month (includes replication) $0.25/GB/month (Standard); $0.10/GB (IA)
I/O Included in EBS pricing (gp3: 3000 IOPS free) $0.20/million I/O requests (Standard); Aurora I/O-Optimized eliminates I/O charges for +30% compute cost On-demand: $1.25/million WRU, $0.25/million RRU; Provisioned: ~$0.00065/WCU/hour
Savings options Reserved Instances (1yr/3yr) Reserved Instances (1yr/3yr) Reserved Capacity (up to 77% savings, 3yr); On-demand 50% price reduction (2024)
Free Tier 750 hrs/month db.t2.micro or db.t3.micro (12 months) $100 credits at sign-up for Aurora Serverless 25 GB storage + 25 WCU + 25 RCU (always free)

Cost Comparison Note: Aurora instances cost ~20% more per vCPU than equivalent RDS instances. However, Aurora’s shared storage and automatic replication often result in lower total cost for high-availability workloads. DynamoDB is most cost-effective for simple access patterns with predictable traffic (provisioned mode) or highly variable traffic (on-demand mode).

Performance

Metric RDS Aurora DynamoDB
Throughput Standard MySQL/PostgreSQL performance Up to 5x MySQL, 3x PostgreSQL throughput Virtually unlimited (scales with partitions)
Latency Low milliseconds Low milliseconds (optimized I/O path) Single-digit milliseconds; microseconds with DAX
Read Replica lag Seconds to minutes (async) <10ms (shared storage) Eventually consistent reads return latest; strongly consistent available
Connection model Connection-based (limited by instance) Connection-based; RDS Proxy for pooling HTTP API (connectionless, unlimited concurrent)

Availability & Durability

Feature RDS Aurora DynamoDB
SLA 99.95% (Multi-AZ) 99.99% (Multi-AZ) 99.99% (single region); 99.999% (Global Tables)
Failover time ~60 seconds (Multi-AZ instance); ~35 seconds (Multi-AZ cluster) <30 seconds (shared storage) Automatic, transparent (no failover concept)
Data replication Synchronous to 1-2 standbys 6 copies across 3 AZs (quorum writes) 3 copies across multiple AZs
Cross-region DR Cross-Region Read Replicas (manual promotion) Aurora Global Database (managed failover, RPO <1s) Global Tables (active-active, zero RPO with MRSC)

Backup & Disaster Recovery

Feature RDS Aurora DynamoDB
Automated backups Daily snapshots + transaction logs; retention 0-35 days Continuous backup to S3; retention 1-35 days Continuous backups with PITR (35-day retention)
Point-in-time recovery Yes (to any second within retention) Yes (to any second); Backtrack for in-place rewind (MySQL only) Yes (to any second within 35 days)
Manual snapshots Yes (retained until deleted) Yes (retained until deleted) On-demand backups (retained until deleted)
Cross-region backup Copy snapshots cross-region; AWS Backup (Multi-AZ clusters in 17 regions, 2026) Copy snapshots cross-region; AWS Backup AWS Backup cross-region/cross-account
Restore method Creates new DB instance Creates new cluster (Backtrack restores in-place) Creates new table

Security

Feature RDS Aurora DynamoDB
Network isolation VPC, Security Groups, Private Subnets VPC, Security Groups, Private Subnets VPC Endpoints (Gateway); no VPC placement needed
Encryption at rest AES-256 with KMS (must enable at creation) AES-256 with KMS (must enable at creation) AES-256 with KMS (enabled by default)
Encryption in transit SSL/TLS SSL/TLS (enforced by default) TLS (all API calls over HTTPS)
Authentication DB user/password, IAM DB Auth, Kerberos/AD DB user/password, IAM DB Auth, Kerberos/AD IAM policies, fine-grained access control (condition keys)
Access control IAM for management; DB-level GRANT for data IAM for management; DB-level GRANT for data IAM policies with item-level and attribute-level control

When to Choose Each Service

Choose Amazon RDS When:

  • You need a traditional relational database with minimal migration effort
  • You require Oracle, SQL Server, or MariaDB engine support
  • Budget is a primary concern and Aurora’s premium isn’t justified
  • Workload is moderate with predictable growth
  • You need OS-level access (RDS Custom for Oracle/SQL Server)
  • Simple Multi-AZ failover meets your HA requirements

Choose Amazon Aurora When:

  • You need MySQL/PostgreSQL compatibility with significantly higher performance
  • High availability (99.99% SLA) and fast failover (<30s) are critical
  • You need 15 read replicas with minimal lag
  • Storage auto-scaling up to 128 TB is required
  • You need global distribution with Aurora Global Database
  • Variable workloads benefit from Aurora Serverless (scale to zero)
  • You want Backtrack for in-place point-in-time rewind (MySQL)
  • You need distributed SQL with active-active writes (Aurora DSQL)

Choose Amazon DynamoDB When:

  • You need single-digit millisecond latency at any scale
  • Access patterns are well-defined (key-value lookups, simple queries)
  • You need virtually unlimited horizontal scaling for reads and writes
  • Serverless/zero-management operation is a priority
  • Global active-active replication is needed (Global Tables)
  • Event-driven architectures (DynamoDB Streams → Lambda)
  • Gaming leaderboards, session stores, IoT data, shopping carts
  • Traffic is highly variable or unpredictable (on-demand mode)

Comprehensive Comparison Table

Feature Amazon RDS Amazon Aurora Amazon DynamoDB
Database Type Relational (SQL) Relational (SQL) NoSQL (Key-Value/Document)
Engines MySQL, PostgreSQL, MariaDB, Oracle, SQL Server MySQL-compatible, PostgreSQL-compatible Proprietary NoSQL
Management Managed (provisioned instances) Managed (provisioned) or Serverless Fully serverless
Max Storage 64 TB 128 TB (auto-scaling) Unlimited
Performance Standard engine performance 5x MySQL / 3x PostgreSQL Single-digit ms; microseconds with DAX
Read Replicas Up to 5-15 (async) Up to 15 (shared storage, <10ms lag) N/A (automatic distribution)
Write Scaling Vertical only Vertical (DSQL: horizontal) Automatic horizontal
Availability SLA 99.95% 99.99% 99.99% / 99.999% (Global)
Failover ~35-60 seconds <30 seconds Automatic (no downtime)
Backup Automated + Manual snapshots Continuous + Backtrack + Snapshots PITR (35 days) + On-demand backups
Global Replication Cross-Region Read Replicas Global Database (<1s lag) Global Tables (active-active, MRSC)
Serverless Option No Aurora Serverless (scale to zero) Fully serverless (always)
Transactions Full ACID Full ACID ACID (limited scope)
Best For Traditional RDBMS workloads, multi-engine support High-performance relational, global apps High-scale key-value, serverless apps

AWS Certification Practice Questions

Question 1

A company is designing a new e-commerce platform that requires sub-millisecond read latency for its product catalog, which contains millions of items accessed by product ID. The application has unpredictable traffic spikes during flash sales. Which database solution is MOST appropriate?

  1. Amazon RDS MySQL with Multi-AZ deployment
  2. Amazon Aurora PostgreSQL with Read Replicas
  3. Amazon DynamoDB with DAX
  4. Amazon RDS PostgreSQL with ElastiCache
Show Answer

Answer: C –

Explanation: DynamoDB with DAX provides microsecond read latency for key-value lookups. Its on-demand mode handles unpredictable traffic spikes without pre-provisioning. The product catalog accessed by product ID is a perfect key-value pattern.

Question 2

A financial services company needs a relational database with 99.99% availability, automatic storage scaling, and the ability to perform point-in-time recovery by rewinding the database to a specific time without creating a new instance. Which service supports this requirement?

  1. Amazon RDS Multi-AZ with automated backups
  2. Amazon Aurora MySQL with Backtrack
  3. Amazon DynamoDB with PITR enabled
  4. Amazon RDS Multi-AZ DB Cluster with AWS Backup
Show Answer

Answer: B –

Explanation: Aurora Backtrack (MySQL only) allows rewinding the database in-place to a specific point in time without creating a new cluster. Combined with Aurora’s 99.99% SLA and auto-scaling storage, it meets all requirements. RDS PITR creates a new instance, not an in-place rewind.

Question 3

A global gaming company needs a database that supports active-active writes across multiple AWS Regions with strong consistency and zero RPO for disaster recovery. The data model is simple player profiles accessed by player ID. Which solution meets these requirements?

  1. Amazon Aurora Global Database with managed failover
  2. Amazon RDS with Cross-Region Read Replicas
  3. Amazon DynamoDB Global Tables with multi-region strong consistency (MRSC)
  4. Amazon Aurora DSQL with multi-Region cluster
Show Answer

Answer: C –

Explanation: DynamoDB Global Tables with MRSC (GA 2025) provides active-active multi-region writes with strong consistency and zero RPO. The simple key-value access pattern (player ID lookup) is ideal for DynamoDB. Aurora Global Database is single-writer with RPO <1s (not zero). Aurora DSQL also supports multi-region active-active writes but the simple data model makes DynamoDB the most appropriate choice.

Question 4

A startup is building a SaaS application with variable traffic. During business hours, the database handles 10,000 transactions/second, but at night traffic drops to near zero. They need MySQL compatibility and want to minimize costs. Which solution is MOST cost-effective?

  1. Amazon RDS MySQL with Reserved Instances
  2. Amazon Aurora MySQL Serverless
  3. Amazon DynamoDB with on-demand capacity
  4. Amazon Aurora MySQL provisioned with Auto Scaling replicas
Show Answer

Answer: B –

Explanation: Aurora Serverless scales compute capacity automatically based on demand and can scale to zero during idle periods. This is the most cost-effective option for variable workloads requiring MySQL compatibility. RDS Reserved Instances charge for 24/7 capacity. DynamoDB doesn’t provide SQL/MySQL compatibility.

Question 5

A company is migrating a legacy Oracle database to AWS. The application uses complex SQL queries with multiple joins, stored procedures, and requires Oracle-specific features. They need Multi-AZ high availability. Which AWS database service should they use? (Select TWO)

  1. Amazon Aurora PostgreSQL (Oracle-compatible mode)
  2. Amazon RDS for Oracle with Multi-AZ
  3. Amazon DynamoDB with complex access patterns
  4. Amazon RDS Custom for Oracle with Multi-AZ
  5. Amazon Aurora MySQL with stored procedures
Show Answer

Answer: B, D

Explanation: Amazon RDS for Oracle provides managed Oracle database with Multi-AZ HA. RDS Custom for Oracle allows OS and database customization for Oracle-specific features requiring elevated access. Aurora does not support Oracle. DynamoDB doesn’t support SQL joins or stored procedures. Note: RDS Custom for Oracle EOL is March 31, 2027 – plan migration to RDS for Oracle or alternative.

Key Takeaways

  • RDS is the go-to managed relational database when you need specific engines (Oracle, SQL Server, MariaDB) or traditional RDBMS at moderate scale
  • Aurora is the premium relational choice for MySQL/PostgreSQL workloads needing higher performance, better availability, and advanced features like Serverless, Global Database, and Backtrack
  • DynamoDB is the choice for NoSQL key-value workloads requiring unlimited scale, serverless operation, single-digit millisecond latency, and global active-active replication
  • All three services integrate with AWS security features (KMS encryption, IAM, VPC/VPC Endpoints, CloudTrail)
  • Cost optimization: Use Reserved Instances (RDS/Aurora) or Provisioned + Reserved Capacity (DynamoDB) for steady workloads; use Aurora Serverless or DynamoDB On-Demand for variable workloads

Frequently Asked Questions

What is the difference between Aurora and RDS?

Aurora is AWS’s cloud-native database with up to 5x MySQL and 3x PostgreSQL performance, 6-way storage replication, and up to 128TB auto-scaling storage. Standard RDS uses traditional database engines with simpler architecture and lower cost for small workloads.

When should I use DynamoDB instead of Aurora?

Use DynamoDB for key-value/document workloads needing single-digit millisecond latency at any scale, serverless applications, or when you need global multi-region active-active replication. Use Aurora for complex SQL queries, joins, and transactions.

Is Aurora Serverless good for production?

Aurora Serverless v2 is production-ready and scales instantly in fine-grained 0.5 ACU increments. It’s ideal for variable workloads, dev/test environments, and applications with unpredictable traffic patterns.

See also: Aurora DSQL – Serverless Distributed SQL Database

References

RDS Blue/Green Deployments – Zero-Downtime Updates

RDS Blue/Green Deployment

Amazon RDS Blue/Green Deployments

  • Amazon RDS Blue/Green Deployments help make and test database changes before implementing them in a production environment.
  • RDS Blue/Green Deployment has the blue environment as the current production environment and the green environment as the staging environment.
  • RDS Blue/Green Deployment creates a staging or green environment that exactly copies the production environment.
  • Green environment is a copy of the topology of the production environment and includes the features used by the DB instance including the Multi-AZ deployment, read replicas, the storage configuration, DB snapshots, automated backups, Performance Insights, and Enhanced Monitoring.
  • Green environment or the staging environment always stays in sync with the current production environment using logical replication (for major version upgrades) or physical replication (for minor version upgrades in PostgreSQL).
  • RDS DB instances in the green environment can be changed without affecting production workloads. Changes can include the upgrade of major or minor DB engine versions, upgrade of underlying file system configuration, or change of database parameters in the staging environment.
  • Changes can be thoroughly tested in the green environment and when ready, the environments can be switched over to promote the green environment to be the new production environment.
  • Switchover typically takes under five seconds for single-Region configurations with no data loss and no need for application changes. Applications using the AWS Advanced JDBC Driver typically see two seconds or lower downtime.
  • Blue/Green Deployments are supported for RDS for MariaDB, RDS for MySQL, and RDS for PostgreSQL.
  • For Amazon Aurora, Blue/Green Deployments are supported for Aurora MySQL, Aurora PostgreSQL, and Aurora Global Database.

RDS Blue/Green Deployment

RDS Blue/Green Deployments Benefits

  • Easily create a production-ready staging environment.
  • Automatically replicate database changes from the production environment to the staging environment.
  • Test database changes in a safe staging environment without affecting the production environment.
  • Stay current with database patches and system updates.
  • Implement and test newer database features.
  • Switch over your staging environment to be the new production environment without changes to your application.
  • Safely switch over through the use of built-in switchover guardrails.
  • Eliminate data loss during switchover.
  • Switch over quickly, typically under five seconds for single-Region configurations.

RDS Blue/Green Deployment Switchover

  • A switchover transitions the green environment to be the new production environment.
  • Before switchover, production traffic is routed to the blue environment. After switchover, production traffic is routed to the green environment.
  • RDS renames the DB instances in the green environment to match the corresponding blue environment names, and renames the blue environment instances by appending -oldN to the current name.
  • Endpoints in the green environment are renamed to match the blue environment so no application changes are required.
  • A switchover timeout period can be specified between 30 seconds and 3,600 seconds (one hour). Default is 300 seconds (five minutes). If switchover takes longer, changes are rolled back.

Switchover Actions

  • Runs guardrail checks to verify both environments are ready for switchover.
  • Stops new write operations on the primary DB instance in both environments.
  • Drops connections to the DB instances in both environments and disallows new connections.
  • Waits for replication to catch up in the green environment so it is in sync with the blue environment.
  • Renames DB instances in both environments (green gets production names, blue gets -oldN suffix).
  • Allows connections to databases in both environments.
  • Allows write operations on the primary DB instance in the new production environment.

Switchover Guardrails

  • Amazon RDS runs guardrail checks to test the readiness of both environments before switchover.
  • Green environment checks:
    • Replication health – Checks if green primary DB instance replication status is healthy.
    • Replication lag – Checks if the replica lag is within allowable limits based on the specified timeout period.
    • Active writes – Makes sure there are no active writes on the green primary DB instance.
  • Blue environment checks:
    • External replication – Makes sure the blue environment isn’t a self-managed logical source or replica.
    • Long-running active writes – Makes sure there are no long-running active writes on the blue primary DB instance.
    • Long-running DDL statements – Makes sure there are no long-running DDL statements on the blue primary DB instance.
    • Unsupported PostgreSQL changes (logical replication) – Makes sure no DDL changes or large object modifications have been performed.
  • If guardrails fail, the switchover is blocked and environments remain unchanged.

After Switchover

  • DB instances in the previous blue environment are retained (standard costs apply).
  • Replication between blue and green environments stops.
  • The old blue environment DB instances are read-only until the read_only parameter (MySQL) or default_transaction_read_only parameter (PostgreSQL) is set to 0.
  • Resource IDs don’t change during switchover, but names do. Update resource IDs used in IAM policies, Performance Insights, CloudTrail, and AWS Backup.

RDS Proxy with Blue/Green Deployments

  • (New – April 2026) Amazon RDS Blue/Green Deployments now supports Amazon RDS Proxy, enabling faster application recovery during switchover by eliminating DNS propagation delays.
  • During switchover, RDS Proxy actively monitors database instances and detects when the Green environment becomes the new production environment.
  • RDS Proxy quickly redirects connections to the Green environment, enabling faster application recovery without driver modifications or application changes.
  • During the transitional period, the Blue database enters read-only mode before Green environment is promoted. RDS Proxy continues routing connections to the blue database during this period.
  • Once switchover is detected, the proxy automatically routes traffic to the newly promoted green environment.
  • When the Green environment is promoted, existing connections to the proxy are dropped and applications must re-establish connections.
  • Available for Aurora MySQL, Aurora PostgreSQL, RDS for MySQL, RDS for PostgreSQL, and RDS for MariaDB in all commercial AWS Regions where RDS Proxy is available.
  • Limitation: RDS Proxy with Blue/Green Deployments is not supported for Aurora Global Databases.
  • Note: The blue cluster must be registered with the proxy before creating a blue/green deployment. If a deployment already exists for a given blue cluster, registering it to RDS Proxy will be blocked.

AWS Advanced JDBC Driver with Blue/Green Deployments

  • (New – January/February 2026) Blue/Green Deployments support the AWS Advanced JDBC Driver (for PostgreSQL) as a smart driver alternative for faster switchover.
  • The AWS Advanced JDBC Driver detects topology changes and redirects connections to the new production environment without waiting for DNS propagation.
  • Applications using the AWS Advanced JDBC Driver typically see two seconds or lower downtime during switchover.
  • The blue/green deployment plugin in the driver provides automatic connection management during database switchovers.
  • Note: The AWS JDBC Driver for MySQL is NOT supported for blue/green deployments.

PostgreSQL Replication Methods

  • (Updated – November 2024) RDS for PostgreSQL Blue/Green Deployments now use physical replication by default for minor version upgrades.
  • Physical replication is used when no major version upgrade is specified at creation time.
  • Logical replication is used when a major version upgrade is specified during blue/green deployment creation.
  • Physical replication benefits:
    • Overcomes most limitations of logical replication.
    • Well-suited for minor version upgrades, schema changes (DDL) in the blue environment, and storage adjustments.
    • Does not support table modifications on the green instance (green is strictly read-only).
  • Logical replication limitations:
    • DDL statements (CREATE TABLE, CREATE SCHEMA) are not replicated from blue to green.
    • DCL statements (GRANT, REVOKE) are not replicated.
    • Large objects in the blue environment are not replicated to the green environment.
    • Unlogged tables are not replicated.
    • Materialized views are not automatically refreshed in the green environment.
    • UPDATE and DELETE operations require tables to have a primary key.
    • The apply process is single-threaded, which may cause lag with high write throughput.

Aurora Global Database Support

  • (New – November 2025) RDS Blue/Green Deployments now supports Aurora Global Database for safer, simpler, and faster updates.
  • Blue/Green Deployments for Aurora Global Database creates a staging (green) environment that mirrors the production (blue) Aurora Global Database, including primary and all secondary regions.
  • Eliminates complex cross-Region orchestration and manual endpoint coordination that was previously required for self-managed multi-Region blue/green deployments.
  • Switchover safely using built-in switchover guardrails with downtime typically under one minute for global configurations.
  • Available for Aurora MySQL and Aurora PostgreSQL Global Database configurations.

RDS Blue/Green Deployments Limitations

  • Blue/Green Deployments are supported only for RDS for MariaDB, RDS for MySQL, and RDS for PostgreSQL (not supported for RDS for Oracle or RDS for SQL Server).
  • Blue/Green Deployments don’t support managing master user passwords with AWS Secrets Manager.
  • If dedicated log volume (DLV) is enabled on the blue database, it must be enabled on all DB instances, including read replicas.
  • During switchover, zero-ETL integrations with Amazon Redshift must be deleted first, then recreated after switchover.
  • The Event Scheduler (event_scheduler parameter) must be disabled on the green environment when creating a deployment.
  • Cannot change an unencrypted DB instance into an encrypted one (or vice versa).
  • Cannot change a blue DB instance to a higher engine version than its corresponding green DB instance.
  • Not supported for:
    • Cascading read replicas
    • Cross-Region read replicas
    • CloudFormation
    • Multi-AZ DB cluster deployments (supported for Multi-AZ DB instance deployments)
  • After switchover, AWS DMS replication tasks can’t resume because the checkpoint from the blue environment is invalid in the green environment. You must recreate the DMS task.

RDS Blue/Green Deployments Best Practices

  • Thoroughly test resources in the green environment before switchover.
  • Monitor relevant CloudWatch metrics (DatabaseConnections, ReplicaLag) before switchover.
  • Schedule switchover during lowest traffic periods.
  • Ensure replica lag is close to zero before initiating switchover.
  • Ensure network and client DNS cache TTL is not set beyond five seconds.
  • Ensure data loading is complete before switchover (lazy loading/storage initialization).
  • For PostgreSQL with logical replication, run ANALYZE operation to refresh pg_statistics before switchover.
  • Reduce active connections to minimum necessary before switchover for faster completion.
  • Verify that the application does not override the default_transaction_read_only parameter at the session level (for PostgreSQL).

AWS Certification Exam Practice Questions

  • Questions are collected from Internet and the answers are marked as per my knowledge and understanding (which might differ with yours).
  • AWS services are updated everyday and both the answers and questions might be outdated soon, so research accordingly.
  • AWS exam questions are not updated to keep up the pace with AWS updates, so even if the underlying feature has changed the question might not be updated
  • Open to further feedback, discussion and correction.
  1. A company runs a critical production database on Amazon RDS for PostgreSQL with Multi-AZ deployment. They need to perform a major version upgrade with minimal downtime and no data loss. The application connects directly to the database endpoint. Which approach provides the LOWEST downtime for this upgrade?
    1. Create a read replica, promote it, and point the application to the new instance
    2. Use RDS Blue/Green Deployments to create a staging environment, test the upgrade, and switchover
    3. Take a snapshot, restore it with the new engine version, and update the application endpoint
    4. Perform an in-place major version upgrade during a maintenance window

    Answer: b. RDS Blue/Green Deployments create a staging environment with the upgraded version, keep it in sync via replication, and perform switchover with typically under 5 seconds downtime for single-Region configurations.

  2. A database administrator is planning to use Amazon RDS Blue/Green Deployments for a minor version upgrade on an RDS for PostgreSQL instance. Which type of replication does RDS use to keep the green environment in sync with the blue environment for this scenario?
    1. Logical replication
    2. Physical replication
    3. AWS Database Migration Service
    4. Snapshot-based synchronization

    Answer: b. Since November 2024, RDS Blue/Green Deployments for PostgreSQL minor version upgrades use physical replication by default. Logical replication is used when a major version upgrade is specified.

  3. A company wants to minimize application downtime during an RDS Blue/Green Deployment switchover. Their application uses connection pooling. Which TWO approaches reduce switchover downtime? (Select TWO)
    1. Use Amazon RDS Proxy with the blue/green deployment
    2. Increase the switchover timeout to maximum
    3. Use the AWS Advanced JDBC Driver with the blue/green deployment plugin
    4. Enable Multi-AZ on the green environment
    5. Increase the DNS TTL to 300 seconds

    Answer: a, c. RDS Proxy and the AWS Advanced JDBC Driver both detect topology changes during switchover and redirect connections without waiting for DNS propagation, reducing downtime. RDS Proxy provides sub-5-second recovery, while the JDBC Driver provides ~2-second recovery.

  4. A company uses Amazon RDS Blue/Green Deployments with RDS for MySQL. During the switchover, which actions does Amazon RDS perform? (Select THREE)
    1. Runs guardrail checks to verify both environments are ready
    2. Stops new write operations on the primary DB instance in both environments
    3. Creates a new snapshot of the blue environment
    4. Deletes the blue environment instances
    5. Waits for replication to catch up in the green environment
    6. Upgrades the engine version automatically

    Answer: a, b, e. During switchover, RDS runs guardrail checks, stops writes on both environments, drops connections, waits for replication to catch up, renames instances, and then allows connections and writes on the new production environment. The blue environment is NOT deleted – it is retained with -oldN suffix.

  5. Which of the following are limitations of Amazon RDS Blue/Green Deployments? (Select THREE)
    1. Not supported for RDS for Oracle
    2. Not supported for Multi-AZ DB instance deployments
    3. Not supported for cross-Region read replicas
    4. Cannot change an unencrypted DB instance to an encrypted one
    5. Not supported for RDS for PostgreSQL
    6. Not supported for Multi-AZ DB cluster deployments

    Answer: a, c, d. Blue/Green Deployments don’t support RDS for Oracle (or SQL Server), cross-Region read replicas, or changing encryption status. They DO support Multi-AZ DB instance deployments (not cluster deployments) and RDS for PostgreSQL.

  6. An organization uses Amazon Aurora Global Database for their multi-Region application. They need to perform an engine version upgrade. How can they use Blue/Green Deployments for this scenario?
    1. Blue/Green Deployments don’t support Aurora Global Database
    2. Create separate Blue/Green Deployments in each Region and coordinate switchover manually
    3. Use fully managed Blue/Green Deployments for Aurora Global Database which mirrors primary and all secondary regions
    4. Convert to single-Region Aurora, perform Blue/Green Deployment, then recreate Global Database

    Answer: c. Since November 2025, RDS Blue/Green Deployments supports Aurora Global Database. It creates a staging (green) environment that mirrors the production (blue) Aurora Global Database, including primary and all secondary regions, with built-in switchover guardrails.

References

RDS Automated Backups vs Manual Snapshots

RDS Automated Backups vs Manual Snapshots

RDS Automated Backups vs Manual Snapshots

  • Amazon RDS Automated Backups are AWS Initiated. Backups are created automatically as per the defined backup window. Backups are also created when a read replica is created.
  • Amazon RDS DB snapshots are manual, user-initiated backups that enable a DB instance backup to be restored to that specific state at any time.

RDS Automated Backups vs Manual Snapshots

Instance Deletion & Backup Retention Period

  • Amazon RDS Backups can be configured with a retention period varying from 0 to 35 days. Setting to 0 disables automated backups (not recommended for production).
  • RDS Automated Backups are deleted when the DB instance is deleted. However, RDS can be configured to retain the automated backups on RDS instance deletion. These backups would be retained only till their retention window.
  • RDS Snapshots don’t expire and RDS keeps all manual DB snapshots until explicitly deleted and aren’t subject to the backup retention period.

Backup Mode

  • RDS Automated Backups are incremental. The first snapshot of a DB instance contains the data for the full database. Subsequent backups of the same database are incremental, meaning only the data that has changed after the most recent backup is saved.
  • RDS Manual Snapshots are also incremental. Only the blocks on the device that have changed after the most recent snapshot are saved, reducing both the time to create the snapshot and storage costs by not duplicating data.

Point In Time Recovery – PITR

  • RDS Automated Backups with transaction logs help support Point In Time Recovery – PITR. You can restore your DB instance to any second during the retention period, up to the LatestRestorableTime (typically within the last 5 minutes).
  • RDS Snapshots restores to saved snapshot data only. It cannot be used for PITR.

Sharing

  • RDS Automated Backups cannot be shared directly. You can copy the automated backup to a manual snapshot to share.
  • RDS Manual Snapshots can be shared with the public and with up to 20 other AWS Accounts.

Cross-Region & Cross-Account Capabilities

  • Cross-Region Automated Backup Replication – RDS can replicate automated backups (snapshots and transaction logs) to a chosen destination AWS Region, enabling PITR in a secondary Region for disaster recovery. You can replicate up to 20 backups to each destination Region per account.
  • Cross-Region and Cross-Account Snapshot Copy (2025) – RDS now supports copying snapshots across Regions and accounts directly using a single copy action, eliminating the need for sequential copying steps.
  • AWS Backup Single-Action Copy (Oct 2025) – AWS Backup supports copying RDS, Aurora, Neptune, and DocumentDB snapshots across Regions and accounts in a single action.

AWS Backup Integration

  • AWS Backup provides centralized backup management for RDS with custom schedules, retention periods, and lifecycle policies beyond native RDS backup capabilities.
  • AWS Backup Vault Lock – Provides WORM (Write Once Read Many) immutability for backups, preventing any user from deleting backups or changing lifecycle settings. Helps meet compliance requirements.
  • Logically Air-Gapped Vault (GA Aug 2024) – A specialized vault type that stores immutable backup copies in service-owned accounts, encrypted with AWS-owned keys. Supports secure sharing across accounts and direct restore for faster recovery.
  • Multi-AZ Cluster Support (March 2026) – AWS Backup expanded support for RDS Multi-AZ clusters to 17 Regions, including automated lifecycle management and immutable backups with Vault Lock.

Backup Configuration on Restore (Feb 2026)

  • RDS and Aurora now allow you to view and modify the backup retention period and preferred backup window prior to and upon restoring database snapshots, providing visibility into backup configurations before initiating restore operations.

Use case

  • RDS Automated Backups are good for disaster recovery and compliance requirements with PITR capability.
  • Cross-Region Automated Backup Replication is ideal for cross-region disaster recovery with minimal RPO.
  • RDS Snapshots can be used for checkpoint before making large changes, non-production/test environments, and final copy before deleting a database.
  • AWS Backup with Vault Lock is recommended for ransomware protection and regulatory compliance requiring immutable backups.

AWS Certification Exam Practice Questions

  • Questions are collected from Internet and the answers are marked as per my knowledge and understanding (which might differ with yours).
  • AWS services are updated everyday and both the answers and questions might be outdated soon, so research accordingly.
  • AWS exam questions are not updated to keep up the pace with AWS updates, so even if the underlying feature has changed the question might not be updated
  • Open to further feedback, discussion and correction.
  1. You receive a frantic call from a new DBA who accidentally dropped a table containing all your customers. Which Amazon RDS feature will allow you to reliably restore your database within 5 minutes of when the mistake was made?
    1. Multi-AZ RDS
    2. RDS snapshots
    3. RDS read replicas
    4. RDS automated backup
  2. A company requires that their RDS database backups be protected from accidental or malicious deletion, including from administrators with root access. Which AWS solution provides immutable backup protection?
    1. RDS automated backups with 35-day retention
    2. RDS manual snapshots shared to another account
    3. AWS Backup with Vault Lock in compliance mode
    4. Cross-Region automated backup replication
  3. A company needs to restore their RDS database in a secondary AWS Region if the primary Region becomes unavailable, with a Recovery Point Objective (RPO) of minutes. Which feature should they use?
    1. Manual snapshot copy to another Region
    2. Cross-Region Automated Backup Replication
    3. RDS Read Replica in another Region
    4. AWS Backup with cross-account copy

References

RDS Cross-Region Read Replicas – DR & Scaling

Cross-Region Read Replicas

RDS Cross-Region Read Replicas

  • RDS Cross-Region Read Replicas create an asynchronously replicated read-only DB instance in a secondary AWS Region.
  • Supported for MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, and Db2
  • Cross-Region Read Replicas help to improve
    • disaster recovery capabilities (reduces RTO and RPO),
    • scale read operations into a region closer to end users,
    • migration from a data center in one region to another region
  • You can create up to 15 in-Region and cross-Region read replicas combined per source DB instance.
  • Due to the limit on the number of access control list (ACL) entries for the source VPC, RDS can’t guarantee more than five cross-Region read replica DB instances.

Cross-Region Read Replicas

RDS Cross-Region Read Replicas Process

  • RDS configures the source DB instance as a replication source and setups the specified read replica in the destination AWS Region.
  • RDS creates an automated DB snapshot of the source DB instance in the source AWS Region.
  • RDS begins a cross-Region snapshot copy for the initial data transfer.
  • RDS then uses the copied DB snapshot for the initial data load on the read replica. When the load is complete the DB snapshot copy is deleted.
  • RDS starts by replicating the changes made to the source instance since the start of the create read replica operation.

RDS Cross-Region Read Replicas Considerations

  • A source DB instance can have cross-region read replicas in multiple AWS Regions.
  • You can create up to 15 in-Region and cross-Region read replicas combined per source DB instance (applies to MySQL, MariaDB, PostgreSQL, Oracle, SQL Server, and Db2).
  • Due to the limit on the number of access control list (ACL) entries for the source VPC, RDS can’t guarantee more than five cross-Region read replica DB instances.
  • Replica lags are higher for Cross-region replicas. This lag time comes from the longer network channels between regional data centers.
  • Read Replica uses the default DB parameter group and DB option group for the specified DB engine when configured from AWS console. For MySQL and Oracle DB engines, you can specify a custom parameter group via CLI/API. For Db2, you must specify a custom parameter group that includes your IBM Site ID and Customer ID.
  • Read Replica uses the default security group.
  • Cross-Region RDS read replica can be created from a source RDS DB instance that is not a read replica of another RDS DB instance for Db2, Microsoft SQL Server, Oracle, and PostgreSQL DB instances (versions lower than 14.1). This limitation doesn’t apply to MariaDB, MySQL, and PostgreSQL 14.1+ DB instances which support cascading cross-region read replicas.
  • Deleting the source for a cross-region read replica will result in
    • read replica promotion for Db2, MariaDB, MySQL, and Oracle DB instances
    • no automatic read replica promotion for PostgreSQL DB instances — the replication status of the read replica is set to terminated. You must promote the read replica manually or delete it.
  • An encrypted read replica in a different AWS Region requires the source DB instance to be encrypted. A KMS key in the destination Region must be specified.
  • You can replicate between the GovCloud (US-East) and GovCloud (US-West) Regions, but not into or out of GovCloud (US).

Cross-Region Cascading Read Replicas

  • MySQL and MariaDB support creating read replicas from other read replicas (cascading), including cross-Region scenarios. This can reduce cross-Region data transfer costs.
  • PostgreSQL 14.1+ supports cross-Region cascading read replicas with up to three levels of cascading.
    • You can create a cross-Region replica from the source, then create same-Region replicas from it.
    • You can also create a same-Region replica from the source, then create cross-Region replicas from it.
  • Cascading replicas help reduce data transfer costs — only the first replica in the chain incurs cross-Region transfer charges.
  • SQL Server, Oracle, and Db2 do not support cascading (creating cross-Region replicas from another replica).

Cross-Region Replication Costs

  • Data transferred for cross-Region replication incurs Amazon RDS data transfer charges.
  • Cross-Region replication actions that generate data transfer out charges:
    • Initial snapshot transfer when creating the read replica
    • Ongoing data modification replication from source to read replica region
  • For MySQL and MariaDB, cascading read replicas can reduce costs — create one cross-Region replica and then create additional replicas from it within the same destination Region (no cross-Region transfer charges for same-Region replication).

Related Cross-Region DR Features (2024-2026 Updates)

Cross-Region Automated Backup Replication

  • RDS supports replicating automated backups (snapshots and transaction logs) to a different AWS Region.
  • Enables point-in-time recovery in the secondary Region with RPO of minutes.
  • You can replicate up to 20 backups to each destination Region per account.
  • Supported for MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, and Db2 (encrypted databases).
  • Not supported for Multi-AZ DB clusters.
  • Expanded to five additional AWS Regions in April 2025.

Cross-Region and Cross-Account Snapshot Copy (September 2025)

  • Amazon RDS now supports copying RDS and Aurora snapshots across Regions and accounts in a single step.
  • Previously required sequential copying (first cross-Region, then cross-account, or vice versa).
  • Protects against ransomware attacks and Region outages by enabling isolated backup environments.

RDS for Db2 Cross-Region Standby Replicas (June 2025)

  • RDS for Db2 introduced cross-Region standby replicas for disaster recovery.
  • Standby replicas don’t accept user connections but provide faster failover for cross-Region DR scenarios.
  • Complements read replicas which are used for read scaling.

RDS for PostgreSQL Delayed Read Replicas (August 2025)

  • Allows specifying a minimum time period that a replica lags behind the source using the recovery_min_apply_delay parameter.
  • Creates a time buffer to protect against accidental data loss (e.g., table drops, unintended modifications).
  • Available with PostgreSQL versions 14.19, 15.14, 16.10, 17.6, and later.
  • Can be promoted to become the new primary for quick recovery within minutes.
  • Works with both in-Region and cross-Region replicas, including cascaded read replicas.

RDS for Oracle Cross-Region Replicas with Additional Storage Volumes (January 2026)

  • Cross-Region replicas for Oracle now support additional storage volumes.
  • Customers can add up to three storage volumes (each up to 64 TiB) in addition to the primary storage volume, totaling up to 256 TiB.
  • Enables scaling Oracle workloads without architecture changes while maintaining cross-Region DR.

AWS Certification Exam Practice Questions

  • Questions are collected from Internet and the answers are marked as per my knowledge and understanding (which might differ with yours).
  • AWS services are updated everyday and both the answers and questions might be outdated soon, so research accordingly.
  • AWS exam questions are not updated to keep up the pace with AWS updates, so even if the underlying feature has changed the question might not be updated
  • Open to further feedback, discussion and correction.
  1. Your company has HQ in Tokyo and branch offices worldwide and is using logistics software with a multi-regional deployment on AWS in Japan, Europe, and US. The logistic software has a 3-tier architecture and uses MySQL 5.6 for data persistence. Each region has deployed its database. In the HQ region, you run an hourly batch process reading data from every region to compute cross-regional reports that are sent by email to all offices this batch process must be completed as fast as possible to optimize logistics quickly. How do you build the database architecture to meet the requirements?
    1. For each regional deployment, use RDS MySQL with a master in the region and a read replica in the HQ region
    2. For each regional deployment, use MySQL on EC2 with a master in the region and send hourly EBS snapshots to the HQ region
    3. For each regional deployment, use RDS MySQL with a master in the region and send hourly RDS snapshots to the HQ region
    4. For each regional deployment, use MySQL on EC2 with a master in the region and use S3 to copy data files hourly to the HQ region
  2. A company has a production database running on RDS for PostgreSQL in us-east-1. They need to provide read access to users in eu-west-1 with minimal latency, and also want the ability to quickly recover from a regional failure. They want to minimize cross-region data transfer costs while having three read replicas available in eu-west-1. What is the most cost-effective architecture?
    1. Create three cross-Region read replicas directly from the source in us-east-1 to eu-west-1
    2. Use Aurora Global Database with three reader instances in eu-west-1
    3. Create one cross-Region read replica in eu-west-1, then create two cascading read replicas from it in the same Region (requires PostgreSQL 14.1+)
    4. Enable cross-Region automated backup replication and restore in eu-west-1 when needed
  3. A solutions architect needs to design a disaster recovery strategy for an RDS for PostgreSQL database. The strategy must allow recovery from accidental data deletions within a 2-hour window while maintaining a separate cross-Region replica for regional failover. Which combination of features provides this capability? (Select TWO)
    1. Enable Multi-AZ deployment in the primary Region
    2. Configure a delayed read replica with recovery_min_apply_delay set to 2 hours
    3. Enable cross-Region automated backup replication
    4. Create a cross-Region read replica for regional failover
    5. Use Aurora Global Database with write forwarding
  4. Which of the following statements about RDS cross-Region read replicas is correct? (Select TWO)
    1. RDS for SQL Server supports cascading cross-Region read replicas
    2. RDS for PostgreSQL 14.1+ supports creating cross-Region read replicas from another read replica (cascading)
    3. When the source is deleted, PostgreSQL cross-Region read replicas are automatically promoted
    4. You can create up to 15 in-Region and cross-Region read replicas combined per source instance
    5. Cross-Region read replicas are synchronously replicated
  5. A company wants to minimize RTO for their RDS for Db2 database during a regional disaster. They need the replica to be ready for immediate failover without serving read traffic. Which approach should they use?
    1. Create a cross-Region read replica and promote it during failover
    2. Create a cross-Region standby replica for faster failover
    3. Enable cross-Region automated backup replication and perform point-in-time recovery
    4. Use AWS DMS for continuous replication to the secondary Region

AWS RDS Multi-AZ DB Instance

RDS Multi-AZ Instance Deployment

RDS Multi-AZ DB Instance Deployment

  • RDS automatically creates a primary DB Instance and synchronously replicates the data to a standby instance in a different AZ.
  • RDS performs an automatic failover to the standby, so that database operations can be resumed as soon as the failover is complete.
  • RDS Multi-AZ deployment maintains the same endpoint for the DB Instance after a failover, so the application can resume database operation without the need for manual administrative intervention.
  • Multi-AZ is a High Availability feature and NOT a scaling solution for read-only scenarios; a standby replica can’t be used to serve read traffic. To service read-only traffic, use a Read Replica or consider Multi-AZ DB Cluster deployment which provides readable standbys.
  • Multi-AZ deployments for MariaDB, MySQL, Oracle, PostgreSQL, and RDS Custom for SQL Server DB instances use Amazon failover technology. SQL Server DB instances use SQL Server Database Mirroring (DBM) or Always On Availability Groups (AGs). SQL Server 2022 Web Edition supports Multi-AZ through block-level replication.

RDS Multi-AZ Instance Deployment

  • In a Multi-AZ deployment,
    • RDS automatically provisions and maintains a synchronous standby replica in a different Availability Zone.
    • Copies of data are stored in different AZs for greater levels of data durability.
    • Primary DB instance is synchronously replicated across Availability Zones to a standby replica to provide
      • data redundancy,
      • eliminate I/O freezes during snapshots and backups
      • and minimize latency spikes during system backups.
    • DB instances may have increased write and commit latency compared to a Single AZ deployment, due to the synchronous data replication
    • Transaction success is returned only if the commit is successful both on the primary and the standby DB
    • There might be a change in latency if the deployment fails over to the standby replica, although AWS is engineered with low-latency network connectivity between Availability Zones.
  • When using the BYOL licensing model, a license for both the primary instance and the standby replica is required
  • For production workloads, it is recommended to use Multi-AZ deployment with Provisioned IOPS and DB instance classes optimized for Provisioned IOPS (e.g., current-generation M5, M6g, M6i, R5, R6g, R6i, or newer Graviton-based instances) for fast, consistent performance.
  • When Single-AZ deployment is modified to a Multi-AZ deployment (for engines other than SQL Server or Amazon Aurora)
    • RDS takes a snapshot of the primary DB instance from the deployment and restores the snapshot into another Availability Zone.
    • RDS then sets up synchronous replication between the primary DB instance and the new instance.
    • This avoids downtime during conversion from Single AZ to Multi-AZ.
  • An existing Single AZ instance can be converted into a Multi-AZ instance by modifying the DB instance without any downtime.

ENA Express for Multi-AZ Replication (2026)

  • As of May 2026, Amazon RDS Multi-AZ instances use ENA Express for replication traffic between Availability Zones.
  • ENA Express uses AWS’s Scalable Reliable Datagram (SRD) protocol to optimize network performance.
  • Delivers up to 25 Gbps single-flow bandwidth for cross-AZ replication traffic with advanced congestion control and multi-pathing capabilities.
  • Reduces latency variability for Multi-AZ deployments and delivers increased write throughput and lower write latencies for write-intensive workloads.
  • SRD improves replication by dynamically distributing traffic across multiple network paths and adapting to congestion in real time.
  • Available at no additional charge for RDS for MariaDB, MySQL, PostgreSQL, Db2, and Oracle.
  • To enable on existing instances, perform a start-stop or scale compute action.

RDS Multi-AZ Failover Process

  • In the event of a planned or unplanned outage of the DB instance,
    • RDS automatically switches to a standby replica in another AZ, if enabled for Multi-AZ.
    • The time taken for the failover to complete depends on the database activity and other conditions at the time the primary DB instance became unavailable.
    • Failover times are typically 60-120 secs. However, large transactions or a lengthy recovery process can increase failover time.
    • Failover mechanism automatically changes the DNS record of the DB instance to point to the standby DB instance.
    • DNS propagation can take up to 35 seconds to complete during failover.
    • Multi-AZ switch is seamless to the applications as there is no change in the endpoint URLs but just needs to re-establish any existing connections to the DB instance.
  • RDS handles failover automatically so that database operations can be resumed as quickly as possible without administrative intervention.
  • Primary DB instance switches over automatically to the standby replica if any of the following conditions occur:
    • Primary Availability Zone outage
    • Loss of network connectivity to primary
    • Primary DB instance fails
    • DB instance’s server type is changed
    • Operating system of the DB instance is undergoing software patching
    • Compute unit failure on the primary
    • Storage failure on the primary
    • A manual failover of the DB instance was initiated using Reboot with failover (also referred to as Forced Failover)
  • If the Multi-AZ DB instance has failed over, can be determined by
    • DB event subscriptions can be set up to notify you via email or SMS that a failover has been initiated.
    • DB events can be viewed via the Amazon RDS console or APIs.
    • The current state of the Multi-AZ deployment can be viewed via the RDS console and APIs.

RDS Proxy for Faster Failover

  • Amazon RDS Proxy can significantly reduce failover downtime for Multi-AZ DB instance deployments.
  • RDS Proxy eliminates the 35-second DNS propagation delay by continuously monitoring both primary and standby instances, allowing it to bypass DNS propagation entirely.
  • As of Dec 2024, AWS has optimized the planned failover process with RDS Proxy:
    • Modify instance class — downtime reduced by up to 4.9x (MariaDB), 4.3x (MySQL), 3.3x (PostgreSQL)
    • OS upgrades — downtime reduced by up to 4.8x (MySQL), 4x (MariaDB), 3.4x (PostgreSQL)
    • Reboot with force failover — downtime reduced by up to 3x (MariaDB), 2.5x (MySQL), 1.5x (PostgreSQL)
  • During maintenance operations, RDS performs maintenance on the standby first, then does a planned failover, then completes maintenance on the old primary — minimizing overall downtime.
  • These improvements are available for RDS for MySQL, MariaDB, and PostgreSQL with no changes needed to workloads.

Multi-AZ DB Instance vs Multi-AZ DB Cluster

RDS Multi-AZ DB Instance vs DB Cluster

  • Multi-AZ DB Instance: One primary + one standby (standby NOT readable). Failover typically 60-120 seconds.
  • Multi-AZ DB Cluster: One writer + two reader instances in three AZs. Readers can serve read traffic. Failover typically under 35 seconds. Supports MySQL and PostgreSQL only.
  • Multi-AZ DB Cluster provides improved commit latency, faster failover, readable standby instances, and lower write latency compared to Multi-AZ DB Instance deployment.
  • Choose Multi-AZ DB Cluster when you need both read scaling and fast failover in a single managed deployment.

AWS Certification Exam Practice Questions

  • Questions are collected from Internet and the answers are marked as per my knowledge and understanding (which might differ with yours).
  • AWS services are updated everyday and both the answers and questions might be outdated soon, so research accordingly.
  • AWS exam questions are not updated to keep up the pace with AWS updates, so even if the underlying feature has changed the question might not be updated
  • Open to further feedback, discussion and correction.

References

AWS Storage Options – RDS, DynamoDB & Database on EC2

AWS Storage Options Whitepaper with RDS, DynamoDB & Database on EC2 Cont.

Provides a brief summary for the Ideal Use cases, Anti-Patterns and other factors for Amazon RDS, DynamoDB & Databases on EC2 storage options

📝 Note: The original AWS Storage Services Overview whitepaper has been archived by AWS. This content is maintained and updated with current service capabilities for certification study reference. See the AWS Overview – Storage Services for the latest official guidance.

Amazon RDS

  • RDS is a fully managed relational database service supporting Amazon Aurora, MySQL, PostgreSQL, MariaDB, Oracle, and Microsoft SQL Server database engines
  • RDS eliminates much of the administrative overhead associated with launching, managing, and scaling your own relational database on Amazon EC2 or in another computing environment.
  • RDS provides automated patching, backups, Multi-AZ high availability, read replicas, and monitoring out of the box.

Key Features (Updated 2024-2026)

  • Multi-AZ DB Cluster Deployments – deploys a primary and two readable standby instances across three AZs, providing faster failover (~35 seconds), improved commit latency via semisynchronous replication, and readable standbys (MySQL/PostgreSQL)
  • Blue/Green Deployments – creates a fully managed staging (green) environment that mirrors production (blue), allowing safe testing of major version upgrades and schema changes with minimal downtime switchover
  • RDS Proxy – a fully managed database proxy that pools and shares connections, improving application scalability, resilience to database failovers, and security via IAM/Secrets Manager authentication
  • RDS Data API – available for Aurora (Serverless v2 and provisioned), enables secure HTTP-based SQL execution without managing database drivers or connections
  • Aurora Serverless v2 – auto-scales database capacity in fine-grained increments based on application demand, scaling to hundreds of thousands of transactions per second
  • Aurora DSQL (launched Dec 2024) – a serverless, distributed SQL database with active-active multi-Region high availability, PostgreSQL-compatible, with strong consistency across all Regional endpoints
  • RDS Custom – provides OS and database access for Oracle and SQL Server when full administrative control is needed (Note: RDS Custom for Oracle reaches end of support March 31, 2027)
  • Graviton (ARM) Instances – M7g, R7g, M7i, R7i instance types offering better price-performance
  • gp3 Storage – baseline of 3,000 IOPS and 125 MiB/s, scalable up to 80,000 IOPS and 2,000 MiB/s per volume (up to 64 TiB per volume)
  • Extended Support – up to 3 additional years of critical security and bug fixes beyond community end-of-life for major engine versions

Ideal Usage Patterns

  • RDS is a great solution for cloud-based fully-managed relational database
  • RDS is also optimal for new applications with structured data that requires more sophisticated querying and joining capabilities than that provided by Amazon’s NoSQL database offering, DynamoDB.
  • RDS provides full compatibility with the databases supported and direct access to native database engines, code and libraries and is ideal for existing applications that rely on these databases
  • Applications requiring zero-downtime upgrades can leverage Blue/Green Deployments for safe major version changes
  • Serverless and event-driven applications benefit from RDS Proxy and Aurora Serverless v2 for connection management and auto-scaling

Anti-Patterns

  • Index and query-focused data
    • If the applications don’t require advanced features such as joins and complex transactions and is more oriented toward indexing and querying data, DynamoDB would be more appropriate for this needs
  • Numerous BLOBs
    • If the application makes heavy use of files (audio files, videos, images, etc), it is a better choice to use S3 to store the objects instead of database engines Blob feature and use RDS or DynamoDB only to save the metadata
  • Automated scalability
    • RDS provides vertical scaling (scale up) and limited horizontal scale-out via read replicas. For fully-automated serverless scaling, consider Aurora Serverless v2 or DynamoDB.
  • Complete control
    • RDS does not provide full OS-level admin access.
    • If the application requires complete OS-level control, consider RDS Custom (for Oracle/SQL Server) or a self-managed database on EC2.
  • Other database platforms
    • RDS supports Aurora, MySQL, PostgreSQL, MariaDB, Oracle, and SQL Server.
    • If any other database platform (such as IBM DB2, Informix, or Sybase) is needed, it should be deployed on a self-managed database on an EC2 instance.

Performance

  • RDS offers multiple storage types optimized for different workloads:
    • gp3 (General Purpose SSD) – baseline 3,000 IOPS, scalable up to 80,000 IOPS and 2,000 MiB/s throughput, up to 64 TiB per volume
    • io1/io2 (Provisioned IOPS SSD) – designed for I/O-intensive transactional workloads, up to 256,000 IOPS
  • Multi-AZ DB Cluster deployments provide improved write commit latency through optimized semisynchronous replication
  • Performance Insights provides a dashboard to monitor database load and identify bottlenecks
  • RDS Optimized Reads/Writes (Aurora) provide up to 2x faster query processing and 6x higher write throughput

Durability and Availability

  • RDS leverages Amazon EBS volumes as its data store
  • RDS provides database backups, for enhanced durability, which are replicated across multiple AZ’s
    • Automated backups
      • RDS automatically performs a full daily backup during the specified backup window, and captures DB transaction logs (up to 35-day retention)
    • User initiated backups (DB Snapshots)
      • User can initiate manual snapshots at any time; they are retained until explicitly deleted
  • Multi-AZ DB Instance – synchronously replicates data to a standby in another AZ with automatic failover (typically 60-120 seconds)
  • Multi-AZ DB Cluster – maintains a primary and two readable standbys across three AZs with faster failover (~35 seconds) and transaction log-based replication
  • RDS provides a DNS endpoint; in case of failure on the primary, it automatically fails over to the standby instance
  • RDS Read Replicas provide asynchronous replication for read scaling and can be promoted for disaster recovery (including cross-Region replicas)

Cost Model

  • RDS offers a tiered pricing structure based on instance size, deployment type (Single-AZ/Multi-AZ Instance/Multi-AZ Cluster), and AWS Region
  • Pricing components: DB instance hours, provisioned storage (per GB-month), I/O requests (for io1/io2), additional backup storage, and data transfer
  • Reserved Instances provide significant discounts (up to 69%) for 1-year or 3-year commitments
  • Aurora Serverless v2 charges per Aurora Capacity Unit (ACU) consumed per second

Scalability and Elasticity

  • RDS resources can be scaled in several dimensions: storage size, IOPS, instance compute capacity, and number of read replicas
  • Storage Auto Scaling automatically increases storage when approaching capacity limits
  • Aurora Auto Scaling automatically adjusts the number of Aurora Replicas based on demand
  • Aurora Serverless v2 scales compute capacity automatically in fine-grained increments (0.5 ACU) from minimum to maximum configured capacity
  • Read Replicas (up to 15 for Aurora, 5 for other engines) enable read scaling across AZs and Regions
  • Aurora Limitless Database provides horizontal write scaling by automatically sharding data across multiple writer instances

Interfaces

  • RDS APIs, AWS CLI, and the AWS Management Console provide management interfaces for creating, modifying, and managing DB instances
  • RDS Data API (Aurora) provides a secure HTTP endpoint for running SQL statements without managing database connections or drivers
  • Once a database is created, RDS provides a DNS endpoint for the database which can be used to connect using standard database drivers
  • Endpoint does not change over the lifetime of the instance, even during failover in Multi-AZ configurations
  • RDS Proxy endpoints provide connection pooling and improved failover handling for applications

Amazon DynamoDB

  • Amazon DynamoDB is a fully managed, serverless NoSQL database service that delivers single-digit millisecond performance at any scale.
  • DynamoDB offers zero infrastructure management, zero downtime maintenance, and automatic scaling to accommodate any workload demand.
  • DynamoDB provides both eventually-consistent reads (by default) and strongly-consistent reads (optional), as well as ACID transactions (TransactWriteItems, TransactGetItems) for coordinated operations across multiple items and tables.
  • Amazon DynamoDB handles data as follows:
    • DynamoDB stores structured data in tables, indexed by primary key, and allows low-latency read and write access to items.
    • DynamoDB supports rich data types: Scalar (String, Number, Binary, Boolean, Null), Document (List, Map), and Set (String Set, Number Set, Binary Set)
    • Tables do not have a fixed schema, so each data item can have a different number of attributes.
    • Primary key can either be a single-attribute partition key (hash key) or a composite partition key + sort key (hash-range key).
    • Local Secondary Indexes (LSI) – alternate sort key on the same partition key (defined at table creation)
    • Global Secondary Indexes (GSI) – alternate partition key and optional sort key, can be added/modified anytime

Key Features (Updated 2024-2026)

  • On-Demand Capacity Mode – pay-per-request pricing with no capacity planning; automatically scales to accommodate workload demand. 50% price reduction effective November 2024.
  • Global Tables – fully managed, multi-Region, multi-active replication with two consistency modes:
    • Multi-Region Eventual Consistency (MREC) – default mode, typically sub-second replication
    • Multi-Region Strong Consistency (MRSC) – GA 2025, provides zero RPO with strongly consistent reads/writes across all Regions
  • DynamoDB Accelerator (DAX) – fully managed, in-memory cache providing microsecond read latency for read-heavy workloads
  • Standard-IA Table Class – lower storage cost option (up to 60% cheaper storage) for infrequently accessed data
  • PartiQL – SQL-compatible query language for DynamoDB, enabling familiar SELECT, INSERT, UPDATE, DELETE syntax
  • Zero-ETL Integrations – seamless data replication to Amazon Redshift, OpenSearch Service, and SageMaker Lakehouse without building ETL pipelines
  • S3 Import/Export – bulk import data from S3 and export table data to S3 in DynamoDB JSON or Amazon Ion format
  • Point-in-Time Recovery (PITR) – continuous backups with per-second granularity, restorable to any point within a configurable 1-35 day window
  • Encryption at Rest – enabled by default using AWS owned keys, with options for AWS managed key or customer managed KMS key
  • DynamoDB Streams / Kinesis Data Streams – capture item-level changes for event-driven architectures, real-time analytics, and cross-Region replication

Ideal Usage Patterns

  • DynamoDB is ideal for applications that need a flexible NoSQL database with low read and write latencies, and the ability to scale storage and throughput up or down as needed without code changes or downtime.
  • Use cases requiring a highly available and scalable database e.g., mobile apps, gaming, digital ad serving, live voting, sensor networks, log ingestion, access control, metadata storage for S3 objects, e-commerce shopping carts, web session management, and serverless applications
  • Event-driven architectures leveraging DynamoDB Streams to trigger Lambda functions or downstream processing
  • Global applications requiring multi-Region active-active deployments with Global Tables

Anti-Patterns

  • Structured data with Join and/or Complex Transactions
    • If the application uses structured data and requires complex joins, multi-table transactions, or relationship infrastructure provided by traditional relational databases, RDS or Aurora would be a better choice. (Note: DynamoDB does support ACID transactions within and across tables, but not SQL-style joins.)
  • Large Blob data
    • DynamoDB has a maximum item size of 400 KB. For large media files, videos, etc., use S3 for storage and DynamoDB for metadata.
  • Large Objects with Low I/O rate
    • DynamoDB uses SSD drives and is optimized for high I/O workloads. If the application stores very large amounts of infrequently accessed data, S3 or the Standard-IA table class might be more cost-effective.
  • Complex ad-hoc analytics
    • For complex analytical queries across large datasets, use DynamoDB zero-ETL integration with Amazon Redshift or export to S3 for Athena queries.

Performance

  • SSDs and limited indexing on attributes provides single-digit millisecond latency at any scale.
  • Provisioned capacity mode – define exact read/write capacity units for predictable workloads with optional auto-scaling
  • On-demand capacity mode – automatically accommodates up to double previous peak traffic instantly, with further scaling within minutes
  • DAX (DynamoDB Accelerator) – in-memory cache providing microsecond response times for eventually consistent reads
  • DynamoDB automatically partitions data to maintain consistent performance as tables grow.

Durability and Availability

  • DynamoDB automatically and synchronously replicates data across three AZs in a Region for high availability and data protection against facility failures.
  • Global Tables provide multi-Region replication with 99.999% availability SLA (multi-Region)
  • PITR provides continuous backups for point-in-time restore capability
  • On-demand backups allow full table backups at any time without performance impact

Cost Model

  • DynamoDB offers two capacity modes:
    • On-Demand – pay per read/write request (no capacity planning). 50% price reduction since November 2024.
    • Provisioned – pay per hour for provisioned Read/Write Capacity Units (with optional auto-scaling and Reserved Capacity discounts)
  • Additional pricing components: data storage (per GB-month), Global Tables replication (per replicated write unit), backups, data export/import, DynamoDB Streams reads, and data transfer
  • Standard-IA table class reduces storage costs by up to 60% with higher per-request costs (ideal when storage dominates)
  • Global Tables pricing reduced by up to 67% (November 2024)

Scalability and Elasticity

  • DynamoDB is both highly-scalable and elastic with virtually unlimited storage and throughput capacity.
  • Data is automatically partitioned and re-partitioned as needed, while SSD storage provides predictable low-latency at any scale.
  • On-Demand mode provides truly serverless scaling with no capacity planning required
  • Provisioned mode with Auto Scaling automatically adjusts capacity based on utilization targets
  • DynamoDB can handle more than 10 trillion requests per day and support peaks of more than 100 million requests per second.

Interfaces

  • DynamoDB provides a low-level REST API, AWS SDKs in multiple languages, and the AWS CLI
  • PartiQL – SQL-compatible query language supported via Console, CLI, SDKs, and NoSQL Workbench
  • APIs provide both management and data interfaces: table management (create, list, delete, describe) and item operations (Get, Put, Update, Delete, Query, Scan, BatchWrite, BatchGet, TransactWrite, TransactGet)
  • DynamoDB Streams API – captures ordered sequence of item-level changes
  • NoSQL Workbench – visual tool for data modeling, visualization, and query development

Databases on EC2

  • EC2 with EBS volumes allows hosting a self-managed relational database with full OS and database administrative control
  • Ready-to-use, prebuilt AMIs are available from leading database vendors in AWS Marketplace
  • Note: With the introduction of RDS Custom (for Oracle and SQL Server), the need for self-managed databases on EC2 has decreased for these specific engines

Ideal Usage Patterns

  • Self-managed database on EC2 is ideal for applications that require a specific database platform not supported by Amazon RDS e.g., IBM DB2, Informix, Sybase, or specialized configurations
  • Applications requiring maximum level of administrative control and configurability including custom storage engines, specialized replication, or kernel-level tuning not available in RDS or RDS Custom
  • Database versions or configurations not yet supported by RDS

Anti-Patterns

  • Index and query-focused data
    • If the applications don’t require advanced features such as joins and complex transactions and is more oriented toward indexing and querying data, DynamoDB would be more appropriate
  • Numerous BLOBs
    • If the application makes heavy use of files (audio files, videos, images), use S3 for object storage and RDS or DynamoDB for metadata
  • Managed service available
    • If RDS supports the database engine and provides the needed features, RDS is preferred for reduced operational overhead. For Oracle/SQL Server requiring OS access, consider RDS Custom before self-managing on EC2.
  • Automated scalability
    • Self-managed databases require manual or scripted scaling operations. If fully-automated scaling is needed, DynamoDB, Aurora Serverless, or RDS with Auto Scaling may be better choices.

Performance

  • Performance depends on the EC2 instance type, number/configuration of EBS volumes, and database tuning
  • Scale up by choosing larger instance types (compute-optimized, memory-optimized) or Graviton-based instances for better price-performance
  • For storage: use gp3 or io2 Block Express EBS volumes. Use software RAID 0 (disk striping) across multiple EBS volumes for aggregated IOPS and bandwidth
  • Instance store (NVMe SSDs) can provide very high IOPS for temporary/cache workloads

Durability & Availability

  • Uses EBS for storage with same durability guarantees (99.999% availability for io2 Block Express)
  • Enhanced durability via EBS snapshots, cross-Region replication, or third-party backup tools (e.g., Oracle RMAN) to S3
  • High availability requires manual configuration: Multi-AZ replication, clustering solutions, or automated failover scripts

Cost Model

  • Cost determined by: EC2 instance size/type, EBS volume size and IOPS, data transfer, and any third-party database licensing costs
  • Savings Plans and Reserved Instances reduce EC2 compute costs for steady-state workloads
  • BYOL (Bring Your Own License) options available for Oracle, SQL Server, and other commercial databases

Scalability & Elasticity

  • Leverage EC2 scalability by creating AMIs for horizontal scaling, though database-specific clustering/sharding is required
  • Vertical scaling requires instance stop/start (brief downtime without clustering)
  • Auto Scaling groups can manage read replica fleets for read-heavy workloads

Comparison: RDS vs DynamoDB vs Database on EC2

Factor Amazon RDS DynamoDB Database on EC2
Type Managed Relational (SQL) Managed NoSQL (Key-Value/Document) Self-Managed Relational
Scaling Vertical + Read Replicas; Aurora Serverless for auto-scaling Fully automatic (on-demand) or provisioned with auto-scaling Manual vertical/horizontal
Availability Multi-AZ (2 or 3 AZs), automated failover Automatic across 3 AZs; Global Tables for multi-Region Manual HA configuration required
Admin Overhead Low (managed patching, backups) None (serverless) High (full responsibility)
Use Case Complex queries, joins, ACID transactions High-speed key-value access, flexible schema, massive scale Unsupported engines, full OS control

AWS Certification Exam Practice Questions

  • Questions are collected from Internet and the answers are marked as per my knowledge and understanding (which might differ with yours).
  • AWS services are updated everyday and both the answers and questions might be outdated soon, so research accordingly.
  • AWS exam questions are not updated to keep up the pace with AWS updates, so even if the underlying feature has changed the question might not be updated
  • Open to further feedback, discussion and correction.
  1. Which of the following are use cases for Amazon DynamoDB? Choose 3 answers
    1. Storing BLOB data.
    2. Managing web sessions
    3. Storing JSON documents
    4. Storing metadata for Amazon S3 objects
    5. Running relational joins and complex updates.
    6. Storing large amounts of infrequently accessed data.
  2. A client application requires operating system privileges on a relational database server. What is an appropriate configuration for highly available database architecture?
    1. A standalone Amazon EC2 instance
    2. Amazon RDS in a Multi-AZ configuration
    3. Amazon EC2 instances in a replication configuration utilizing a single Availability Zone
    4. Amazon EC2 instances in a replication configuration utilizing two different Availability Zones

    Note: With the introduction of RDS Custom, this question’s context has evolved. RDS Custom for SQL Server now supports Multi-AZ. However, for full OS-level control beyond what RDS Custom offers, EC2 remains the answer.

  3. You are developing a new mobile application and are considering storing user preferences in AWS, which would provide a more uniform cross-device experience to users using multiple mobile devices to access the application. The preference data for each user is estimated to be 50KB in size. Additionally 5 million customers are expected to use the application on a regular basis. The solution needs to be cost-effective, highly available, scalable and secure, how would you design a solution to meet the above requirements?
    1. Setup an RDS MySQL instance in 2 availability zones to store the user preference data. Deploy a public facing application on a server in front of the database to manage security and access credentials
    2. Setup a DynamoDB table with an item for each user having the necessary attributes to hold the user preferences. The mobile application will query the user preferences directly from the DynamoDB table. Utilize STS. Web Identity Federation, and DynamoDB Fine Grained Access Control to authenticate and authorize access (DynamoDB provides high availability as it synchronously replicates data across three facilities within an AWS Region and scalability as it is designed to scale its provisioned throughput up or down while still remaining available. Also suitable for storing user preference data)
    3. Setup an RDS MySQL instance with multiple read replicas in 2 availability zones to store the user preference data. The mobile application will query the user preferences from the read replicas. Leverage the MySQL user management and access privilege system to manage security and access credentials.
    4. Store the user preference data in S3 Setup a DynamoDB table with an item for each user and an item attribute pointing to the user’ S3 object. The mobile application will retrieve the S3 URL from DynamoDB and then access the S3 object directly utilize STS, Web identity Federation, and S3 ACLs to authenticate and authorize access.
  4. A customer is running an application in US-West (Northern California) region and wants to setup disaster recovery failover to the Asian Pacific (Singapore) region. The customer is interested in achieving a low Recovery Point Objective (RPO) for an Amazon RDS multi-AZ MySQL database instance. Which approach is best suited to this need?
    1. Synchronous replication
    2. Asynchronous replication (Cross-Region Read Replicas use asynchronous replication. Note: DynamoDB Global Tables with MRSC now offers zero RPO across Regions for NoSQL workloads.)
    3. Route53 health checks
    4. Copying of RDS incremental snapshots
  5. You are designing a file-sharing service. This service will have millions of files in it. Revenue for the service will come from fees based on how much storage a user is using. You also want to store metadata on each file, such as title, description and whether the object is public or private. How do you achieve all of these goals in a way that is economical and can scale to millions of users?
    1. Store all files in Amazon Simple Storage Service (S3). Create a bucket for each user. Store metadata in the filename of each object, and access it with LIST commands against the S3 API.
    2. Store all files in Amazon S3. Create Amazon DynamoDB tables for the corresponding key-value pairs on the associated metadata, when objects are uploaded.
    3. Create a striped set of 4000 IOPS Elastic Load Balancing volumes to store the data. Use a database running in Amazon Relational Database Service (RDS) to store the metadata.
    4. Create a striped set of 4000 IOPS Elastic Load Balancing volumes to store the data. Create Amazon DynamoDB tables for the corresponding key-value pairs on the associated metadata, when objects are uploaded.
  6. Company ABCD has recently launched an online commerce site for bicycles on AWS. They have a “Product” DynamoDB table that stores details for each bicycle, such as, manufacturer, color, price, quantity and size to display in the online store. Due to customer demand, they want to include an image for each bicycle along with the existing details. Which approach below provides the least impact to provisioned throughput on the “Product” table?
    1. Serialize the image and store it in multiple DynamoDB tables
    2. Create an “Images” DynamoDB table to store the Image with a foreign key constraint to the “Product” table
    3. Add an image data type to the “Product” table to store the images in binary format
    4. Store the images in Amazon S3 and add an S3 URL pointer to the “Product” table item for each image
  7. A company needs to store IoT sensor data from thousands of devices. The data is small (under 1KB per reading), arrives at unpredictable rates, and must be queryable by device ID and timestamp with single-digit millisecond latency. Which database solution is most appropriate?
    1. Amazon RDS MySQL with Multi-AZ
    2. Self-managed Cassandra on EC2
    3. Amazon DynamoDB with on-demand capacity mode (DynamoDB with on-demand mode is ideal: handles unpredictable workloads without capacity planning, supports composite key (device ID as partition key, timestamp as sort key), and provides single-digit millisecond latency)
    4. Amazon Aurora Serverless
  8. A company wants to perform real-time analytics on data stored in their DynamoDB table without impacting production read/write performance. Which approach is the most operationally efficient?
    1. Create a read replica of the DynamoDB table
    2. Export data to S3 on a scheduled basis and query with Athena
    3. Use DynamoDB zero-ETL integration with Amazon Redshift (Zero-ETL integration provides near real-time data replication to Redshift without building custom pipelines or impacting DynamoDB performance)
    4. Use DynamoDB Streams with a Lambda function to copy data to RDS