exam questions

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

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

Exam AWS Certified Solutions Architect - Associate SAA-C02 topic 1 question 144 discussion

A company has an application with a REST-based interface that allows data to be received in near-real time from a third-party vendor. Once received, the application processes and stores the data for further analysis. The application is running on Amazon EC2 instances.
The third-party vendor has received many 503 Service Unavailable Errors when sending data to the application. When the data volume spikes, the compute capacity reaches its maximum limit and the application is unable to process all requests.
Which design should a solutions architect recommend to provide a more scalable solution?

  • A. Use Amazon Kinesis Data Streams to ingest the data. Process the data using AWS Lambda functions.
  • B. Use Amazon API Gateway on top of the existing application. Create a usage plan with a quota limit for the third-party vendor.
  • C. Use Amazon Simple Notification Service (Amazon SNS) to ingest the data. Put the EC2 instances in an Auto Scaling group behind an Application Load Balancer.
  • D. Repackage the application as a container. Deploy the application using Amazon Elastic Container Service (Amazon ECS) using the EC2 launch type with an Auto Scaling group.
Show Suggested Answer Hide Answer
Suggested Answer: A 🗳️

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
Mahesh_11
Highly Voted 3 years, 8 months ago
Ans: A Kinesis data streams works well with AWS Lambda for processing. Kinesis streams for "data-ingestion". Real time data can be stored for 24hrs - 7 day period giving ample time for lambda to process there by reducing 503 errors that the vendor is receiving (Lambda can scale out) Lambda for "processing"
upvoted 71 times
mynk29
3 years, 6 months ago
You missed one critical piece: "proceses and stores the data for further analysis." Lamda will process it but where will it store it afterwards for further analysis? B seems more legit to me.
upvoted 2 times
gargaditya
3 years, 5 months ago
I dont think its to be viewed in that way, are EC2 then keeping data locally?
upvoted 2 times
gargaditya
3 years, 5 months ago
Kind of confused,perhaps B then!
upvoted 1 times
...
...
allanm
2 years, 9 months ago
B does not cover storage options. In fact, none of the options cover the storage options! Closest option here is to use Lambda with Kinesis.
upvoted 2 times
...
...
noahsark
3 years, 6 months ago
Q: How can I protect my backend systems and applications from traffic spikes? Amazon API Gateway provides throttling at multiple levels including global and by service call. Throttling limits can be set for standard rates and bursts. For example, API owners can set a rate limit of 1,000 requests per second for a specific method in their REST APIs, and also configure Amazon API Gateway to handle a burst of 2,000 requests per second for a few seconds. Amazon API Gateway tracks the number of requests per second. Any requests over the limit will receive a 429 HTTP response. The client SDKs (except Javascript) generated by Amazon API Gateway retry calls automatically when met with this response. Q: How does throttling help me? Throttling ensures that API traffic is controlled to help your backend services maintain performance and availability. https://aws.amazon.com/api-gateway/faqs/
upvoted 1 times
eBooKz
3 years ago
The point is a scalable solution not a throttling one. "Which design should a solutions architect recommend to provide a more scalable solution".
upvoted 1 times
...
...
...
Paitan
Highly Voted 3 years, 8 months ago
Kinesis with Lambda provides a scalable solution for real time data ingestion. So will go with option A. However option B also seems valid.
upvoted 25 times
noahsark
3 years, 6 months ago
yeah, B also seems valid, lets wait for other comments. An HTTP 503 status code (Service Unavailable) typically indicates a performance issue on the origin server. https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/http-503-service-unavailable.html API Gateway https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html
upvoted 1 times
noahsark
3 years, 6 months ago
Got confused. Question asked for a more scalable solution. Lambda is scalable.
upvoted 2 times
noahsark
3 years, 6 months ago
thinking of B again :( https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html
upvoted 1 times
...
...
...
kuman
3 years, 7 months ago
I am a bit torn Between A and D. Kinesis does not support REST API, and have to be used with API Gateway to do the trick. If API Gateway is used, no point to use Kinesis any more as Lambda works directly with API Gateway. For D, a load balancer is missing from the equation...
upvoted 8 times
...
lehoang15tuoi
3 years, 6 months ago
Option B is technically feasible but doesn't make a lot of sense. If your application can't serve requests, you should look at scaling your application (and charge more money) instead of imposing a quota onto your users. Think about it - if someone asks you why their requests are lost and your answer is "cos we don't have the capacity to serve all of it so we impose a limit now", how does that reflect on your company?
upvoted 3 times
noahsark
3 years, 6 months ago
if it doesn't make a lot of sense, then why AWS documents Throttle API requests for better throughput? i think because it is only a spike. you can find a similar question in Tutorials Dojo. https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html
upvoted 3 times
...
...
...
NSA_Poker
Most Recent 11 months, 2 weeks ago
Selected Answer: A
The application is running on EC2 instances, the scaling bottle-neck is here. Lambda (A) & ASG (D) would both help. Lambda auto-scales as needed, by an additional 500 instances per minute when traffic spikes. ASG scales by definition and seems like the obvious choice, especially on a test under a time crunch. There's nothing in the question that removes either from contention ie. time limit, operational overhead. Application allows data to be received in near-real time and it's not cutting it. A real-time solution like KDS would help. (D) seems a little incomplete without KDS or an ELB. I choose (A) in part bc of 'near-real time' in the question. It's like AWS would like us to know the difference in between KDS & KFH.
upvoted 1 times
...
Mia2009687
1 year, 10 months ago
Selected Answer: B
When the data volume spikes, the compute capacity reaches its maximum limit and the application is unable to process all requests. So need to use Amazon API Gateway to control the size
upvoted 1 times
...
Uzi_m
2 years, 3 months ago
A. Kinesis: to ingest Real time data Lambda: for processing.
upvoted 1 times
...
abzben
2 years, 5 months ago
Selected Answer: A
The keyword is "real time". Kinesis data streams are meant for real time data processing.
upvoted 1 times
...
Six_Fingered_Jose
2 years, 6 months ago
Selected Answer: A
answer is A because near-real time data ingestion = kinesis and more scalable option = lambda makes sense
upvoted 1 times
...
qax2022
2 years, 8 months ago
Selected Answer: A
A, lambba and kinesis for scalability.
upvoted 1 times
...
1sid
2 years, 8 months ago
I go with A because it the implemented system with use KDS to decouple the data thereby increasing processing speed and is then processed by lambda which serverless optimizes cost and scales automatically and resilient to failure
upvoted 1 times
...
jopeg
2 years, 8 months ago
Selected Answer: A
A it's the best choice here
upvoted 1 times
...
ChiefArch
2 years, 8 months ago
Selected Answer: B
I'm voting B, Lambda has no autoscaling as it's only scheduled or app controlled. API gateway is more than throttling, it can handle a massive load of simultaneous requests.
upvoted 1 times
...
hariti_crafting
2 years, 10 months ago
This question was in my exam , 22 june 2022
upvoted 2 times
KTrout
2 years, 10 months ago
hariti_crafting....what did you answer? I appreciate you stating which one's you have seen, but what were your answers in comparison to all of the others?
upvoted 2 times
...
...
Angrydove
2 years, 11 months ago
Both of A and C are the push type, which are not reliable(message losing can be occurred) if subscriber instances couldn't receive the message. So my Answer is D
upvoted 1 times
...
cutecolt
3 years ago
Selected Answer: B
REST should be wrapped on top of API gateway which is a managed service
upvoted 1 times
...
StudyBoye
3 years, 1 month ago
Selected Answer: A
Kinesis for ingestion and Lambda for processing. Great combo for the case
upvoted 4 times
...
awsnoobster
3 years, 2 months ago
Kinesis streams - Real time. A for me.
upvoted 2 times
...
DALERU
3 years, 2 months ago
it is true that near-real-time is pointing out "KDS", however, Does "A business has an application with a REST-based interface that enables near-real-time data retrieval from a third-party vendor." means they already have near-real-time function??? and the problem here is "When data volume increases, the compute capacity approaches its limit and the application becomes unable of processing all requests." this. For the last, the question is asking about "more scalability", not about near real time.
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 ...
exam
Someone Bought Contributor Access for:
SY0-701
London, 1 minute ago