Welcome to ExamTopics
ExamTopics Logo
- Expert Verified, Online, Free.
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 (?) , you can switch to a simple comment.
Switch to a voting comment New
brushek
Highly Voted 2 years, 1 month 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 54 times
SaurabhTiwari1
11 months, 1 week 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 33 times
...
lofzee
5 months, 3 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 6 times
...
PassNow1234
1 year, 11 months ago
This is MySQL Database. RDS proxy = no no
upvoted 5 times
Robrobtutu
1 year, 7 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
11 months ago
But still RDS proxy won't help because during upgrades there is no database that it could proxy to.
upvoted 4 times
...
...
...
attila9778
1 year, 12 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, 1 month 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 29 times
gcmrjbr
1 year, 12 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 7 times
...
JayBee65
1 year, 11 months ago
It does, according to that link
upvoted 1 times
...
adeyinkaamole
1 year, 2 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 1 times
adeyinkaamole
1 year, 2 months ago
I meant the answer answer is A
upvoted 1 times
...
...
tinyfoot
2 years 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, 7 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, 6 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
...
...
...
...
jayessh
Most Recent 1 week, 2 days 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
1 month ago
Selected Answer: A
A for sure
upvoted 2 times
...
lixep
1 month, 2 weeks ago
Selected Answer: D
It's not a failover situation, it's just temporarily unavailable.
upvoted 1 times
...
PaulGa
2 months 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 2 times
...
rpmaws
2 months, 3 weeks ago
Selected Answer: D
A is incorrect
upvoted 1 times
...
d7d08dc
3 months 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
4 months 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
4 months 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 4 times
...
Duckydoo
5 months, 1 week 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
7 months 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
7 months, 1 week ago
Selected Answer: D
d is the answer
upvoted 2 times
...
ad11934
7 months, 1 week ago
Originally I felt option A is correct but looks like D is correct since even though rds proxy can support aurora db and minor db upgrades, the question mentions the db upgrades which could be major or minor in which case rds proxy may not be right.
upvoted 2 times
...
Uzbekistan
8 months ago
Selected Answer: D
Amazon SQS FIFO Queue: Amazon SQS FIFO (First-In-First-Out) queues provide exactly-once processing, ensuring that messages are processed in the order they are received and are not duplicated. This ensures the reliability of message delivery, crucial for preserving customer data. Lambda Function to Process Queue: Create a new Lambda function that regularly polls the SQS FIFO queue for messages containing customer data. Lambda can be configured to trigger based on a schedule or on demand. This function will retrieve messages from the queue and process them, storing the customer data in the database.
upvoted 3 times
...
CloudLearner01
8 months, 3 weeks ago
RDS proxy is correct Many applications, including those built on modern serverless architectures, can have a large number of open connections to the database server and may open and close database connections at a high rate, exhausting database memory and compute resources. Amazon RDS Proxy allows applications to pool and share connections established with the database, improving database efficiency and application scalability. With RDS Proxy, failover times for Aurora and RDS databases are reduced by up to 66% and database credentials, authentication, and access can be managed through integration with AWS Secrets Manager and AWS Identity and Access Management (IAM).
upvoted 1 times
mehmehmeh
6 months, 2 weeks ago
What EVERYONE is failing to remember is that when a database is doing an upgrade that ALL instances of the database are offline, whether multi-AZ or read replicas or whatever...these are not 'open' connections, they are failed connections. Where, exactly, would RDS Proxy be proxying to?
upvoted 2 times
...
...
Ikki77
9 months ago
Selected Answer: D
This option introduces a decoupling mechanism using SQS, allowing the Lambda functions to push customer data to a queue during database upgrades. Another Lambda function can then process the queue and store the customer data in the database. This helps to ensure that customer data is not lost during database upgrades, providing a reliable and asynchronous approach to handle such scenarios.
upvoted 3 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 ...