Which solution meets these requirements and is the MOST operationally efficient?
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.
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.
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.
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.
Explanations:
This solution is operationally efficient, serverless, and scalable. API Gateway with AWS Lambda handles the application layer, while SQS ensures reliable messaging and decouples application tiers to avoid overload.
Increasing instance size does not address the scaling problem effectively. It only meets peak utilization without preventing overloads, and it is not operationally efficient or scalable.
While SNS can send messages, it is not suitable for controlling message flow in a multi-tier application. SQS would be more appropriate for handling load between tiers.
Using SQS for messaging and Auto Scaling helps, but scaling only when failures are detected is reactive. This approach is less efficient than the serverless design in option A.