Soru

Zorluk: ZorIdentify design principles of the AWS Cloud

A company is migrating its monolithic on-premises order-processing application to AWS. To handle unpredictable traffic spikes, they need to ensure the system is highly resilient to failures, can scale dynamically without human intervention, and prevents database performance bottlenecks from crashing the web frontend. Which of the following architectural strategies on AWS best implements these requirements while avoiding common cloud design anti-patterns?

  1. Deploy the frontend web servers across multiple Availability Zones within an Auto Scaling group, and use Amazon Simple Queue Service (SQS) to buffer writes to the database.Cevap
  2. B
    Deploy both the web servers and the database on a single, statically over-provisioned Amazon EC2 instance to ensure zero-latency communication under peak load.
  3. C
    Connect the web servers directly to the database, and configure Amazon CloudWatch alarms to notify administrators to manually launch additional EC2 instances during spikes.
  4. D
    Run all web servers in a single Availability Zone, relying on AWS physical infrastructure maintenance to guarantee zero-downtime application failover.

Cevap

Deploy the frontend web servers across multiple Availability Zones within an Auto Scaling group, and use Amazon Simple Queue Service (SQS) to buffer writes to the database.
The correct strategy implements loose coupling by using Amazon SQS to decouple the database writes from the web frontend, designs for failure by deploying the web servers across multiple Availability Zones, and implements elasticity by using an Auto Scaling group to handle dynamic traffic spikes automatically.

Adım Adım Çözüm

1
Analyze the resiliency requirement.
To ensure high resilience against failures, the application must be deployed across multiple Availability Zones (AZs) so that if one AZ fails, the others can continue operating.
This implements the 'design for failure' principle.
2
Analyze the scaling requirement.
To scale dynamically without human intervention, an Auto Scaling group should be used to automatically add or remove EC2 instances based on demand.
This implements the 'elasticity' principle, avoiding the anti-pattern of manual scaling.
3
Analyze the database bottleneck and decoupling requirement.
To prevent database bottlenecks from crashing the web frontend, a message queue like Amazon SQS must be introduced to buffer incoming requests and decouple the layers.
This implements the 'loose coupling' principle, ensuring that components are not tightly bound to each other's immediate performance.

Anahtar Kavram

AWS Cloud design principles (loose coupling, elasticity, and design for failure)
Bu soruyu puanla