Decoupling Web Tier Components with AWS Services

Decoupling Web Tier Components

Question

You are working on an e-commerce web application running on an EC2 instance.

But it is experiencing a bad performance in browsing and searching use cases when heavy load use-cases are running simultaneously.

The application monitors highlight a bottleneck in the web tier. You decide to re-engineer the application code by decoupling the web tier components from the order's heavy workloads.

What AWS service can support the application change?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Answer: C.

Option A is INCORRECT because it is not a service for decoupling use-case.

AWS Auto Scaling adjusts the capacity to maintain performance leaving unchanged the application design.

Option B is INCORRECT because AWS ELB is a service to distribute the workload across EC2 instance, not a service to support application refactoring or re-engineering.

Option C is CORRECT because Amazon SQS implements messaging that is a typical integration pattern to decouple application components.

AWS documentation mentions "Amazon SQS offers a reliable, highly-scalable hosted queue for storing messages as they travel between applications or microservices.

It moves data between distributed application components and helps you decouple these components".

Option D is INCORRECT because it is a streaming service not suitable for the scenario.

Diagram: none.

References:

https://aws.amazon.com/sqs/faqs/

The correct answer to the question is C. Amazon SQS.

Explanation:

In the given scenario, the e-commerce web application running on an EC2 instance is experiencing bad performance during heavy load use-cases. The bottleneck in the web tier is identified as the root cause of the problem. To resolve the issue, the application code needs to be re-engineered by decoupling the web tier components from the order's heavy workloads.

To decouple the web tier components from the heavy workloads, we can use Amazon Simple Queue Service (SQS), which is a fully managed message queuing service offered by AWS. With SQS, messages can be sent, received, and processed asynchronously between distributed application components and services.

By integrating Amazon SQS with the e-commerce web application, we can separate the heavy workloads from the web tier, allowing the web tier to focus on processing the incoming web requests without getting bogged down by long-running and heavy workloads. The heavy workloads can be sent to the SQS queue and processed asynchronously by a separate set of worker instances.

AWS Auto Scaling and Elastic Load Balancing are useful for scaling web application instances to handle increased traffic, but they do not provide a mechanism for decoupling heavy workloads from the web tier.

Amazon Kinesis Streams is a managed service for real-time data processing, which is not directly related to decoupling heavy workloads from the web tier.

Therefore, the correct answer is C. Amazon SQS.