
Answer-first summary for fast verification
Answer: Use Amazon API Gateway and direct transactions to the AWS Lambda functions as the application layer. Use Amazon Simple Queue Service (Amazon SQS) as the communication layer between application services.
## Explanation **Correct Answer: A** **Why Option A is correct:** 1. **Modernization**: Using API Gateway and Lambda functions represents a modern serverless architecture that eliminates the need to manage servers. 2. **Operational Efficiency**: Lambda automatically scales based on incoming requests, making it highly operationally efficient - no manual scaling required. 3. **Resilience**: SQS provides a reliable, durable queue for communication between services, preventing transaction drops when one tier becomes overloaded. 4. **Decoupling**: The solution decouples the application tiers, allowing them to scale independently. 5. **Performance Improvement**: Lambda functions can handle varying loads without dropping transactions, and SQS ensures messages are not lost. **Why Option B is incorrect:** - This is a reactive approach that doesn't modernize the application. - Simply increasing EC2 instance sizes doesn't address the core issue of transactions being dropped during overload. - It's not operationally efficient as it requires manual intervention and over-provisioning. **Why Option C is incorrect:** - SNS is a pub/sub service, not a queueing service. It doesn't provide message persistence or guaranteed delivery when consumers are overloaded. - SNS doesn't buffer messages like SQS, so transactions could still be dropped. - Monitoring SNS queue length is not a standard practice as SNS doesn't have queues in the same way SQS does. **Why Option D is incorrect:** - While SQS is appropriate for message buffering, using EC2 instances with Auto Scaling is less operationally efficient than serverless Lambda functions. - The solution mentions scaling up "when communication failures are detected" which is reactive rather than proactive. - EC2 instances require more operational overhead (patching, maintenance, scaling configuration) compared to serverless. **Key AWS Services:** - **Amazon API Gateway**: Creates RESTful APIs that can trigger Lambda functions - **AWS Lambda**: Serverless compute that automatically scales with load - **Amazon SQS**: Fully managed message queuing service that decouples application components and ensures messages aren't lost This solution addresses all requirements: improves performance, prevents transaction drops during overload, modernizes the application, and is the most operationally efficient through serverless architecture.
Author: LeetQuiz Editorial Team
Ultimate access to all questions.
No comments yet.
A company wants to move a multi-tiered application from on premises to the AWS Cloud to improve the application's performance. The application consists of application tiers that communicate with each other by way of RESTful services. Transactions are dropped when one tier becomes overloaded. A solutions architect must design a solution that resolves these issues and modernizes the application.
Which solution meets these requirements and is the MOST operationally efficient?
A
Use Amazon API Gateway and direct transactions to the AWS Lambda functions as the application layer. Use Amazon Simple Queue Service (Amazon SQS) as the communication layer between application services.
B
Use Amazon CloudWatch metrics to analyze the application performance history to determine the servers' peak utilization during the performance failures. Increase the size of the application server's Amazon EC2 instances to meet the peak requirements.
C
Use Amazon Simple Notification Service (Amazon SNS) to handle the messaging between application servers running on Amazon EC2 in an Auto Scaling group. Use Amazon CloudWatch to monitor the SNS queue length and scale up and down as required.
D
Use Amazon Simple Queue Service (Amazon SQS) to handle the messaging between application servers running on Amazon EC2 in an Auto Scaling group. Use Amazon CloudWatch to monitor the SQS queue length and scale up when communication failures are detected.