Question

Difficulty: Very hardIdentify design principles of the AWS Cloud

A logistics company is migrating a legacy shipment-tracking application to AWS. The current application runs on a single high-capacity server that receives telemetry data, processes it, and updates a database. During peak periods, the server often runs out of memory, causing incoming telemetry data to be lost. The company wants to redesign the application to achieve the following:
1. Ensure telemetry data is never lost, even if downstream processing components fail or are temporarily unavailable.
2. Minimize operational overhead by avoiding the management of virtual servers for the processing and storage layers.
3. Automatically adjust resource capacity to match the volume of incoming data without manual intervention or over-provisioning.

Which architectural design on AWS best applies the cloud design principles of loose coupling, services not servers, and elasticity to meet these requirements?

  1. Ingest data using Amazon API Gateway, buffer messages in Amazon Simple Queue Service (SQS) to decouple the components, trigger AWS Lambda functions to process data, and store results in Amazon DynamoDB.Answer
  2. B
    Deploy a static fleet of Amazon EC2 instances to ingest data, use Amazon Elastic Block Store (EBS) to store incoming telemetry files, and write a cron job that runs every hour to scale the instances vertically during high-traffic windows.
  3. C
    Configure an Application Load Balancer to route traffic to a monolithic application running on an Amazon EC2 Auto Scaling group, where the application handles ingestion, processing, and database writes synchronously.
  4. D
    Set up a containerized processing cluster on Amazon EC2 instances, manually provision additional compute nodes when CPU utilization exceeds 80%, and rely on AWS to automatically perform security patching on the guest operating systems.

Answer

Ingest data using Amazon API Gateway, buffer messages in Amazon Simple Queue Service (SQS) to decouple the components, trigger AWS Lambda functions to process data, and store results in Amazon DynamoDB.
The correct architecture uses Amazon SQS to buffer and decouple components (applying loose coupling), uses Amazon API Gateway, AWS Lambda, and Amazon DynamoDB (applying services not servers to eliminate server management), and relies on Lambda and DynamoDB's capability to dynamically scale to match demand (applying elasticity).

Step-by-Step Solution

1
Analyze the requirement for ensuring data is not lost even if components fail or are unavailable.
Identify that the system needs asynchronous decoupling, which is achieved using message queues (Amazon SQS) to implement the 'loose coupling' design principle.
Loose coupling ensures that components can fail or scale independently without causing cascading failures or data loss.
2
Analyze the requirement to minimize operational overhead by avoiding virtual server management.
Select fully managed, serverless services such as Amazon API Gateway, AWS Lambda, and Amazon DynamoDB, applying the 'services, not servers' design principle.
Using managed services shifts the operational burden of provisioning, scaling, and patching physical or virtual servers to AWS.
3
Analyze the requirement to automatically adjust resource capacity to match the volume of incoming data without manual intervention or over-provisioning.
Ensure that the selected compute and database layers support dynamic scaling (elasticity), which AWS Lambda and Amazon DynamoDB naturally provide.
Elasticity allows the system to scale out to handle traffic spikes and scale in during idle times, avoiding both under-provisioning and wasted costs.

Key Concept

Applying core AWS Cloud design principles including loose coupling, services not servers, and elasticity to build resilient, serverless, and auto-scaling architectures.
Estimated Time:3m 0s
Rate this question