Q19 — AWS SAA-C03 Ch.10
Question 19 of 100 | ← Chapter 10
Q619. 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 Iimit 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. Use Amazon Kinesis Data Streams to ingest the data.Process the data using AWS Lambda functions.
Explanation
To provide a more scalable solution for the application that is experiencing 503 Service Unavailable errors during spikes in data volume, a solutions architect should recommend the following design:A. Use Amazon Kinesis Data Streams to ingest the data. Process the data using AWS Lambda functions. A. Using Amazon Kinesis Data Streams to ingest the data and processing it with AWS Lambda functions can provide scalability and handle near-real-time data processing. Kinesis Data Streams is a scalable and durable streaming service that can handle high-volume data ingestion. By configuring the application to receive data through Kinesis Data Streams, it can handle the spikes in data volume without reaching the maximum compute capacity of the EC2 instances.AWS Lambda functions can be used to process the data from Kinesis Data Streams in a serverless manner. Lambda functions can automatically scale to handle the incoming data load, and they can be triggered in near-real-time as data is received. The processed data can then be stored for further analysis.Option B is not the best choice:B. Using Amazon API Gateway on top of the existing application and creating a usage plan with a quota limit for the third-party vendor does not directly address the issue of scalability and handling spikes in data volume. It helps in controlling and managing API usage but does not provide a solution for increasing compute capacity to process the incoming data.Option C is not the best choice either:C. Using Amazon Simple Notification Service (Amazon SNS) to ingest the data and putting the EC2 instances in an Auto Scaling group behind an Application Load Balancer does not provide a direct solution for handling the increased data volume and scaling the compute capacity. SNS is a messaging service and may not be the most suitable choice for receiving and processing near-real-time data.Option D is not the best choice either:D. While repackaging the application as a container and deploying it using Amazon Elastic Container Service (Amazon ECS) with the EC2 launch type and an Auto Scaling group can provide scalability, it may introduce unnecessary complexity if the application can be efficiently processed using serverless functions like AWS Lambda. Additionally, the question does not mention any specific requirement for containerization.Therefore, the most appropriate design for a more scalable solution in this scenario is to use Amazon Kinesis Data Streams to ingest the data and process it using AWS Lambda functions (option A).