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 328 discussion

A company is hosting a three-tier ecommerce application in the AWS Cloud. The company hosts the website on Amazon S3 and integrates the website with an API that handles sales requests. The company hosts the API on three Amazon EC2 instances behind an Application Load Balancer (ALB). The API consists of static and dynamic front-end content along with backend workers that process sales requests asynchronously.

The company is expecting a significant and sudden increase in the number of sales requests during events for the launch of new products.

What should a solutions architect recommend to ensure that all the requests are processed successfully?

  • A. Add an Amazon CloudFront distribution for the dynamic content. Increase the number of EC2 instances to handle the increase in traffic.
  • B. Add an Amazon CloudFront distribution for the static content. Place the EC2 instances in an Auto Scaling group to launch new instances based on network traffic.
  • C. Add an Amazon CloudFront distribution for the dynamic content. Add an Amazon ElastiCache instance in front of the ALB to reduce traffic for the API to handle.
  • D. Add an Amazon CloudFront distribution for the static content. Add an Amazon Simple Queue Service (Amazon SQS) queue to receive requests from the website for later processing by the EC2 instances.
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
Steve_4542636
Highly Voted 1 year, 4 months ago
Selected Answer: B
The auto-scaling would increase the rate at which sales requests are "processed", whereas a SQS will ensure messages don't get lost. If you were at a fast food restaurant with a long line with 3 cash registers, would you want more cash registers or longer ropes to handle longer lines? Same concept here.
upvoted 20 times
Chef_couincouin
8 months ago
ensure that all the requests are processed successfully? doesn't mean more quickly
upvoted 2 times
...
lizzard812
1 year, 3 months ago
Hell true: I'd rather combine the both options: a SQS + auto-scaled bound to the length of the queue.
upvoted 8 times
...
joechen2023
1 year ago
As an architecture, it is not possible to add more backend workers (it is part of the HR and boss's job, not for architecture design the solution). So when the demand surge, the only correct choice is to buffer them using SQS so that workers can take their time to process it successfully
upvoted 1 times
...
rushi0611
1 year, 2 months ago
"ensure that all the requests are processed successfully?" we want to ensure success not the speed, even in the auto-scaling, there is the chance for the failure of the request but not in SQS- if it is failed in sqs it is sent back to the queue again and new consumer will pick the request.
upvoted 16 times
...
...
Abhineet9148232
Highly Voted 1 year, 2 months ago
Selected Answer: D
B doesn't fit because Auto Scaling alone does not guarantee that all requests will be processed successfully, which the question clearly asks for. D ensures that all messages are processed.
upvoted 15 times
...
Adinas_
Most Recent 4 months ago
Selected Answer: B
Important question to answer D. Can you connect the website with SQS directly? How do you control access to who can put messages to SQS? I have never seen such a situation it has to be at least behind API gateway. So that conclusion brings me to answer B, application also can process async everything without SQS.
upvoted 1 times
...
awsgeek75
5 months, 2 weeks ago
Selected Answer: D
I chose D because I love SQS! These questions are hammering SQS in every solution as a "protagonist" that saves the day. AC are clearly useless B can work but D is better because of SQS being better than EC2 scaling. The other part is that backend workers process the request asynchronously therefore a queue is better.
upvoted 3 times
...
awsgeek75
6 months ago
Selected Answer: D
A and C don't solve anything so ignore them. Between B and D, D guarantees the scaling via SQS and order processing. B can also do that but it is not guaranteed that EC2 scaling will work to process the order. As usual, I suspect that this "brain dump" may be missing critical wording to differentiate between the options so read carefully in the exam.
upvoted 3 times
...
pentium75
6 months, 1 week ago
Selected Answer: D
There are two components that we need * Frontend: Hosted on S3, performance can be increased with CloudFront * Backend: There's no reason to process all the orders instantly, so we should decouple the processing from the API which we do with SQS Thus D, CloudFront + SQS
upvoted 6 times
pentium75
6 months, 1 week ago
And as others said, B might speed up the processing or reduce the number of lost orders, but we need to make sure that "ALL requests are processed successfully", NOT that "less requests are lost".
upvoted 2 times
...
...
Marco_St
6 months, 4 weeks ago
Selected Answer: D
I picked B before I read D option. Read the question again, it concerns:asynchronous processing of sales requests, Option D seems to align more closely with the requirements. So the requirement is ensuring all requests are processed successfully which means no request would be missed. So D is better option
upvoted 3 times
...
wsdasdasdqwdaw
8 months, 3 weeks ago
Amazon SQS will make sure that the requests are stored and didn't get lost. After that the workers asynchronously will process the requests. I would go for D
upvoted 3 times
...
TariqKipkemei
8 months, 4 weeks ago
Technically both option B and D would work. But, there's a need to process requests asynchronously, hence decoupling, hence Amazon SQS. I will settle with option D.
upvoted 1 times
...
Guru4Cloud
10 months ago
Selected Answer: D
D is correct.
upvoted 2 times
...
antropaws
1 year, 1 month ago
Selected Answer: D
D is correct.
upvoted 1 times
...
kruasan
1 year, 2 months ago
Selected Answer: D
An SQS queue acts as a buffer between the frontend (website) and backend (API). Web requests can dump messages into the queue at a high throughput, then the queue handles delivering those messages to the API at a controlled rate that it can sustain. This prevents the API from being overwhelmed.
upvoted 2 times
kruasan
1 year, 2 months ago
Options A and B would help by scaling out more instances, however, this may not scale quickly enough and still risks overwhelming the API. Caching parts of the dynamic content (option C) may help but does not provide the buffering mechanism that a queue does.
upvoted 1 times
...
...
seifshendy99
1 year, 2 months ago
Selected Answer: D
D make sens
upvoted 1 times
...
kraken21
1 year, 3 months ago
Selected Answer: D
D makes more sense
upvoted 1 times
...
kraken21
1 year, 3 months ago
There is no clarity on what the asynchronous process is but D makes more sense if we want to process all requests successfully. The way the question is worded it looks like the msgs->SQS>ELB/Ec2. This ensures that the messages are processed but may be delayed as the load increases.
upvoted 1 times
...
channn
1 year, 3 months ago
Selected Answer: D
although i agree with B for better performance. but i choose 'D' as question request to ensure that all the requests are processed successfully.
upvoted 2 times
...
klayytech
1 year, 3 months ago
To ensure that all the requests are processed successfully, I would recommend adding an Amazon CloudFront distribution for the static content and an Amazon CloudFront distribution for the dynamic content. This will help to reduce the load on the API and improve its performance. You can also place the EC2 instances in an Auto Scaling group to launch new instances based on network traffic. This will help to ensure that you have enough capacity to handle the increase in traffic during events for the launch of new products.
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 ...
ex Want to SAVE BIG on Certification Exam Prep?
close
ex Unlock All Exams with ExamTopics Pro 75% Off
  • arrow Choose From 1000+ Exams
  • arrow Access to 10 Exams per Month
  • arrow PDF Format Available
  • arrow Inline Discussions
  • arrow No Captcha/Robot Checks
Limited Time Offer
Ends in