exam questions

Exam AWS Certified Solutions Architect - Associate SAA-C03 All Questions

View all questions & answers for the AWS Certified Solutions Architect - Associate SAA-C03 exam

Exam AWS Certified Solutions Architect - Associate SAA-C03 topic 1 question 87 discussion

A company hosts an application on AWS Lambda functions that are invoked by an Amazon API Gateway API. The Lambda functions save customer data to an Amazon Aurora MySQL database. Whenever the company upgrades the database, the Lambda functions fail to establish database connections until the upgrade is complete. The result is that customer data is not recorded for some of the event.
A solutions architect needs to design a solution that stores customer data that is created during database upgrades.
Which solution will meet these requirements?

  • A. Provision an Amazon RDS proxy to sit between the Lambda functions and the database. Configure the Lambda functions to connect to the RDS proxy.
  • B. Increase the run time of the Lambda functions to the maximum. Create a retry mechanism in the code that stores the customer data in the database.
  • C. Persist the customer data to Lambda local storage. Configure new Lambda functions to scan the local storage to save the customer data to the database.
  • D. Store the customer data in an Amazon Simple Queue Service (Amazon SQS) FIFO queue. Create a new Lambda function that polls the queue and stores the customer data in the database.
Show Suggested Answer Hide Answer
Suggested Answer: D 🗳️

Comments

Chosen Answer:
This is a voting comment (?). It is better to Upvote an existing comment if you don't have anything to add.
Switch to a voting comment New
brushek
Highly Voted 2 years, 3 months ago
Selected Answer: A
https://aws.amazon.com/rds/proxy/ RDS Proxy minimizes application disruption from outages affecting the availability of your database by automatically connecting to a new database instance while preserving application connections. When failovers occur, RDS Proxy routes requests directly to the new database instance. This reduces failover times for Aurora and RDS databases by up to 66%.
upvoted 55 times
SaurabhTiwari1
1 year, 1 month ago
The original question was about handling a situation where the database is unavailable due to an upgrade, not a failover situation. During a database upgrade, the database instance is not available, and RDS Proxy would not be able to connect to a new database instance because there isn’t one. In this specific scenario, using Amazon SQS as described in option D provides a buffer for the incoming data during the period when the database is unavailable. This ensures that no data is lost, and it can be written to the database once the upgrade is complete.
upvoted 41 times
...
lofzee
8 months, 2 weeks ago
so many upvotes for an incorrect answer. the question doesnt mention having more than one DB so how does RDS proxy help here?
upvoted 9 times
...
PassNow1234
2 years, 1 month ago
This is MySQL Database. RDS proxy = no no
upvoted 5 times
Robrobtutu
1 year, 9 months ago
It literally says RDS Proxy is available for Aurora MySQL on the link in the comment you're replying to.
upvoted 6 times
pentium75
1 year, 1 month ago
But still RDS proxy won't help because during upgrades there is no database that it could proxy to.
upvoted 4 times
...
...
...
attila9778
2 years, 2 months ago
Aurora supports RDS proxy! https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy.html
upvoted 6 times
...
...
123jhl0
Highly Voted 2 years, 3 months ago
Selected Answer: D
The answer is D. RDS Proxy doesn't support Aurora DBs. See limitations at: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy.html
upvoted 33 times
gcmrjbr
2 years, 2 months ago
You can use RDS Proxy with Aurora Serverless v2 clusters but not with Aurora Serverless v1 clusters. https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy.html
upvoted 8 times
...
JayBee65
2 years, 1 month ago
It does, according to that link
upvoted 1 times
...
adeyinkaamole
1 year, 5 months ago
This not RDS supports Aurora mysl database. All the limitations listed in the link you posted above are not related to the question, hence the answer is B
upvoted 2 times
adeyinkaamole
1 year, 5 months ago
I meant the answer answer is A
upvoted 1 times
...
...
tinyfoot
2 years, 2 months ago
Actually RDS Proxy supports Aurora DBs running on PostgreSQL and MySQL. https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.Aurora_Fea_Regions_DB-eng.Feature.RDS_Proxy.html With RDS proxy, you only expose a single endpoint for request to hit and any failure of the primary DB in a Multi-AZ configuration is will be managed automatically by RDS Proxy to point to the new primary DB. Hence RDS proxy is the most efficient way of solving the issue as additional code change is required. https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy.howitworks.html
upvoted 11 times
Duke_YU
1 year, 10 months ago
The question doesn't say the RDS is deployed in a Mutli-AZ mode. which means RDS is not accessible during upgrade anyway. RDS proxy couldn't resolve the DB HA issue. The question is looking for a solution to store the data during DB upgrade. I don't know RDS proxy very well, but the RDS proxy introduction doesn't mention it has the capability of storing data. So, answer A couldn't store the data created during the DB upgrade. I'm assuming this is a bad question design. The expected answer is A, but the question designer missed some important information.
upvoted 6 times
rismail
1 year, 9 months ago
https://aws.amazon.com/rds/proxy/, if you go down the page, you will see that RDS is deployed in Multi-AZ (mazon RDS Proxy is highly available and deployed over multiple Availability Zones (AZs) to protect you from infrastructure failure. Each AZ runs on its own physically distinct, independent infrastructure and is engineered to be highly reliable. In the unlikely event of an infrastructure failure, the RDS Proxy endpoint remains online and consistent allowing your application to continue to run database operations.) from the link.
upvoted 1 times
...
...
...
...
Dharmarajan
Most Recent 1 week ago
Selected Answer: D
Initially I voted A. But thats wrong for one reason. RDS proxy wont help if there is no more than 1 database, but again - if there is just one database, the application is down during the downtime anyways, there is nothing that can be done. However, a SQS queue is a better option for the reason that the messages persist until marked processed. That guarantee alone is good enough to make D a better choice. But jeez! talk about trickery!! deceptively misleading!
upvoted 1 times
...
zdi561
1 week, 3 days ago
Selected Answer: A
D does not work. because the during db upgrade the connection is disrupted for a while during which the request in SQS will be consumed and lost
upvoted 1 times
...
zdi561
1 week, 3 days ago
Selected Answer: A
Google does aws aurora db proxy help db upgrade, proxy will cache transaction,
upvoted 1 times
...
AshishDhole
3 weeks, 1 day ago
Selected Answer: D
decouple the application so that we can save the failed transactions and then pull after the upgrades complete, so D should be the correct answer (SQS Queue)
upvoted 1 times
...
jayessh
2 months, 3 weeks ago
Selected Answer: D
this is not failover situation so no need to use rds proxy. i dont remember rds proxy to hold data incase for db unavailability
upvoted 1 times
...
ChymKuBoy
3 months, 3 weeks ago
Selected Answer: A
A for sure
upvoted 2 times
...
lixep
4 months ago
Selected Answer: D
It's not a failover situation, it's just temporarily unavailable.
upvoted 1 times
...
PaulGa
4 months, 3 weeks ago
Selected Answer: D
Ans D - as excellently explained by SaurabhTiwari1 (9 mth ago) "The original question was about handling a situation where the database is unavailable due to an upgrade, not a failover situation. During a database upgrade, the database instance is not available, and RDS Proxy would not be able to connect to a new database instance because there isn’t one." In this specific scenario, using Amazon SQS as described in option D provides a buffer for the incoming data during the period when the database is unavailable. This ensures that no data is lost, and it can be written to the database once the upgrade is complete
upvoted 4 times
...
rpmaws
5 months, 2 weeks ago
Selected Answer: D
A is incorrect
upvoted 1 times
...
d7d08dc
5 months, 2 weeks ago
the answer is D: This solution ensures that customer data is not lost during database upgrades. The data is stored in the FIFO queue until the database is available again. The new Lambda function can then process the data from the queue and store it in the database. This design provides a buffer for the customer data and decouples the data ingestion from the data processing, increasing the resilience of the system during database upgrades.
upvoted 2 times
...
ChinthaGurumurthi
6 months, 2 weeks ago
Selected Answer: D
By using Amazon RDS Proxy, you can allow your applications to pool and share database connections to improve their ability to scale. RDS Proxy makes applications more resilient to database failures by automatically connecting to a standby DB instance while preserving application connections. Using RDS Proxy, you can handle unpredictable surges in database traffic. Otherwise, these surges might cause issues due to oversubscribing connections or new connections being created at a fast rate.
upvoted 2 times
...
jaradat02
6 months, 2 weeks ago
Selected Answer: D
D is the correct answer because it offers storage for the data while the database is updating, using SQS is better than using RDS proxy, because SQS is an independent service and it decouples the system, while RDS proxy might also face some trouble connecting to the database while it's updating.
upvoted 5 times
...
Duckydoo
7 months, 4 weeks ago
Selected Answer: D
My reasoning for selecting D and not A is because while RDS proxy can decouple the lambda->proxy and proxy-db connections, it cannot hold that beyond the lifetime of the lambda. If the DB upgrade lasts more than say 15 mins, the lambda will timeout and the data will be lost forever. The only way to be sure is to use an SQS queue with a retention time that is reasonably longer than the upgrade time, so if the lambda times out, the data will remain in the queue until it is successfully inserted into the DB later and then removed from the queue.
upvoted 6 times
...
Pr1est
9 months, 2 weeks ago
Selected Answer: A
RDS proxy can improve application availability in such a situation by waiting for the new database instance to be functional and maintaining any requests received from the application during this time. The end result is that the application is more resilient to issues with the underlying database. This will enable solution to hold data till the time DB comes back to normal.
upvoted 6 times
...
soufiyane
9 months, 4 weeks ago
Selected Answer: D
d is the answer
upvoted 2 times
...
Community vote distribution
A (35%)
C (25%)
B (20%)
Other
Most Voted
A voting comment increases the vote count for the chosen answer by one.

Upvoting a comment with a selected answer will also increase the vote count towards that answer by one. So if you see a comment that you already agree with, you can upvote it instead of posting a new comment.

SaveCancel
Loading ...
exam
Someone Bought Contributor Access for:
SY0-701
London, 1 minute ago