Resilient Web Application Architecture with SQS and Auto Scaling

SAA-C03 By islever Editorial Last updated

Short answer

D Use an Application Load Balancer to manage web traffic. Use Amazon EC2 Auto Scaling groups to receive and process customer orders. Use Amazon Simple Queue Service (Amazon SQS) to store unprocessed orders. Use Amazon RDS with a Multi-AZ deployment to store processed customer orders.

Question

A company needs to design a resilient web application to process customer orders. The web application must automatically handle increases in web traffic and application usage without affecting the customer experience or losing customer orders. Which solution will meet these requirements?
  1. Use a NAT gateway to manage web traffic. Use Amazon EC2 Auto Scaling groups to receive, process, and store processed customer orders. Use an AWS Lambda function to capture and store unprocessed orders.
  2. Use a Network Load Balancer (NLB) to manage web traffic. Use an Application Load Balancer to receive customer orders from the NLUse Amazon Redshift with a Multi-AZ deployment to store unprocessed and processed customer orders.
  3. Use a Gateway Load Balancer (GWLB) to manage web traffic. Use Amazon Elastic Container Service (Amazon ECS) to receive and process customer orders. Use the GWLB to capture and store unprocessed orders. Use Amazon DynamoDB to store processed customer orders.
  4. Use an Application Load Balancer to manage web traffic. Use Amazon EC2 Auto Scaling groups to receive and process customer orders. Use Amazon Simple Queue Service (Amazon SQS) to store unprocessed orders. Use Amazon RDS with a Multi-AZ deployment to store processed customer orders. Correct Answer

Key Takeaways

The core concept tested is loose coupling via message queues; the common trap is selecting options that misuse networking components (like GWLB) or storage services (like Redshift) for application logic rather than their intended purposes.

This question addresses designing a scalable and decoupled architecture for order processing using AWS services. It establishes that combining an Application Load Balancer, EC2 Auto Scaling, Amazon SQS, and RDS Multi-AZ is the correct solution to handle traffic spikes and ensure data durability.

Common mistake: Candidates often overlook the role of SQS in buffering traffic, leading them to choose options where EC2 instances attempt direct synchronous processing, which fails to decouple the system during traffic spikes.

Expert Analysis

Why the Answer Is Correct

Option D correctly implements a resilient and scalable architecture by leveraging multiple AWS best practices. The Application Load Balancer (ALB) distributes incoming web traffic efficiently across targets. Amazon EC2 Auto Scaling groups dynamically adjust capacity based on load, ensuring the application handles increased traffic without manual intervention. Crucially, Amazon Simple Queue Service (SQS) acts as a buffer between the web layer and the processing layer, absorbing traffic spikes and preventing data loss if the processing tier is overwhelmed. Finally, Amazon RDS with Multi-AZ deployment provides high availability and fault tolerance for the database storing processed orders.

Why the Other Options Are Wrong

Option A suggests using NAT Gateway for web traffic management, which is incorrect as NAT Gateways are used for outbound internet access from private subnets, not inbound traffic distribution. It also proposes using Lambda for unprocessed orders, which doesn't fit the persistent queue model needed here. Option B misuses Network Load Balancer (NLB) primarily for HTTP/web traffic (though it can, ALB is better for Layer 7) and incorrectly uses Amazon Redshift, a data warehousing service, for storing transactional customer orders. Option C uses Gateway Load Balancer (GWLB), which is designed for inserting third-party virtual appliances, not general web traffic. It also incorrectly assigns GWLB the role of capturing/storing orders.

Community Comment Notes

The community consensus strongly supports Option D as the only viable architecture. Users like Cpso noted that while D is right, a clear explanation would benefit from visualizing two groups: one for accepting orders into the queue and another for processing them. Others simply confirmed D is 'perfect' or 'right', indicating broad agreement on the standard pattern.

Exam Strategy

When asked to design a resilient system, always look for decoupling mechanisms like SQS or SNS between compute layers. Ensure you select storage solutions appropriate for the data type (e.g., RDS for transactions, not Redshift) and include scaling components for compute resources.

Frequently Asked Questions

Why use SQS instead of just letting EC2 process directly?

SQS decouples the web tier from the processing tier, allowing the system to absorb traffic spikes without losing orders or crashing.

Why is RDS Multi-AZ preferred over single-instance DB?

Multi-AZ ensures high availability and automatic failover, meeting the requirement to not lose customer orders during failures.

More SAA-C03 FAQ →

Community Votes

D
100%

100% of anonymous learners picked answer D. Votes are pick records left by other test-takers — they are not the verified answer.

Discussion 3 contributions

Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.

From public community threads 3

  1. Cpso 👍 1 Answered D
    D is right. But explaining is unclear. should have 2 group of ec2. one for accept order to queue. another to process and store to DB.
  2. komorebi 👍 3 Answered D
    Answer is D
  3. pujithacg8 👍 2
    D is perfect

Reader comments & corrections

No reader corrections yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

Practice All SAA-C03 Questions

Access 120 questions with complete answers and detailed explanations.

View Full SAA-C03 Practice Test →

← Back to SAA-C03 Study Guide