In the SAA-C03 exam, database questions fall under the Design high-performing architectures domain, which accounts for roughly 26% of the exam. Two types of questions repeat consistently: "Which database is optimal for this scenario?" and "How do you improve database performance?"
Why Does Choosing the Right Database Matter?
Before building a house, you need to understand the characteristics of the land. Databases work the same way. You must first understand the structure of your data, how it will be accessed, and the expected traffic volume before selecting the right database. Choosing the wrong database makes migration extremely difficult later.
Database Selection Guide — Which Database for Which Situation?
Relational database with maximum performance → Aurora
Relational databases use a table structure with rows and columns. They are ideal for structured data like order records, customer data, and inventory. Aurora is fully compatible with MySQL or PostgreSQL while AWS has deeply optimized the underlying engine for dramatically higher performance.
Relational database requiring Oracle or SQL Server → RDS
AWS-managed relational database service supporting Oracle, SQL Server, MySQL, PostgreSQL, and MariaDB. Use it when an existing application is tied to a specific database engine.
Key-value structure, ultra-fast response, automatic scaling → DynamoDB
A NoSQL database with flexible schema, capable of handling millions of requests per second, and operable in a serverless model. Ideal for mobile game data, IoT sensor data, and session management.
Database responses are too slow → ElastiCache
Place a caching layer in front of the database to keep frequently accessed data in memory. When the cache can answer a request, the database is never touched.
Large-scale data analysis → Redshift
An OLAP data warehouse designed to aggregate and analyze hundreds of millions of records. Not for transactional workloads — for analytical ones.
Graph data → Neptune
Use when the relationships between data points are the core value: social network connections, follower graphs, recommendation engines.
MongoDB-compatible document database → DocumentDB
Fully managed service for storing JSON documents, compatible with the MongoDB API.
!Choosing a database: Aurora, RDS, DynamoDB, ElastiCache, Redshift
Aurora — Upgrading from a Regular Car to a Luxury Sedan
If Aurora could be described in one sentence: it is MySQL or PostgreSQL with the engine rebuilt from scratch for the cloud, delivering more than 5 times the performance.
Why use Aurora over regular RDS MySQL?
Regular MySQL on RDS depends on a single server. Aurora was designed from the ground up for cloud-distributed environments. It automatically maintains 6 copies of your data across 3 Availability Zones, meaning your data is protected even if a hardware failure occurs.
Key Aurora features
Storage automatically grows from 10 GB to 128 TB as needed — you never have to pre-provision storage. Up to 15 read replicas can be added.
Read Replicas are like photocopies of a popular library book. The original (the master) handles all writes — recording checkouts, returns, and updates. The copies are distributed to readers who just want to read the content. This dramatically reduces the read load on the master database.
Aurora Serverless v2
Costs almost nothing when idle, and automatically scales up when traffic arrives. Perfect for development and test environments or services with irregular traffic patterns.
Aurora Global Database
Replicates from the primary region to a secondary region in under one second. Users in Korea get fast reads from Seoul; users in the US get fast reads from Virginia. Also a key component of disaster recovery (DR) strategies.
DynamoDB — A Flexible Notebook Handling Millions of Entries
DynamoDB in one sentence: a NoSQL database with no fixed schema that can store data of any structure and process millions of requests in milliseconds.
Capacity Mode Selection
Provisioned mode: You specify read and write throughput in advance. Suitable when traffic is predictable and consistent. You can purchase reserved capacity to reduce costs.
On-demand mode: AWS adjusts automatically to match traffic. Use when traffic is unpredictable or can spike suddenly. You pay only for what you use.
DAX (DynamoDB Accelerator) — Speed Dial on Your Phone
Frequently called numbers are saved as speed dials — you press one button instead of dialing the full number. DAX is a fully managed, in-memory cache that sits in front of DynamoDB. Data in the cache responds in microseconds. Switching to DAX requires minimal code changes: just point the DynamoDB SDK at the DAX endpoint.
DynamoDB Global Tables
Active-active multi-region tables that support both reads and writes in multiple regions simultaneously. Use when you need low-latency access for a global user base.
DynamoDB Streams
When a change (insert, update, or delete) occurs in a DynamoDB table, an event is published to a stream. Use this to trigger Lambda functions and build event-driven architectures that react to data changes.
ElastiCache — Ultra-Fast Short-Term Memory in Front of Your Database
A cache stores frequently accessed data in memory so it can be returned immediately without querying the database. Fewer database queries mean lower database load and faster response times.
ElastiCache for Redis — The Swiss Army Knife
Redis is far more than a simple cache. It is a full-featured in-memory data store that supports data replication, persistence, high-availability clusters, and rich data structures (lists, sets, sorted sets). Use Redis for leaderboards, session stores, and real-time analytics.
ElastiCache for Memcached — The Simple Screwdriver
Memcached has fewer features than Redis, but that simplicity makes it fast and straightforward. Use it for simple key-value caching and horizontal scaling scenarios where you do not need replication or persistence.
When to use Redis vs Memcached?
Need replication, persistence, advanced data structures → Redis Simple caching, no replication needed, horizontal scaling priority → Memcached
Read Replicas — Photocopies of a Popular Library Book
When read traffic is high and the master database is overloaded, create read replicas to distribute read queries. Writes go only to the master; reads are distributed across multiple replicas.
Aurora supports up to 15 read replicas. RDS supports up to 5. Replicas can be created in the same region or in a different region.
Exam Key Points
"MySQL/PostgreSQL compatible, highest performance, cloud-native" -- Aurora