Question

Difficulty: HardIdentify design principles of the AWS Cloud

A logistics company is designing an automated package sorting and delivery notification system. The system receives scan events from millions of IoT barcode scanners globally. These events must be processed immediately to update tracking history, and a notification must then be sent to the customer. The transaction volume spikes dramatically during holiday periods but drops to near zero overnight. The engineering team needs to design the architecture to be resilient, cost-efficient, and aligned with AWS Cloud design principles.

Which TWO architectural decisions best align with AWS design principles for this scenario?

  1. Decouple the barcode ingestion service from the customer notification service using Amazon Simple Queue Service (SQS).Answer
  2. Use Amazon EC2 Auto Scaling to dynamically adjust the number of processing instances based on the volume of queue messages.Answer
  3. C
    Design the barcode ingestion and customer notification functions as a single monolithic application to minimize inter-service communication latency.
  4. D
    Over-provision a static cluster of Amazon EC2 instances to handle the maximum projected holiday peak load at all times.
  5. E
    Hardcode IP addresses of the processing servers directly into the scanner clients to simplify routing and network configuration.

Answer

Decouple the barcode ingestion service from the customer notification service using Amazon Simple Queue Service (SQS), and use Amazon EC2 Auto Scaling to dynamically adjust the number of processing instances based on the volume of queue messages.
The correct architectural decisions are to decouple the barcode ingestion from the notification service using Amazon Simple Queue Service (SQS) and to use Amazon EC2 Auto Scaling to dynamically size the processing layer. SQS introduces loose coupling by buffer-queuing events, preventing component failures from affecting other parts of the system. Auto Scaling implements elasticity by dynamically scaling processing capacity to match actual traffic demands, maintaining cost-efficiency during off-peak hours.

Step-by-Step Solution

1
Identify the key requirements of the scenario: handling unpredictable, spiky IoT data volumes and maintaining high availability while optimizing costs.
Recognized the need for a highly elastic and decoupled architecture.
AWS design principles advocate for loose coupling to prevent cascading failures and elasticity to align cost with demand.
2
Evaluate decoupling options to isolate components.
Selected the option to use Amazon Simple Queue Service (SQS) to decouple the barcode ingestion service from downstream processing.
A queue acts as a buffer, ensuring that spikes in ingestion do not overwhelm downstream services and that failures in notifications do not drop incoming transactions.
3
Evaluate scaling strategies for the compute layer.
Selected the option to use Amazon EC2 Auto Scaling to dynamically adjust instances based on queue volume.
This implements elasticity, automatically adjusting capacity to match actual workload demands rather than paying for idle static resources.

Key Concept

AWS Cloud design principles, specifically loose coupling and elasticity.
Estimated Time:2m 0s
Rate this question