Architecture Design and Implementation Built for the Cloud · Topic 9 of 11
Database and Storage Selection and Scaling
Match RDS, Aurora, DynamoDB and Redshift to access patterns, scale them with replicas, Multi-AZ and global tables, and pick S3, EBS, EFS or FSx storage.
- 5 min
- Match the engine to the access pattern: RDS or Aurora for relational, DynamoDB for key-value at scale, Redshift for analytics.
- A Multi-AZ instance standby is not readable; a Multi-AZ DB cluster has readable standbys.
- Read replicas and Aurora Replicas add read capacity; Aurora Replicas are also failover targets.
What it is
Data services are chosen from the workload, not from habit. The access pattern (key lookups, joins, scans of history), the consistency the business needs and the expected scale point to one database and one storage type.
Then the design adds high availability and read scale. The exam checks that you know which feature protects against which failure, and which one also adds read capacity.
How it works
Selecting the database
| Workload | Choose | Why |
|---|---|---|
| Relational, joins, existing engine (MySQL, PostgreSQL, Oracle, SQL Server) | Amazon RDS | Managed engines with minimal change |
| Relational at higher scale and availability, MySQL or PostgreSQL compatible | Amazon Aurora | Shared distributed storage across three AZs, fast replicas, Global Database |
| Key-value or document access at any scale with single-digit millisecond latency | Amazon DynamoDB | Serverless, scales horizontally, global tables |
| Analytics over large history, columnar scans, BI | Amazon Redshift | Columnar data warehouse, provisioned or serverless |
Model DynamoDB around the queries. Choose a partition key with many distinct values, and add global secondary indexes for other access patterns, because DynamoDB has no joins.
Aurora Serverless v2 scales capacity in small increments for variable workloads. Use it when load swings widely and you do not want to size instances.
Scaling for availability and reads
| Feature | Protects against | Adds read capacity | Notes |
|---|---|---|---|
| RDS Multi-AZ (one standby) | AZ or instance failure | No, the standby is not readable | Synchronous replication, automatic failover |
| RDS Multi-AZ DB cluster | AZ or instance failure | Yes, two readable standbys | Available for MySQL and PostgreSQL |
| RDS read replicas | Read overload; can be promoted for DR | Yes | Asynchronous, can be cross-Region |
| Aurora Replicas | Instance failure, read overload | Yes, up to 15 | Share the cluster storage, act as failover targets |
| Aurora Global Database | Regional outage | Yes, in secondary Regions | Storage-level replication with typically low lag, managed failover |
| DynamoDB global tables | Regional outage | Yes, every replica is readable and writable | Multi-active across Regions |
DynamoDB global tables default to multi-Region eventual consistency, where concurrent writes to the same item resolve by last writer wins. Multi-Region strong consistency gives an RPO of zero and strongly consistent reads in any replica, but it needs exactly three Regions and has higher write latency.
Use Aurora Global Database when the app is relational and can write in one Region at a time. Use DynamoDB global tables when the app must write in several Regions.
Selecting storage by access pattern
| Access pattern | Choose |
|---|---|
| Objects, data lakes, static content, backups | Amazon S3, with storage classes and lifecycle rules |
| Low-latency block storage for one instance (databases, boot volumes) | Amazon EBS: gp3 by default, io2 for the highest sustained IOPS |
| Shared POSIX file system for Linux across AZs | Amazon EFS |
| Windows SMB shares with Active Directory | Amazon FSx for Windows File Server |
| HPC and ML with high parallel throughput, linked to S3 | Amazon FSx for Lustre |
| NFS, SMB and iSCSI with NetApp features | Amazon FSx for NetApp ONTAP |
| ZFS workloads moving to AWS | Amazon FSx for OpenZFS |
For S3 performance, use multipart upload and byte-range fetches, and spread requests across prefixes. S3 Express One Zone gives the lowest latency for frequently accessed data in a single AZ.
S3 Intelligent-Tiering moves objects between access tiers automatically when the access pattern is unknown or changes over time.
How the exam asks about this
- "Reporting queries slow down the production MySQL database, and the standby must also be readable" -> RDS Multi-AZ DB cluster, or read replicas for the reports.
- "A global app must accept writes in three Regions and keep an RPO of zero" -> DynamoDB global tables with multi-Region strong consistency.
- "Hundreds of Linux instances across AZs need the same shared files" -> Amazon EFS.
What to remember for the exam
- Match the engine to the access pattern: RDS or Aurora for relational, DynamoDB for key-value at scale, Redshift for analytics.
- A Multi-AZ instance standby is not readable; a Multi-AZ DB cluster has readable standbys.
- Read replicas and Aurora Replicas add read capacity; Aurora Replicas are also failover targets.
- Aurora Global Database is single-writer across Regions; DynamoDB global tables are multi-active.
- MRSC global tables need exactly three Regions and give an RPO of zero.
- EBS is single-AZ block storage, EFS is shared Linux files, FSx covers Windows, Lustre, ONTAP and OpenZFS.
Read replicas use asynchronous replication, so a replica is not a zero data loss standby. When a scenario requires automatic failover with no data loss inside a Region, the answer is Multi-AZ, not a read replica.
Common mistakes
Pointing reports at a Multi-AZ standby. The single standby of an RDS Multi-AZ instance deployment cannot serve reads. Use read replicas or a Multi-AZ DB cluster.
Using Redshift for transactional lookups. Redshift is built for large analytical scans, not thousands of small row updates. Keep OLTP on RDS, Aurora or DynamoDB and load Redshift for analysis.
Choosing EBS for files shared across AZs. An EBS volume lives in one AZ, and Multi-Attach is limited to io1 and io2 volumes in the same AZ. Shared multi-AZ files need EFS or FSx.
Check yourself
Which RDS option protects against an AZ failure and also offloads reads?
A Multi-AZ DB cluster, which has two readable standby instances in different AZs.
How do DynamoDB global tables resolve conflicting writes in the default mode?
In multi-Region eventual consistency mode, the write with the latest timestamp wins for each item.
Which file storage fits HPC jobs that process data stored in S3?
Amazon FSx for Lustre, which provides high parallel throughput and can link to an S3 bucket.
Topic 9 of 11 in Architecture Design and Implementation Built for the Cloud
Test yourself on Architecture Design and Implementation Built for the Cloud
The full AWS SAP-C03 question bank has 850 questions, with timed practice exams and an explanation for every answer.
This study guide is independent and is not affiliated with, endorsed by, or sponsored by AWS. Vendor names, certification names and exam codes are trademarks of their respective owners and are used for identification only.