ScenarioCert
SAA-C03 ยท Design High-Performing Architectures (24-24%)

Determine high-performing database solutions

Practice questions and explanations for the "Determine high-performing database solutions" objective of the AWS Certified Solutions Architect - Associate exam. Skills measured as of 2026-10-19.

Skills in this objective

  • Configuring read replicas to meet business requirements
  • Designing database architectures
  • Determining an appropriate database engine (for example, MySQL compared with PostgreSQL)
  • Determining an appropriate database type (for example, Amazon Aurora, Amazon DynamoDB)
  • Integrating caching to meet business requirements

Test yourself on this domain

Take the free 15-question test, or unlock all 150 questions and practice this domain on its own.

Sample questions

4 of the 10 questions we have for this objective, shown with the answer and the reasoning.

Determine high-performing database solutions

Hollins University runs a course-registration system on a self-managed MySQL server. Load is almost zero for most of the year, then jumps by two orders of magnitude for the two-week registration windows each semester. The application relies on multi-table joins and transactions. The university wants a managed, MySQL-compatible database that scales capacity up and down automatically in seconds and charges for the capacity actually used.

Which solution will meet these requirements MOST cost-effectively?

  1. AAmazon RDS for MySQL on the largest available instance classA fixed large instance is paid for all year even though it is idle most of the time, and resizing it requires a restart rather than seconds-scale automatic scaling.
  2. BAmazon DynamoDB in on-demand capacity modeOn-demand DynamoDB scales and bills on use, but the application depends on joins and multi-table transactions that would require a complete redesign away from the relational model.
  3. CAmazon Aurora Serverless v2 for Aurora MySQLAurora Serverless v2 is MySQL-compatible, scales capacity in fine-grained Aurora capacity units within seconds based on load, and bills per second for the capacity consumed, which fits a workload that is idle most of the year.
  4. DAmazon Aurora MySQL provisioned instances covered by a three-year Reserved InstanceReserved pricing lowers the hourly rate of a fixed-size instance, but the university would still pay for peak-sized capacity during the long idle periods.
Why: Aurora Serverless v2 is the answer when a relational, compatible-engine workload has intermittent or highly variable demand and the scenario asks for automatic, fine-grained scaling with pay-for-use billing. DynamoDB is the trap: its on-demand mode matches the billing language, but the joins and transactions described make the relational model a hard requirement. Provisioned instances, with or without reservations, always charge for the capacity sitting idle.
Determine high-performing database solutions

Dunmere Logistics is building a fleet-routing application that stores vehicle positions and delivery zones and needs to run geospatial queries such as finding every vehicle inside a polygon using the PostGIS extension. The application also stores semi-structured shipment manifests that it queries with JSONB operators. Dunmere wants a managed relational database with high throughput, automatic storage scaling, and the fewest changes to the code its developers already wrote.

Which database engine should a solutions architect recommend?

  1. AAmazon Aurora PostgreSQL-Compatible EditionAurora PostgreSQL supports the PostGIS extension and JSONB natively, so the existing queries run unchanged, and Aurora adds high throughput, automatic storage growth, and up to 15 replicas.
  2. BAmazon Aurora MySQL-Compatible EditionMySQL has its own spatial and JSON functions, but PostGIS and JSONB are PostgreSQL-specific, so the queries would have to be rewritten.
  3. CAmazon RDS for MariaDBMariaDB is a MySQL-family engine without PostGIS or JSONB, and it lacks the Aurora storage architecture the throughput requirement points to.
  4. DAmazon DynamoDB with a geohash sort keyDynamoDB can support location lookups through geohashing libraries, but it is not relational, has no polygon queries, and would require a complete rewrite.
Why: Engine choice questions turn on features that are specific to one engine. PostGIS, JSONB, and other PostgreSQL extensions tie the workload to PostgreSQL; MySQL has analogous but incompatible features. Once the engine is fixed, the throughput, automatic storage scaling, and replica requirements pick Aurora over standard RDS. The trap is treating MySQL and PostgreSQL as interchangeable because both are open-source relational engines; the exam expects you to recognize extension names and data types as engine-specific signals.
Determine high-performing database solutions

Winterbourne Retail stores its product catalog in an Amazon DynamoDB table named catalog-items. The storefront performs millions of eventually consistent reads per hour against a small set of popular items, and the company wants to reduce read latency from milliseconds to microseconds and cut DynamoDB read costs. The development team wants to change as little application code as possible.

What should a solutions architect recommend?

  1. ADeploy an Amazon ElastiCache for Valkey cluster and add cache-aside logic to the applicationElastiCache can cache the items, but the application must be modified to check the cache, handle misses, and invalidate entries, which is more code change than the team wants.
  2. BIncrease the table's provisioned read capacity unitsMore read capacity raises throughput at higher cost but does not reduce the per-request latency of DynamoDB itself.
  3. CEnable DynamoDB global tables and read from the nearest replicaGlobal tables reduce cross-Region latency; they do not provide microsecond in-memory reads and would increase cost through replicated writes.
  4. DCreate a DynamoDB Accelerator (DAX) cluster and point the application at the DAX endpoint using the DAX clientDAX is a write-through, API-compatible in-memory cache for DynamoDB; swapping the SDK client for the DAX client delivers microsecond reads for repeated items and reduces reads against the table with minimal code change.
Why: DAX is the purpose-built cache for DynamoDB: it is API-compatible, so the application keeps issuing the same GetItem and Query calls through the DAX client, and it serves hot eventually consistent reads from memory in microseconds. ElastiCache is a valid general-purpose cache and the trap here, because it would work but requires the team to write and maintain cache-aside logic. Capacity and global tables address throughput and geography, not in-memory latency. When a scenario says DynamoDB plus microseconds plus minimal code change, choose DAX.
Determine high-performing database solutions

Saltmarsh Media is launching a new mobile app whose backend stores user activity in an Amazon DynamoDB table named activity-events. The company has no traffic history, expects sudden spikes when the app is featured in app stores, and wants requests to succeed during those spikes without throttling. Saltmarsh also wants to pay only for the requests it actually makes rather than for pre-planned capacity.

How should a solutions architect configure the table?

  1. AUse on-demand capacity modeOn-demand mode accommodates workloads with unknown or spiky traffic, instantly serves up to double the previous peak, and bills per read and write request with no capacity planning.
  2. BUse provisioned capacity mode with DynamoDB auto scaling between 5 and 1,000 capacity unitsAuto scaling adjusts provisioned throughput in response to CloudWatch alarms over several minutes, so an abrupt spike can be throttled before the scale-up completes, and Saltmarsh would pay for provisioned units even when idle.
  3. CUse provisioned capacity mode at the maximum expected peak throughputProvisioning for peak guarantees capacity but pays for it continuously, which contradicts the pay-per-request requirement and is impossible to size without traffic history.
  4. DCreate a global table replica in a second Region to absorb the spikesGlobal tables provide multi-Region replication and local access; they do not change how capacity is allocated or billed within a Region.
Why: DynamoDB offers two capacity modes. Provisioned mode is cheapest for steady, predictable traffic and can be paired with auto scaling, but auto scaling reacts over minutes and provisioned units are billed whether used or not. On-demand mode is the fit for new applications with unknown patterns or sharp spikes because it scales instantly and bills purely per request. The trap is option B: auto scaling sounds like it handles spikes, yet the documented behavior is reactive, so sudden surges on a new table can still throttle.

Written from the public documentation. Not affiliated with AWS. Official study guide.