SOA-C03 - Monitoring, Logging, Analysis, Remediation, and Performance Optimization (22% of the exam) - Section 1.7

Monitor and tune Amazon RDS and caching-layer performance using RDS Performance Insights, RDS Proxy, Amazon ElastiCache and DynamoDB Accelerator.

Monitor Amazon RDS query load using RDS Performance Insights and reduce connection overhead with Amazon RDS Proxy. Distinguish when to add an Amazon ElastiCache caching layer versus DynamoDB Accelerator to reduce database read latency in high-throughput workloads.

Amazon RDS Performance InsightsAmazon RDS ProxyAmazon ElastiCacheDynamoDB Accelerator

Practice question for this objective

Free sampleMonitoring, Logging, Analysis, Remediation, and Performance Optimizationmedium

A read-heavy product catalogue runs on Amazon DynamoDB, and a service team needs to cut single-digit-millisecond read latency to microseconds for repeated reads of the same items, while keeping their existing DynamoDB API calls unchanged. Which fully managed caching option fits this requirement with the least application rework?

  • APut DynamoDB Accelerator in front of the table as a write-through cache so repeated item reads return from DAX in microseconds. Correct
  • BFront the table with an Amazon ElastiCache for Memcached cluster and add cache-aside lookups in the application before each DynamoDB read.
  • CCreate DynamoDB global secondary indexes on the most-read attributes so that repeated catalogue reads resolve faster from the indexes.
  • DEnable DynamoDB point-in-time recovery and rely on its retained copies to serve the repeated catalogue reads at lower latency.
Choose DynamoDB Accelerator to deliver microsecond read latency for DynamoDB workloads without changing the existing DynamoDB API calls. DAX is an in-memory cache designed specifically for DynamoDB. The application talks to the DAX endpoint using the same DynamoDB API, so cached reads of hot items are served from memory in microseconds instead of the single-digit milliseconds of a direct table read, and DAX manages population and invalidation itself. A generic ElastiCache cluster would require hand-written cache-aside logic, while indexes and point-in-time recovery address query shape and durability rather than read latency.

Why A is correct: DAX is a managed in-memory cache purpose-built for DynamoDB that uses the same API, returning cached items in microseconds with no cache-aside code to write.

Why B is wrong: ElastiCache could cache items, but it needs bespoke cache-aside code and its own key management, which contradicts the requirement to keep the DynamoDB API calls unchanged.

Why C is wrong: Global secondary indexes support different query patterns but still read from DynamoDB storage at millisecond latency, so they cannot deliver the microsecond reads being asked for.

Why D is wrong: Point-in-time recovery is a backup and restore feature that protects against data loss and plays no role in read latency, so it cannot meet the performance goal at all.

See more SOA-C03 practice questions, answers explained.

Exam traps in Monitoring, Logging, Analysis, Remediation, and Performance Optimization

Answers that look right on this material and are not. Each one is a distractor from a different question in the SOA-C03 bank for this domain.

  • Enable Amazon CloudWatch detailed monitoring on the instance to graph CPU and memory at one-minute resolution and infer the slow queries from those graphs.

    Why it is wrong: Detailed monitoring raises metric resolution but shows host-level CPU and memory only; it cannot attribute load to individual SQL statements or wait events, so it does not diagnose the bottleneck.

  • The instance has run out of storage IOPS, because crossing the vCPU line is the way Performance Insights reports that the volume can no longer keep up.

    Why it is wrong: The vCPU line marks processor capacity, not storage throughput, so exceeding it does not indicate an IOPS limit, which would instead appear as I/O-related wait events.

  • Store the username and password as a SecureString parameter in Systems Manager Parameter Store and let the proxy read that parameter to connect.

    Why it is wrong: Parameter Store can hold an encrypted value, but RDS Proxy reads its database credentials from a Secrets Manager secret, not from a Parameter Store parameter, so the proxy cannot authenticate this way.

Examworthy is not affiliated with or endorsed by Amazon Web Services. Original, blueprint-aligned practice material only.