
Ultimate access to all questions.
Answer-first summary for fast verification
Answer: Use Amazon Kinesis Data Streams to ingest the data. Process the data using AWS Lambda functions.
## Explanation **Correct Answer: A** **Why Option A is correct:** 1. **Amazon Kinesis Data Streams** is specifically designed for real-time data ingestion and can handle high-volume, streaming data with automatic scaling capabilities. 2. **AWS Lambda** provides serverless compute that automatically scales with the incoming data volume, eliminating the need to manage EC2 instances and their scaling limitations. 3. This architecture decouples data ingestion from processing, allowing the system to handle spikes in data volume without service interruptions. 4. Kinesis buffers the incoming data, preventing data loss during processing spikes, while Lambda automatically scales to process the data. **Why other options are incorrect:** **Option B:** Using API Gateway with quota limits would actually restrict the vendor's ability to send data during spikes, which is the opposite of what's needed. The problem is insufficient compute capacity, not too much data from the vendor. **Option C:** While SNS can handle message ingestion and Auto Scaling can help with compute capacity, this approach still relies on EC2 instances which have scaling limitations and slower response times compared to serverless solutions. The EC2 instances would still need to scale up/down, which takes time and may not keep up with rapid spikes. **Option D:** Containerizing the application and using ECS with EC2 launch type still relies on EC2 instances that need to scale. While this improves deployment flexibility, it doesn't fundamentally solve the scaling latency issue that serverless solutions address. **Key AWS Services Concepts:** - **Kinesis Data Streams**: Real-time data streaming service that can ingest and buffer high-volume data - **AWS Lambda**: Serverless compute that automatically scales with workload - **Auto Scaling**: Takes time to provision new instances (minutes), while Lambda scales in milliseconds - **503 Service Unavailable Errors**: Typically indicate the server is overloaded and cannot handle requests This solution provides a fully managed, auto-scaling architecture that can handle variable workloads without manual intervention.
Author: LeetQuiz Editorial Team
No comments yet.
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.