Welcome to ExamTopics
ExamTopics Logo
- Expert Verified, Online, Free.

Unlimited Access

Get Unlimited Contributor Access to the all ExamTopics Exams!
Take advantage of PDF Files for 1000+ Exams along with community discussions and pass IT Certification Exams Easily.

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: A 🗳️

Comments

Chosen Answer:
This is a voting comment (?) , you can switch to a simple comment.
Switch to a voting comment New
brushek
Highly Voted 1 year, 6 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 48 times
SaurabhTiwari1
4 months, 2 weeks 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 17 times
...
PassNow1234
1 year, 4 months ago
This is MySQL Database. RDS proxy = no no
upvoted 3 times
Robrobtutu
1 year ago
It literally says RDS Proxy is available for Aurora MySQL on the link in the comment you're replying to.
upvoted 5 times
pentium75
4 months, 1 week ago
But still RDS proxy won't help because during upgrades there is no database that it could proxy to.
upvoted 2 times
...
...
...
attila9778
1 year, 5 months ago
Aurora supports RDS proxy! https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy.html
upvoted 5 times
...
bgsanata
11 months, 3 weeks ago
This is incorrect as nowhere in the question is mentioned the RDS have more than 1 instance. So... when the instance is down for maintenance there is no second instance to which RDS Proxy can redirect the requests. The correct answer is D.
upvoted 30 times
Abdou1604
8 months, 3 weeks ago
rDS PROXY Supports RDS (MySQL, PostgreSQL, MariaDB, MS SQL Server) and Aurora (MySQL, PostgreSQL)
upvoted 2 times
...
...
...
123jhl0
Highly Voted 1 year, 6 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 25 times
JayBee65
1 year, 4 months ago
It does, according to that link
upvoted 1 times
...
gcmrjbr
1 year, 5 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 4 times
...
adeyinkaamole
8 months, 1 week 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
8 months, 1 week ago
I meant the answer answer is A
upvoted 1 times
...
...
tinyfoot
1 year, 5 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 10 times
Duke_YU
1 year, 1 month 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
11 months, 4 weeks 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
...
...
...
...
Pr1est
Most Recent 1 week, 4 days 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 2 times
...
soufiyane
3 weeks ago
Selected Answer: D
d is the answer
upvoted 1 times
...
ad11934
3 weeks, 1 day 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 1 times
...
Uzbekistan
1 month, 1 week 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 1 times
...
CloudLearner01
2 months 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
...
Ikki77
2 months, 1 week 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 2 times
...
thewalker
3 months, 1 week ago
Selected Answer: A
Option to have RDS Proxy is available, then why to go other routes ?
upvoted 1 times
thewalker
3 months, 1 week ago
From Amazon Q: RDS Proxy can be used with Amazon Aurora. Here are some key points about using RDS Proxy with Aurora: RDS Proxy supports connecting to Aurora MySQL and Aurora PostgreSQL databases. This allows applications to connect to Aurora clusters via the proxy. Using a proxy provides better scalability by allowing connections to be distributed among Aurora replica instances. It also improves availability since the proxy can direct connections to other Aurora replicas if the primary becomes unavailable. The Aurora database and RDS Proxy must be in the same VPC to allow connections. Your applications can be deployed in the same VPC or a different one, as long as they have network access to the proxy. Certain regions and Aurora engine versions support RDS Proxy based on the database engine. You can check the AWS documentation for the latest supported versions in each region.
upvoted 1 times
thewalker
3 months, 1 week ago
The database and proxy need appropriate security group rules and IAM permissions configured to allow connections. The RDS Proxy also requires a secret with database credentials stored in Secrets Manager. You would connect applications to the proxy endpoint rather than directly connecting to the Aurora endpoint. This allows the proxy to handle and load balance connections to the Aurora replicas. https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.Aurora_Fea_Regions_DB-eng.Feature.RDS_Proxy.html https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy-setup.html
upvoted 1 times
...
...
...
Charumathi
3 months, 1 week ago
Selected Answer: D
D is the correct answer, For failover we can use RDS proxy, here the database is upgrade, so there should be a SQS to store the customer data during upgrade, hence we go for option D. https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html
upvoted 1 times
...
awsgeek75
3 months, 2 weeks ago
Selected Answer: D
I originally voted A but now I believe it's D RDS Proxy needs something to pool connection against. If the Aurora DB is down the connection pools will not help as they are not connected to anything. SQS FIFO queue will act as a "queue" to store the data until the DB is back up. Having said all of that I think some critical context is missing from this question which is why there is so much confusion between A/D. Hopefully exam question will have more info.
upvoted 2 times
...
awsgeek75
4 months ago
Selected Answer: A
I originally would have gone with D but given this is AWS, I would focus on native AWS product based solution as sold by the "marketing" team. "A" will use RDS proxy which is a product suitable for Database failures or unavailability during upgrades. https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy.howitworks.html#rds-proxy-failover
upvoted 1 times
awsgeek75
3 months, 2 weeks ago
Ignore my answer, it has to be D.
upvoted 1 times
...
cheroh_tots
2 months, 2 weeks ago
Given the requirement to ensure customer data is not lost during database upgrades when Lambda functions fail to establish connections, the most appropriate solution is to decouple the Lambda functions from the database using a queueing mechanism. This way, the customer data can be temporarily stored and processed independently of the database availability. Option D, which suggests storing customer data in an Amazon SQS FIFO queue and creating a new Lambda function to poll the queue and store the data in the database, aligns with this requirement and is the recommended solution.
upvoted 1 times
...
...
kel2023
4 months ago
Selected Answer: D
AWS API Gateway has 29 seconds timeout. Please let me know who can finish database upgrade (and database backup prior upgrade) within 29 seconds then I will vote for A?
upvoted 1 times
...
DHADD003
4 months, 2 weeks ago
Selected Answer: A
`It's not D and here is why. As soon as the lambda function fails while using FIFO it will lose the the record it processed but didn't not save to the database. There is no retry with Lambda. Yes, FIFO will stop from sending further message but you will lose the last record that was sent to the Lambda function. D would be correct if a Dead Letter Queue was added as well.
upvoted 1 times
pentium75
4 months, 1 week ago
D is correct. If the Lambda function fails, it does not remove the message from the queue, thus it will be picked up again. A is nonsense because during database upgrades, there is no available database. RDS proxy helps to fail over, but there is nothing that you could fail over to.
upvoted 1 times
...
...
SaurabhTiwari1
4 months, 2 weeks ago
Selected Answer: D
D is correct
upvoted 2 times
...
ansagr
4 months, 3 weeks ago
Selected Answer: D
I would like to retract my previous answer. RDS Proxy helps with read scaling by efficiently distributing read queries among the available read replicas, but it doesn't handle writes during an interruption on the primary instance. When the primary instance is unavailable, write operations are impacted until the primary instance is restored. RDS Proxy primarily focuses on improving the scalability and availability of read-heavy database workloads.
upvoted 3 times
...
ansagr
4 months, 3 weeks ago
Selected Answer: A
Amazon RDS Proxy helps manage database connections, especially during maintenance events like upgrades. It maintains a pool of established connections, reducing the impact on your application during database upgrades. Configuring Lambda functions to connect to an RDS proxy can help maintain the continuity of storing customer data.
upvoted 1 times
pentium75
4 months, 1 week ago
But only if there is a second instance that you can fail over to.
upvoted 1 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 ...