AWS Certified Solutions Architect – Associate (SAA-C03) — Question 995
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?
Answer options
- 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.
Correct answer: A
Explanation
Using Amazon Kinesis Data Streams allows the application to buffer and ingest high-volume, near-real-time data streams without dropping requests, while AWS Lambda automatically scales to process the data as it arrives. Other options like adding API Gateway quota limits would throttle the vendor's data rather than scaling to ingest it. Solutions relying on EC2 Auto Scaling groups (with or without containers) may scale too slowly to handle sudden, sharp traffic spikes, resulting in continued 503 errors.