AWS Certified Solutions Architect - Associate / Question #1222 of 1019

Question #1222

A media company allows users to upload videos through a web application hosted on Amazon EC2 instances. The upload requests are sent to an Amazon Simple Queue Service (Amazon SQS) queue via the web app. A separate application running on EC2 instances processes these uploads, generates video thumbnails, and sends confirmation emails to users. After processing, the application stores video metadata in an Amazon DynamoDB table. As the company grows, users report increasing delays in receiving their confirmation emails and thumbnails. What should a solutions architect recommend to resolve this issue?

A

Deploy a DynamoDB Accelerator (DAX) cluster to cache frequently accessed metadata from the DynamoDB table.

B

Implement an Amazon API Gateway API to throttle and manage incoming upload requests to the web application.

C

Use Amazon CloudFront to distribute the video thumbnails and reduce latency for users.

D

Create an Auto Scaling group for the processing application. Configure scaling policies based on the SQS queue depth to handle increased load.

Explanation

The delays occur because the processing application cannot keep up with the growing volume of upload requests in the SQS queue. Option D resolves this by implementing Auto Scaling for the processing EC2 instances, scaling them based on the queue depth. This ensures more instances are added when the queue grows, reducing processing time and delays.

Other options are incorrect because:
- A: DAX caches DynamoDB reads, but the bottleneck is in processing, not metadata retrieval.
- B: API Gateway throttling manages incoming requests but does not address the backlog in processing.
- C: CloudFront reduces thumbnail delivery latency but does not speed up thumbnail generation or email confirmation processes.

Key Takeaway: Use Auto Scaling with SQS queue depth metrics to dynamically scale workers for message processing, ensuring efficient handling of variable workloads.

Answer

The correct answer is: D