AWS Certified Solutions Architect – Professional — Question 766

A company hosts an image-processing service in the AWS Cloud. The company uses a custom on-premises application to call the service from its on-premises systems over an AWS Direct Connect connection. The application sends image-processing requests to software that is hosted on Amazon EC2 instances. The image data is embedded within the requests. The EC2 instances are in an Auto Scaling group and run behind a Network Load Balancer (NLB). The Auto Scaling group has a minimum capacity of two instances.

The company is receiving tens of thousands of image-processing requests at the same time each day and is experiencing errors. The processing of the requests is not time critical. For much of the day, the application sends no requests.

The company wants to improve the application's reliability and minimize the number of failed image-processing requests. The company also wants to reduce cost.

Which solution will meet these requirements with the LEAST operational overhead?

Answer options

Correct answer: B

Explanation

Decoupling the architecture using Amazon S3 for storage and Amazon SQS for queueing allows the system to handle massive spikes in traffic asynchronously without failing, which is ideal since the processing is not time-critical. Removing the NLB and scaling the EC2 instances down when the SQS queue is empty significantly reduces operational costs during idle hours. Other options, such as using SNS or direct NLB-to-Lambda integration, do not offer the buffering and load-leveling capabilities of SQS, making them prone to throttling and failures during peak times.