Reducing RDS Reads with High Availability

Answer Correct answer: B — Use Amazon ElastiCache for Redis to serve repeated queries in memory, cutting RDS read traffic while Redis replication groups provide high availability.

A company is running a batch application on Amazon EC2 instances. The application consists of a backend with multiple Amazon RDS databases. The application is causing a high number of reads on the databases. A solutions architect must reduce the number of database reads while ensuring high availability. What should the solutions architect do to meet this requirement?

  1. Add Amazon RDS read replicas.
  2. Use Amazon ElastiCache for Redis. Correct Answer
  3. Use Amazon Route 53 DNS caching
  4. Use Amazon ElastiCache for Memcached.

Community Insight

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.

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.

Community Discussion (168 comments)

faeshal 👍 1 Selected: B
Read Replica = scale database reads. Cache = reduce database reads.
Sushmita42 👍 1 Selected: B
The key requirements are: a. Reduce database reads b. Maintain high availability c. The application is read-heavy The best fit is ElastiCache for Redis. Redis supports high availability through features such as replication and Multi-AZ deployments with automatic failover. It is therefore a strong choice when the question emphasizes both: reduce database reads + high availability Read replicas distribute read traffic, but they don't necessarily reduce the total number of database reads. So, A can't be the answer
46e1a46 👍 1 Selected: A
Two requirements need to be addressed: Reduce database reads → offload reads to replicas Ensure high availability → replicas provide redundancy Caching reduces database reads, BUT: Requires application code changes to implement cache logic. Cache misses still hit the database. Doesn't inherently provide HA for the database itself. More complex than just adding read replicas
robst84 👍 2 Selected: B
Using Replicas won't reduce the number of reads. The answer has to be ElastiCache.
Darius_W 👍 2 Selected: B
B. Use Amazon ElastiCache for Redis. Why: A cache reduces repeated database reads. Redis supports Multi-AZ with replication and automatic failover, meeting the high availability requirement. A (RDS read replicas): Increases read capacity but doesn’t reduce total DB reads hitting RDS. D (Memcached): No HA/replication; a node failure loses cache and availability. C: DNS caching is unrelated to DB read load.
MultipleWorkerMirroredStrategy 👍 3 Selected: B
Since the question requires us to "reduce the number of database reads while ensuring high availability", a read replica would not meet this requirement. ElastiCache for Redis provides high availability, while Memcached doesn't. Therefore, B seems to be the right answer for me.
Charlesvg 👍 2 Selected: B
Elasticache allows to reduce the reads on the DB while assuring HA. https://aws.amazon.com/fr/blogs/database/introducing-99-99-availability-with-amazon-elasticache-for-redis-and-amazon-memorydb-for-redis/
network_enthusiast 👍 2 Selected: B
B is the correct answer
kg508 👍 2 Selected: B
I voted B because it was mentioned that the number of database reads should be reduced If I had to reduce the database read load, I would have done it to A
satyaammm 👍 1 Selected: A
RDS read replicas provide HA unlike Redis
FlyingHawk 👍 2 Selected: B
Read replicas distribute read traffic but do not reduce the total number of reads. They scale read capacity but still require every read to hit a database instance.
Qu_B 👍 5
This question is stupid! Both answers can be correct!
Omariox 👍 4 Selected: A
for high availability, the answer should be A
jaradat02 👍 3 Selected: B
RDS read replicas are mainly used for higher performance, and not for higher availability, that's why I chose ElastiCache using Redis.
Aws_aspr 👍 3 Selected: B
I Vote B since question is asking to reduce the database reads. Using Read replicas offloads the reading operation from main db but doesn't reduce it.
freedafeng 👍 1
B is not correct. the effectiveness of caching depends on the application. it's not always a good solution.
jatric 👍 4 Selected: A
why not read replica when you get read performant with HA?
shil_31 👍 4 Selected: A
Options B, C, and D are not directly related to ensuring high availability
lofzee 👍 1 Selected: B
I think it is B: https://aws.amazon.com/getting-started/hands-on/boosting-mysql-database-performance-with-amazon-elasticache-for-redis/ Although the question just says "RDS Database", it doesn't specify what type of DB.
sudohogan 👍 4
Elasticahe is NOSQL, A is the Answer!
ManikRoy 👍 3 Selected: B
Pretty sure answer is option B. You have to use a caching to 'reduce' database reads so read replica is out of option. The question mentions High availability so Redis is preferable than MemCached.
soufiyane 👍 1 Selected: B
the question is clearly says reduce reads request, so b is the naswer
1dfed2b 👍 1 Selected: B
Use ElastiCache to reduce reading and ensure high availability. Opt A read replica its for performance not HA I will vote for B
Capt_Miguel 👍 2
the answer should be A, read replicas enhance high availability by providing failover capabilities in case the primary instance becomes unavailable.
TeamACT 👍 2
I think A should have been correct if the question had requested for a cost -effective solution because Redis costs money.
Capt_Miguel 👍 5 Selected: A
AvsB 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.
Uzbekistan 👍 4 Selected: A
A. 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.
Kanagarajd 👍 2 Selected: B
B is right answer
duynm98_vn 👍 3 Selected: A
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html "A read replica is a read-only copy of a DB instance. You can reduce the load on your primary DB instance by routing queries from your applications to the read replica."
SVDK 👍 2 Selected: B
A cannot be write as more read replicas doesn't reduce the number of database queries. A is correct as cached data reduces the number of database queries as content is served from cache instead.
NayeraB 👍 3 Selected: A
B is incorrect because you have to explicitly enable and configure read replicas for Amazon ElastiCache for Redis. It's not enabled by default, and the choice says nothing about enabling read replicas for Elastichache for Redis. So B serves only the purpose of off-loading reads but not the HA one, while A will reduce the read requests for the main DB AND you can promote the read replica in case the main one fails, aka achieving high availability.
bujuman 👍 3 Selected: A
Benefits of Amazon RDS Read Replicas: Enhanced performance Increased availability Designed for security
chasingsummer 👍 4 Selected: A
Adding 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.
app12 👍 2
https://aws.amazon.com/elasticache/redis-vs-memcached/ The difference between redis and memcached is the HA. So redis wins.
farnamjam 👍 5 Selected: A
Why 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.
babayomi 👍 5
THE FOCUS HERE IS TO REDUCE READ OPERATION FROM THE READ REPLICAS. CATCHING IS THE SOLUTION AND REDIS IS MOST SUITABLE
Priyapani 👍 2 Selected: B
Answer Wil be B. Redis support high availability, failover, data is persistent Also reduce number of database reads
LoXoL 👍 2
pentium75 is right.
upliftinghut 👍 3 Selected: A
Reduce read while ensuring HA: read replicas instead of pure cache
pentium75 👍 4
A reduces the impact of reads, but not the number of reads.
Pocaho 👍 2 Selected: B
Redis has high availability and the cache will reduce reads as intended
pentium75 👍 7 Selected: B
The 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.
Kanagarajd 👍 1
good explanation!
LoXoL 👍 3
love pentium75
djgodzilla 👍 2 Selected: B
Memcached doesn't support the below Redis features - Advanced data structures: supports lists, sets, sorted sets, hashes, bit arrays, and hyperloglogs. ideal for game leadrboards - Snapshots : keep your data on disk with a point in time snapshot which can be used for archiving or recovery. - Replication: Redis lets you create multiple replicas of a Redis primary. This allows you to scale database reads and to have highly available clusters. - Transactions : Redis supports transactions which let you execute a group of commands as an isolated and atomic operation. - Pub/Sub : Pub/Sub messaging with pattern matching which you can use for high performance chat rooms, real-time comment streams, social media feeds. - Lua scripting - Geospatial support
ale_brd_111 👍 4 Selected: A
Option 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.
BhavyaMPatel 👍 2 Selected: B
https://aws.amazon.com/getting-started/hands-on/boosting-mysql-database-performance-with-amazon-elasticache-for-redis/ for more detail
Marco_St 👍 4 Selected: A
ElasticCache 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
xdkonorek2 👍 3 Selected: A
B would be correct if data could be cacheable, not every data is and we don't have this information A is the answer
David_Ang 👍 3 Selected: A
they are literally asking for reducing reading, not anything else, so is "A".
pentium75 👍 2
A doesn't "reduce the number of database reads" though, the reads are just directed to replicas but they are still performed. I think the question is unclear.
tom_cruise 👍 4 Selected: B
Redis provides HA through replica, memcached does not.
prabhjot 👍 2
Option a - the ans and not Option B ( as Option B (Using Amazon ElastiCache for Redis) is primarily used for caching data in memory, which can help reduce read operations on the database, but it doesn't provide high availability or replication of the database itself.)
Ramdi1 👍 3 Selected: B
B - They want to reduce reads so no need for read replica. Redis ensure high Avail.
mani37k 👍 5 Selected: A
A. 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.
Modulopi 👍 2
A for Availability
axelrodb 👍 1 Selected: B
B is the correct answer since the requirement is to reduce the read which can be achieved with ElastiCache. Adding RDS read replica is only going to distribute the read requests. With ElastiCache, read hit will occur thus achieving the goal mentioned.
gouranga45 👍 3 Selected: A
A satisfies the given requirements
TariqKipkemei 👍 3 Selected: A
RDS read replicas was designed specifically to handle this kind of scenario.
kambarami 👍 1
Answer is B Use elastic cache to reduce the numbers of reads
Valder21 👍 3 Selected: A
if it could be B, why not D?
ssa03 👍 1 Selected: B
reduce reading
skaikobad 👍 1 Selected: B
I think B is correct. Because it Reduce Read operation also provide High Availability
mtmayer 👍 1 Selected: B
Reduce the number of reads ......
Guru4Cloud 👍 2 Selected: B
B is the correct answer. Using ElastiCache for Redis allows caching the data from the RDS databases. This reduces the number of reads required from the databases by serving repeated reads from the Redis cache instead. A is incorrect because RDS read replicas only help scale reads and do not reduce the overall reads from the primary database.
Aelodus 👍 2 Selected: B
To reduce the number of database reads in general, a cache should be used. So that leaves B and D, since we want high availability, Redis should be used so option B.
yhonatan2288 👍 2 Selected: A
Agregar réplicas de lectura a Amazon RDS es una estrategia efectiva para reducir la carga en las bases de datos y mejorar el rendimiento. Las réplicas de lectura permiten distribuir las lecturas entre las réplicas, aliviando la carga en la instancia principal de la base de datos. Esto también puede mejorar la latencia para las consultas de lectura. Además, las réplicas de lectura también contribuyen a la alta disponibilidad, ya que en caso de que la instancia principal falle, una de las réplicas de lectura puede promocionarse para asumir el rol de instancia principal.
n43u435b543ht2b 👍 2 Selected: B
Creating a read replica DOES NOT reduce the number of reads that are computed on the database, which is CLEARLY listed the goal of this solution. However, using Elasticache Redis caches read queries, which means they do not have to be executed on the database or any replicas.
ami888 👍 3 Selected: A
¿ElastiCache for Redis ensuring high availability?... then... I think correct is A, using Read Replicas. Although the number of global reads is the same, the primary DB will have less.
Pulkitt 👍 1 Selected: B
We have to reduce database reads, so B.
Thornessen 👍 1 Selected: B
A: Using read replicas does not reduce number of reads, so not correct for that reason B: Redis has more features than Memcached - e.g. transactions, which are probably needed in batch processing, so B is correct
james2033 👍 3 Selected: A
D is not correct answer https://aws.amazon.com/elasticache/memcached/ . Remove C, Amazon Route 53 DNS is not related. B, Amazon ElasticCache for Redis is not related. A is chosen.
cookieMr 👍 2 Selected: B
A - still the same read operations B - caching with multi AZ C - gibrish D - caching without multi AZ
rcarmin 👍 1 Selected: B
What is asked from us? To reduce the number of DATABASE READS while ensuring High Availability. Answer A: Will only distribute the database reads across replicas. This does NOT reduce the total number of database reads at all. Also, nowhere is said that the high volume of reads is causing latency issues (the usual scenario for this option). Answer is B With ElastiCache, the reads are done at the memory (cache), and not at the database. Redis provides the High Availability. This will achieve what is asked in the question.
sosda 👍 1 Selected: B
A does not reduce number of database reads
sickcow 👍 2 Selected: A
A - reduces the amount of database reads on the primary database
VellaDevil 👍 1
Going with B as the questions specifically requires reducing Database Reads. Can only be achieved using Elasticache for Redis
Mia2009687 👍 1 Selected: B
They want to educe the number of database reads. So ElastiCache. Read Replica still reads DB.
edersioli 👍 3 Selected: A
Answer: A - To reduce the number of database reads while ensuring high availability on Amazon RDS, the solutions architect should add Amazon RDS read replicas. This allows reads to be distributed among the replicas, reducing the number of reads on each database and increasing availability.
rcarmin 👍 1
You just said it yourself. Distribute reads among the replicas. This does NOT reduce the number of reads. Answer is B With ElastiCache, the reads are done at the memory, and not at the database. Thus achieving what is asked.
cookieMr 👍 6 Selected: A
By 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.
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.
Abrar2022 👍 1
ElastiCache reduces reading
Abrar2022 👍 2
ElasticCacheReduceReads
eugene_stalker 👍 3 Selected: A
A-reduce the amount of reeds
Bmarodi 👍 3 Selected: A
Option A is corect answer.
ruqui 👍 2 Selected: B
Answer is B. A is not valid (the requirement is to reduce the number of DATABASE reads)
wRhlH 👍 4 Selected: A
B and D performs the same affect in this case actually. And since it's a single-choice question. The correct answer should be A.
studynoplay 👍 6
another controversial question from AWS, great.
aussiehoa 👍 2
You bring in more tier, avail goes down. No tier has 100% avail. A
Konb 👍 3 Selected: B
  • reduce the number of database reads Increasing amount of read replicas (A) won't influence the amount of database reads. They will be just distributed to more replicas. While the requirement sounds nonsense to me (who cares the amount of reads?) the only way to achieve this is to put a cache before the database. For Redis vs Memcached: "Redis lets you create multiple replicas of a Redis primary. This allows you to scale database reads and to have (!) highly available (!) clusters." https://aws.amazon.com/elasticache/redis-vs-memcached/
rushi0611 👍 2 Selected: B
Solution requires to reduce the reads on the database and that can be achieved only with caching technology. So correct answer is B.
rag300 👍 1 Selected: A
A will be the good choice the cost will be lesser
compachr 👍 1
Vote D - Q: Can I use Amazon ElastiCache for Memcached with an AWS persistent data store such as Amazon RDS or Amazon DynamoDB? Yes, Amazon ElastiCache is an ideal front-end for data stores like Amazon RDS or Amazon DynamoDB, providing a high-performance middle tier for applications with extremely high request rates and/or low latency requirements. https://aws.amazon.com/elasticache/faqs/?nc1=h_ls
darn 👍 4 Selected: A
its A, with Red and it noSQL, too much effort, not relational, wheres the HA ?
eboehm2 👍 2 Selected: A
Pretty sure the answer is b... they are trying to reduce reads, doesnt say anything about reduce reads from primary DB. Additionally, they already have multiple RDS deployed.
shinejh0528 👍 3 Selected: A
no. This answer must be A. read replica.
Shely 👍 4
Answer 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.
Shely 👍 1
Answer A
ErfanKh 👍 4 Selected: A
I believe A as well, and ChatGPT agrees
channn 👍 32 Selected: A
A 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
pentium75 👍 8
Why "only reduce the number of DB reads"? This is exactly what is asked. Elasticache for Redis can be HA (contrary to Elasticache for Memcached).
jdr75 👍 6 Selected: A
It 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.
datz 👍 4 Selected: A
Answer = 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.
Rekhaachu 👍 1
Chargpt also choosing A.
k33 👍 1 Selected: B
Answer : B
frenzoid 👍 3
A. ElasticCache would be a good solution, if it wasn't that it mentios Redis, and Redis is not Relational. So it can't be applied to RDS Databases.
volkan4242 👍 4
A. 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
Steve_4542636 👍 1 Selected: B
Caching will reduce database reads
Ja13 👍 2 Selected: B
Asks to reduce the number of reads, not to improve the performance, so elasticache is the option
LoXoL 👍 3
Right here: Redis has Multi AZ with Auto-Failover (in addition it got Read Replicas for HA)
Mia2009687 👍 1
They run multiple databases
mandragon 👍 5
Elasticache 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
ruqui 👍 13
A can't be an answer because the requirement is"reduce the number of database reads"
Yelizaveta 👍 3 Selected: B
"A solutions architect must reduce the number of database reads while ensuring high availability."!!!!
UnluckyDucky 👍 4 Selected: B
The 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.
bdp123 👍 1 Selected: B
Can be used with RDS will reduce reads and has HA https://aws.amazon.com/elasticache/redis/
CaoMengde09 👍 3
Elasticache is useful when all users are accessing the same content of the database. So to improve reads we cache that common accessed content in Elasticache. At the end Elasticache is not a durable storage it's IN-MEMORY yes guarantee high Available YES but not a durable storage as the RDS REPLICA. So A is the most optimal solution from Performance / High Availibility (Cost also even if it's not a criteria for the question)
LuckyAro 👍 2
Amazon RDS Read Replicas provide enhanced performance and durability for Amazon RDS database (DB) instances. They make it easy to elastically scale out beyond the capacity constraints of a single DB instance for read-heavy database workloads. You can create one or more replicas of a given source DB Instance and serve high-volume application read traffic from multiple copies of your data, thereby increasing aggregate read throughput. Read replicas can also be promoted when needed to become standalone DB instances. Read replicas are available in Amazon RDS for MySQL, MariaDB, PostgreSQL, Oracle, and SQL Server as well as Amazon Aurora.
aakashkumar1999 👍 2 Selected: A
RDS reads means Read Replicas
LuckyAro 👍 3 Selected: A
Makes more sense
LuckyAro 👍 2
Amazon ElastiCache for Redis is a blazing fast in-memory data store that provides sub-millisecond latency to power internet-scale real-time applications. Built on open-source Redis and compatible with the Redis APIs, ElastiCache for Redis works with your Redis clients and uses the open Redis data format to store your data. Your self-managed Redis applications can work seamlessly with ElastiCache for Redis without any code changes. ElastiCache for Redis combines the speed, simplicity, and versatility of open-source Redis with manageability, security, and scalability from Amazon to power the most demanding real-time applications in Gaming, Ad-Tech, E-Commerce, Healthcare, Financial Services, and IoT.
uchiken 👍 3 Selected: A
My answer is A!!
mhmt4438 👍 2 Selected: A
Definitely A
devonwho 👍 2 Selected: B
https://aws.amazon.com/getting-started/hands-on/boosting-mysql-database-performance-with-amazon-elasticache-for-redis/
Joxtat 👍 1 Selected: B
https://amangoeliitb.medium.com/improving-database-performance-with-redis-dbd38fdf3cb
spilyi 👍 1
IF the answer is B, why D is not the possible answer? From the question, to reduce 'high number of reads on the databases' seems like D (Memcached) is more simple way to apply compare to B (Redis). I agree all the comments that 'read-replica' doesn't reduce reads on 'database' but from the selection I don't get why D (Memcached) is eliminated from the option.
MssP 👍 1
Memcached is a very limited in comparison with Redis. Look at the sentence "The application consists of a backend with multiple Amazon RDS databases" so you should think on advanced and complex data structures and queries so -> Redis.
kerl 👍 1
Answer:A, "Ensure High Availability" <--this is the keyword
JohnnyBG 👍 2
you miss the reduce read keyword ! Answer is B
owlminus 👍 2 Selected: A
It's A-- question states RDS; Redis is not apart of RDS
LuckyAro 👍 3 Selected: A
Amazon RDS read replicas
DavidNamy 👍 3 Selected: A
A. Add Amazon RDS read replicas. Read replicas in RDS allow to offload read traffic from the primary RDS instance, decreasing the number of reads on the primary instance, thus reduce the load and provide high availability by allowing you to promote a read replica to be a primary instance in the event of a failure.
Joxtat 👍 1
The answer is B. https://amangoeliitb.medium.com/improving-database-performance-with-redis-dbd38fdf3cb
Zerotn3 👍 2 Selected: B
reduce the number of database reads while ensuring high availability.
bamishr 👍 2 Selected: A
A. Add Amazon RDS read replicas.
theonlyprince 👍 7
Adding 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.
Mimikabs 👍 3 Selected: B
The question is asking about reducing the number of DB reads. I think that is a use case for Elasticache as that reduces DB reads. Read replicas will not reduce the number of DB reads. It will just move the reads from the main DB to the replica
muhtoy 👍 5 Selected: A
the 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.
CaoMengde09 👍 1
Coudn't agree more. It seems the Redis people are more focused on High Availability / Performance and forgetting the durability of storage. In General IN-MEMORY storages are not durable in storage
JayBee65 👍 1
But B does support HA: Amazon ElastiCache for Redis supports both Redis cluster and non-cluster modes and provides high availability via support for automatic failover by detecting primary node failures and promoting a replica to be primary with minimal impact.
PassNow1234 👍 4 Selected: A
A. 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.
berks 👍 2 Selected: A
I choose A
techhb 👍 1 Selected: B
must reduce the number of database reads, hence elastic cache.
Buruguduystunstugudunstuy 👍 4 Selected: A
A. 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.
Buruguduystunstugudunstuy 👍 1
Amazon ElastiCache for Redis is an in-memory data store that can be used to improve the performance of applications by caching frequently accessed data. Amazon Route 53 is a DNS service that can be used to route traffic to a variety of resources, including Amazon EC2 instances, Amazon S3 buckets, and other resources. Amazon ElastiCache for Memcached is an in-memory data store that can be used to improve the performance of applications by caching frequently accessed data.
turalmth 👍 3
Correct answer is B, because: A solutions architect must reduce the number of database reads while ensuring high availability. Redis also support high availability.
Mahakali 👍 1
Read replicas also increases availability, so option A matches the requirement
career360guru 👍 3 Selected: A
A is better option. B can reduce the number of reads but it is more useful when you want to reduce both read and write latency to RDS.
bammy 👍 1
The answer is A
romko 👍 2 Selected: B
Task is to "reduce the number of database reads" not mentioned reduce master database reads, so only caching can help to reduce DB reads, and Redis is perfect fit
nexus2020 👍 2 Selected: B
Reduce the number of read (B), not to increase the DB performance (A). So B
KADSM 👍 1
Ans A - More no of reads scenario, by having more replicas - availability also can go high due to multiple copies of data.
Marge_Simpson 👍 3 Selected: A
All the Pro-B-ers did not provide sufficient evidence to convince me it was B. If I see RDS + reduce read workloads or read heavy in a question, I think the answer will safely always be RDS read replicas.
Shasha1 👍 2
A solution is to add Amazon RDS read replicas because this will reduce the number of database reads by allowing the application to read data from the replicas instead of the primary database. Answer B is not correct because using Amazon ElastiCache for Redis would not necessarily reduce the number of database reads. ElastiCache is a managed in-memory cache that can be used to store and retrieve data, but it is not directly connected to the RDS databases and would not reduce the number of reads on the databases.
JayBee65 👍 1
A does not in any way reduce database reads - you state yourself that it will simply "allowing the application to read data from the replicas instead of the primary database". The same reads will happen, just somewhere else - so this does not meet the requirements of the Q. Amazon ElastiCache for Redis works as an in-memory data store to support the most demanding applications requiring sub-millisecond response times...Redis is a widely adopted in-memory data store for use as a database, cache, message broker, queue, session store, and leaderboard B Acts as a cache, which is designed to reduce reads. It also supports HA, so meets the Q requirements.
Sahilbhai 👍 2 Selected: A
answer should be A
stepman 👍 1
Sounds like B after reading this https://aws.amazon.com/blogs/database/configuring-amazon-elasticache-for-redis-for-higher-availability/
drake2020 👍 1
Ans is A because : Amazon RDS Read Replicas provide enhanced performance and durability for Amazon RDS database (DB) instances. They make it easy to elastically scale out beyond the capacity constraints of a single DB instance for read-heavy database workloads.
JayBee65 👍 1
The Q does not ask for that.
kmliuy73 👍 1
must reduce the number of database reads !!!
dcyberguy 👍 3 Selected: A
The answer is A Amazon RDS Read Replica provides enhance performances and durability for Amazon RDS database instances. They make it easy to elastically scale out beyond the capacity constraints of a single DB instance for READ-HEAVY DATABASE. Answer is A.
Mee6 👍 4 Selected: B
B because it's asking to "REDUCE READS" which can be accomplished with caching.
jambajuice 👍 1 Selected: B
reduce the DB read
Kapello10 👍 2
A> Read replicas
leonnnn 👍 49 Selected: B
Use ElastiCache to reduce reading and choose redis to ensure high availability.
JoeGuan 👍 7
Caching 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.
Lalo 👍 26
Where is the high availability when the database fails and the cache time runs out? The answer is a.

Comments & Corrections

No comments yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

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

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?

Read replicas only shift queries away from the primary instance; the application still issues the same total number of database reads, so overall read volume on the database tier is unchanged.

Why is ElastiCache for Memcached rejected instead of Redis?

Memcached has no replication or automatic failover, so it cannot satisfy the high-availability requirement. Redis supports replication groups with multi-AZ replicas and failover.

More SAA-C03 FAQ →

Related Analysis

Practice All SAA-C03 Questions

Access 120 questions with complete answers and detailed explanations.

View Full SAA-C03 Practice Test →

← Back to SAA-C03 Study Guide