Reducing RDS Reads with High Availability
Short answer
B Use Amazon ElastiCache for Redis to serve repeated queries in memory, cutting RDS read traffic while Redis replication groups provide high availability.
Question
What should the solutions architect do to meet this requirement?
Key Takeaways
The question tests whether you distinguish offloading reads versus eliminating them, with the trap being that RDS read replicas merely move reads to other database instances while still performing database reads.
This SAA-C03 scenario asks how to cut a heavy read load on multiple Amazon RDS databases while preserving high availability. Amazon ElastiCache for Redis is the correct choice, because it serves repeated queries from an in-memory layer (genuinely eliminating RDS read traffic) and supports replication groups for high availability.
Common mistake: Option A (add Amazon RDS read replicas) is the most common wrong pick: replicas distribute the load but the application still issues the same total number of database reads, they just land on replicas instead of the primary, so the stated requirement to reduce database reads is not truly met.
Expert Analysis
Why the Answer Is Correct
Amazon ElastiCache for Redis sits between the EC2 batch backend and the RDS databases and answers frequently requested items from memory, so those requests never reach RDS at all — this is the only option that literally reduces the number of database reads. Redis also satisfies the high-availability clause: a replication group with at least one replica in another Availability Zone plus automatic failover gives multi-AZ cache availability, as leonnnn summarized, "Use ElastiCache to reduce reading and choose redis to ensure high availability." Because the cache is transparent to the application tier, read latency also drops sharply for the batch workload, which aligns with objective 3.3 on high-performing database design.
Why the Other Options Are Wrong
Option A, RDS read replicas, offloads load from the primary instance but the application performs the identical number of database reads against the replicas, so the requirement to reduce database reads is not met; as pentium75 argued, "A would reduce the number of database reads from the primary database, but not the number of database reads in general." Option D, ElastiCache for Memcached, does reduce database reads but offers no replication or automatic failover, so it fails the high-availability requirement. Option C, Route 53 DNS caching, only caches DNS lookups and has no bearing on the volume of SQL queries issued to the RDS databases.
Community Comment Notes
The comments split sharply between A and B. leonnnn (top comment) defends B on both counts, while channn counters that "A: reduce the number of database reads on main + high availability provide" and Lalo asks "Where is the high availability when the database fails and the cache time runs out?" theonlyprince and theonlyprince-style reasoning note that "Adding read replicas doesn't reduce the number of database reads," and pentium75 points out that "Elasticache for Redis can be HA (contrary to Elasticache for Memcached)." cookieMr argues read replicas both offload and improve availability, but that view still leaves total database reads unchanged; studynoplay simply calls it "another controversial question from AWS."
Official Reference
- https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/WhatIs.html
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadReplicas.html
These links open the official vendor documentation in a new tab.
Exam Strategy
Read the requirement literally: if it says reduce the number of database reads, only a caching layer removes queries entirely, whereas read replicas only relocate them. Then verify the second clause (high availability) to eliminate Memcached, which has no replication or failover.
Frequently Asked Questions
Why aren't Amazon RDS read replicas enough to reduce database reads?
Why is ElastiCache for Memcached rejected instead of Redis?
Discussion 168 contributions
Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.
From public community threads 30 of 168
-
leonnnn 👍 49 Answered BUse ElastiCache to reduce reading and choose redis to ensure high availability.
-
channn 👍 32 Answered AA vs B: A: reduce the number of database reads on main + high availability provide B: only reduce the number of DB reads so A wins
-
Lalo 👍 26Where is the high availability when the database fails and the cache time runs out? The answer is a.
-
ruqui 👍 13A can't be an answer because the requirement is"reduce the number of database reads"
-
pentium75 👍 8Why "only reduce the number of DB reads"? This is exactly what is asked. Elasticache for Redis can be HA (contrary to Elasticache for Memcached).
Show 25 more comments
-
pentium75 👍 7 Answered BThe question is a bit unclear, "reduce the number of database reads", as seen from the application or from the database? A would "reduce the number of database reads" from the primary database, but not "the number of database reads" in general. We would still perform the exactly same number of "database reads" as before, just from a replica. B - requires changes to the application but would "reduce the number of database reads while ensuring high availability" so Y C - Nonsense D - Like B but not HA I'd be undecided between A and B, but as they are giving us two different ElastiCache flavors they obviously want us to know that Redis provides HA while Memcached does not. Thus B.
-
JoeGuan 👍 7Caching Frequently Accessed Data: ElastiCache allows you to store frequently accessed or computationally expensive data in-memory within the cache nodes. This means that when an application requests data, ElastiCache can provide the data directly from the cache without having to query the RDS database. This reduces the number of reads on the RDS database because the data is retrieved from the faster in-memory cache.
-
theonlyprince 👍 7Adding read replicas doesn't reduce the number of database reads since the read replicas are just additional database instances that have the exact same data as the primary they're replicating. To reduce the number of db reads, typically a cache is used - which is much smaller in size but also much faster for repeat data retrieval.
-
cookieMr 👍 6 Answered ABy adding read replicas to the Amazon RDS databases, the read workload can be offloaded to the replicas, reducing the number of database reads and improving performance. Read replicas provide high availability and can handle read traffic independently, distributing the load and reducing the burden on the primary database. B. Amazon ElastiCache for Redis is an in-memory data store primarily used for caching, which can improve read performance, but it doesn't directly reduce the number of database reads. C. Amazon Route 53 DNS caching is a service that caches DNS responses, which can improve overall network performance, but it doesn't specifically address reducing database reads. D. Amazon ElastiCache for Memcached is another caching service similar to Redis, but it doesn't directly address the issue of reducing database reads.
-
jdr75 👍 6 Answered AIt appears could be "B", cos' it backs HA (with Redis in cluster). But it's a trick. Because when it said "ensuring high availability" it does not refers to the solution you're thinking of (for example "redis"), BUT, for the RDS it self. Choosing A (read replicas) you improve the databases HA, and ALSO, helps to minimize the problem of the excesive reads.
-
studynoplay 👍 6another controversial question from AWS, great.
-
mani37k 👍 5 Answered AA. Add Amazon RDS read replicas. Adding Amazon RDS read replicas is a commonly used strategy to offload read traffic from the primary database, thereby reducing the number of database reads. Read replicas provide high availability and can distribute read queries across multiple instances, improving overall read performance. While options B and D suggest using Amazon ElastiCache for Redis or Memcached, these caching solutions are more focused on improving read performance by caching frequently accessed data, but they do not inherently reduce the number of reads on the RDS database. They can complement the solution by serving cached data, but they are not a direct way to reduce the reads on the database.
-
muhtoy 👍 5 Answered Athe key is High Availability : the solutions architect should add Amazon RDS read replicas option B is incorect because, is it true that Amazon ElastiCache for Redis can help reduce the number of database reads by storing frequently accessed data in a cache. However, it is not a solution for high availability in this scenario because it does not provide failover capabilities like read replicas do. If the cache becomes unavailable, the application will still need to make database reads to function.
-
farnamjam 👍 5 Answered AWhy other options aren't as suitable: B. ElastiCache for Redis: While it can cache frequently accessed data, it's primarily used for in-memory data storage and retrieval, not as a direct replacement for database reads. C. Route 53 DNS caching: This caches DNS records for faster domain resolution, not database queries. D. ElastiCache for Memcached: Similar to Redis, it's an in-memory caching service, not optimized for reducing database reads.
-
mandragon 👍 5Elasticache for Redis ensures high availability by using read replicas and Multi AZ with failover. It is also faster since it uses cache. https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html
-
Capt_Miguel 👍 5 Answered AAvsB A:Creating read replicas will ensure the availability of the DB. (CORRECT) B: Will reduce the reading and what happens when there is more reads.
-
babayomi 👍 5THE FOCUS HERE IS TO REDUCE READ OPERATION FROM THE READ REPLICAS. CATCHING IS THE SOLUTION AND REDIS IS MOST SUITABLE
-
Qu_B 👍 5This question is stupid! Both answers can be correct!
-
ale_brd_111 👍 4 Answered AOption A (Amazon RDS read replicas): Adding read replicas to the Amazon RDS databases allows for offloading read queries from the primary database to the read replicas. This can significantly reduce the load on the primary database, distribute read traffic, and improve overall performance. Read replicas provide high availability and can be used to scale out the read capacity horizontally. Option B (Amazon ElastiCache for Redis) and Option D (Amazon ElastiCache for Memcached): These options involve caching solutions, which can be effective for reducing database reads by serving frequently accessed data from an in-memory cache. However, they may not directly address the high availability requirement, and the effectiveness depends on the nature of the application and data access patterns.
-
chasingsummer 👍 4 Answered AAdding read replicas to an Amazon RDS database allows you to offload read traffic from the primary database to one or more read replicas. This not only reduces the load on the primary database but also improves overall performance. Read replicas provide scalability and can enhance the availability of read operations, as they can be used to distribute the read traffic. On the other hand, Amazon ElastiCache for Redis is a caching service and might not be the best fit for reducing database reads unless your application can benefit from caching data in-memory. For the given scenario, where the goal is to specifically reduce the number of reads on the databases, adding read replicas to the Amazon RDS setup is the more appropriate solution.
-
Buruguduystunstugudunstuy 👍 4 Answered AA. Add Amazon RDS read replicas. One way to reduce the number of database reads while ensuring high availability is to use Amazon RDS read replicas. Read replicas allow you to scale out read-intensive workloads by creating one or more replicas of your source database and directing read traffic to these replicas. This can help reduce the load on the source database and improve the performance of read-intensive applications. Below are incorrect because it is not directly related to reducing the number of database reads. B. Use Amazon ElastiCache for Redis. C. Use Amazon Route 53 DNS caching D. Use Amazon ElastiCache for Memcached.
-
volkan4242 👍 4A. Add Amazon RDS read replicas. Adding Amazon RDS read replicas is the recommended solution for reducing the number of database reads while ensuring high availability. Read replicas are copies of the primary database that can be used to offload read traffic from the primary database. This can reduce the load on the primary database and improve performance. Read replicas can also be used to improve availability, as they can be promoted to become the primary database in case of a failure. According to chatgpt
-
UnluckyDucky 👍 4 Answered BThe key to this question is reducing the database read operations which can be achieved with ElastiCache as reads are also saved to ElastiCache, therefore future read quests will often get a response from cache hits, resulting in less database read operations. As for the ElastiCache options - Redis vs Memcached: The question states high availability which Memcached does not support. Redis supports Multi-AZ and therefore - ensures high availability.
-
Uzbekistan 👍 4 Answered AA. Add Amazon RDS read replicas. Amazon RDS read replicas allow you to create one or more read-only copies of your RDS database instance. By offloading read traffic to read replicas, you can distribute the workload across multiple database instances, reducing the load on the primary database and decreasing the number of reads it needs to handle. This helps to improve the overall performance and scalability of your application.
-
Shely 👍 4Answer will be . Below is written in AWS student guide. You can add read replicas to handle read workloads so your primary database doesn’t become overloaded with read requests. Depending on the database engine, you can also place your read replica in a different Region from your primary database. This gives you the ability to have a read replica closer to a particular location.
-
datz 👍 4 Answered AAnswer = A B is wrong due to bellow: Redis is a type of database that's commonly referred to as No SQL or non-relational . In Redis, there are no tables, and there's no database-defined or -enforced way of relating data in Redis with other data in Redis.
-
PassNow1234 👍 4 Answered AA. The answer is in the question. "application is causing high number of reads on the database" "MUST reduce number of database reads" . Elasticache is for performance issues which are both correlated.
-
Marco_St 👍 4 Answered AElasticCache is useful when the usecase has frequent accessing data. But this is not for sure. So read replica is more reasonable for reducing read to the primary database. So I picked A
-
AlankarJ 👍 4''A'' does not reduce the number of reads, it just spreads the reads to more replicas. We need to specifically decrease the number of reads that can only be done by caching.
-
wRhlH 👍 4 Answered AB and D performs the same affect in this case actually. And since it's a single-choice question. The correct answer should be A.
Reader comments & corrections
No reader corrections yet — spotted an error or have a note? Share it below.
Related Analysis
Practice All SAA-C03 Questions
Access 120 questions with complete answers and detailed explanations.
View Full SAA-C03 Practice Test →