Question

Difficulty: MediumImplementing Auto Scaling and Fault Tolerance

An online auction platform experiences sudden, massive surges in traffic during the final minutes of high-value auctions. The application runs on Amazon EC2 instances in an Auto Scaling group (ASG) behind an Application Load Balancer (ALB). The instances use a custom launch template that takes 5 minutes5\text{ minutes} (300 seconds300\text{ seconds}) to download application libraries and start the service. Outbound API calls to external payment gateways are routed through a single NAT Gateway in Availability Zone us-east-1a\text{us-east-1a}. During auction finales, the ALB immediately returns 503 Service Unavailable503\text{ Service Unavailable} errors to new requests. Additionally, the ASG launches far more instances than needed during a surge because the scaling policy triggers additional instances before the first batch is fully functional. Which combination of actions will resolve these scaling and fault-tolerance issues with the lowest operational overhead?

  1. A
    Configure an Amazon CloudFront distribution in front of the ALB to cache all dynamic auction bids, reduce the ASG cooldown period to 60 seconds60\text{ seconds}, and maintain the single NAT Gateway in us-east-1a\text{us-east-1a} to control costs.
  2. B
    Configure a target tracking scaling policy based on average CPU utilization, set the ASG cooldown period to 120 seconds120\text{ seconds}, and configure Amazon Route 53 to distribute outbound traffic across multiple NAT Instances deployed in the private subnets.
  3. Request AWS Support to pre-warm the ALB before scheduled high-value auctions, configure the ASG scaling policy's instance warmup to 350 seconds350\text{ seconds}, and deploy a NAT Gateway in each Availability Zone with corresponding route table updates.Answer
  4. D
    Deploy a Network Load Balancer (NLB) in front of the ALB to handle the traffic spikes without pre-warming, set the ASG default cooldown to 180 seconds180\text{ seconds}, and associate the existing NAT Gateway with multiple private route tables across all Availability Zones.

Answer

Requesting AWS Support to pre-warm the ALB, setting the ASG warmup period to 350 seconds350\text{ seconds}, and deploying a NAT Gateway in each Availability Zone.
To resolve immediate 503503 errors from flash traffic, the ALB must be pre-warmed since dynamic scaling of the load balancer is not instantaneous. To prevent over-provisioning during scaling, the instance warmup period must be configured to be longer than the boot and configuration time of the instances (300 seconds300\text{ seconds}), making 350 seconds350\text{ seconds} appropriate. For fault tolerance, a NAT Gateway must be deployed in each Availability Zone to ensure outbound traffic is not dependent on a single zone.

Step-by-Step Solution

1
Address the load balancer bottleneck during sudden, large-scale traffic spikes.
The Application Load Balancer (ALB) is configured with pre-warming requested from AWS Support before scheduled auctions.
Dynamic scaling of the ALB is too slow for instantaneous spikes, leading to 503503 errors. Pre-warming prepares the ALB with adequate capacity.
2
Configure the Auto Scaling Group (ASG) to prevent over-provisioning during scaling events.
The instance warmup is set to 350 seconds350\text{ seconds}, which is greater than the 300 seconds300\text{ seconds} bootstrap time.
This prevents the ASG from launching additional instances before the previously launched ones have finished bootstrapping and started reporting metrics.
3
Design a fault-tolerant outbound NAT architecture.
Deploy a NAT Gateway in each Availability Zone where the EC2 instances are located, and update local route tables accordingly.
Having a NAT Gateway per AZ ensures that a failure in one Availability Zone does not impact outbound connectivity for resources in other zones.

Key Concept

ELB pre-warming, Auto Scaling Group warmup tuning, and multi-AZ NAT Gateway redundancy.
Rate this question