3.2 - High-performing databases and caching

AWS Solutions Architect Associate objective 3.2 covers choosing high-performing data stores. For a read-heavy database that is CPU-bound on repeated identical queries, adding an in-memory cache such as Amazon ElastiCache (Redis or Memcached) serves hot results and takes load off the database. For a DynamoDB table with spiky, unpredictable traffic where you do not want to manage capacity, on-demand capacity mode scales instantly and bills per request. For fast, complex analytical SQL over petabytes of data, Amazon Redshift is the columnar, massively parallel data warehouse. You should also match relational, NoSQL, in-memory and analytics engines to workloads, and know read replicas and DAX. Expect scenario questions that describe repeated hot reads, unpredictable NoSQL traffic, or heavy analytical queries, and ask which service - ElastiCache, DynamoDB on-demand or Redshift - gives the needed performance.

Memory hook
Repeated hot reads, CPU-bound DB = add ElastiCache (in-memory). Spiky NoSQL, no capacity planning = DynamoDB on-demand. Complex analytics over petabytes = Redshift (columnar data warehouse).

Practice questions

1. A read-heavy database is CPU-bound on repeated identical queries. Which addition offloads reads with sub-millisecond latency?

  • An in-memory cache such as Amazon ElastiCache (correct answer)
  • A larger provisioned-IOPS EBS volume
  • A second internet gateway for more bandwidth
  • AWS Global Accelerator static IPs

ElastiCache (Redis or Memcached) stores hot query results in memory, returning them in microseconds and removing load from the database.

2. Users worldwide upload large files to a single S3 bucket and experience slow, inconsistent speeds. Which feature improves upload throughput over long distances?

  • S3 Versioning on the destination bucket
  • S3 Requester Pays on the target bucket
  • S3 Object Lock in compliance mode
  • S3 Transfer Acceleration (correct answer)

S3 Transfer Acceleration routes uploads through the nearest CloudFront edge and over the AWS backbone, speeding long-distance transfers. The other options are unrelated to throughput.

3. A TCP-based game needs static anycast IPs and the fastest AWS network path to endpoints in several Regions. Which service fits?

  • Amazon CloudFront
  • Amazon API Gateway
  • AWS Global Accelerator (correct answer)
  • Amazon Route 53

Global Accelerator provides two static anycast IPs and routes TCP/UDP traffic over the AWS global network to the nearest healthy endpoint, ideal for non-HTTP, latency-sensitive apps.

4. A read-heavy RDS database is saturated by reporting queries competing with transactions. What relieves read pressure without harming writes?

  • Enable Multi-AZ synchronous failover for the database
  • Increase the storage volume size
  • Add a second NAT gateway
  • Add read replicas and point reports at them (correct answer)

RDS read replicas offload read/reporting traffic asynchronously, freeing the primary for writes and transactions. Multi-AZ adds availability, not read scaling; storage size and NAT do not address query load.

5. Uploads of very large files to S3 are slow and fail on flaky connections. Which technique improves throughput and resilience of the transfer?

  • Encrypt the file before uploading
  • Use a smaller EC2 instance to run the upload
  • S3 multipart upload with parallel parts (correct answer)
  • Store the file in Glacier first

Multipart upload splits a large object into parts uploaded in parallel and retried independently, improving throughput and tolerating network interruptions. Encryption and storage class do not fix transfer speed.

6. An app needs an in-memory cache that supports replication, persistence, and sorted-set data structures. Which ElastiCache engine should be chosen?

  • Memcached, because it is multithreaded and simplest to operate
  • Either engine, since Redis and Memcached have identical feature sets
  • ElastiCache for Redis, which supports replication, persistence, and rich data types (correct answer)
  • Neither; use a DynamoDB table with DAX to get the same data structures

Redis supports replication, automatic failover, persistence, pub/sub, and rich data types (sorted sets, lists, hashes). Memcached is simpler and multithreaded but lacks replication, persistence, and advanced types.

Related objectives