Question

Difficulty: MediumImplementing Auto Scaling and Fault Tolerance

An online food delivery platform experiences intermittent HTTP 503 Service Unavailable errors and slow response times during a daily, predictable traffic surge from 11:30 AM to 1:00 PM. The application's dispatch service runs on Amazon EC2 instances within an Auto Scaling group behind an Application Load Balancer. The EC2 instances are located in private subnets across multiple Availability Zones, and they access external APIs through a single NAT Gateway located in one Availability Zone. The instances require approximately 7 minutes (420 seconds) to boot, configure, and pass health checks. The Auto Scaling group's scaling policy is configured with a cooldown period of 300 seconds. Which of the following solutions will resolve the service unavailability and address the single point of failure in the most reliable and fault-tolerant manner?

  1. A
    Deploy a NAT Gateway in each Availability Zone used by the EC2 instances and update the corresponding route tables. Keep the Auto Scaling group cooldown period at 300 seconds, and rely on Application Load Balancer target group health checks to temporarily route traffic away from bootstrapping instances.
  2. B
    Retain the single NAT Gateway in the primary Availability Zone and configure a secondary elastic IP address for redundancy. Adjust the Auto Scaling group cooldown period to 480 seconds, and configure a scheduled scaling policy to scale out the instances before 11:30 AM.
  3. Deploy a NAT Gateway in each Availability Zone used by the EC2 instances and update the corresponding route tables. Adjust the Auto Scaling group cooldown period to 480 seconds, and configure a scheduled scaling policy to scale out the instances before 11:30 AM.Answer
  4. D
    Deploy a NAT Gateway in each Availability Zone used by the EC2 instances and update the corresponding route tables. Request AWS Support to permanently pre-warm the Application Load Balancer, and keep the step scaling policy with the 300-second cooldown period.

Answer

Deploy a NAT Gateway in each Availability Zone used by the EC2 instances, update the route tables, adjust the Auto Scaling group cooldown period to 480 seconds, and configure a scheduled scaling policy to scale out before the peak.
The correct solution addresses the network bottleneck, scaling lag, and instance thrashing. First, deploying a NAT Gateway in each Availability Zone ensures high availability for outbound traffic, removing the single point of failure. Second, setting the cooldown to 480 seconds (exceeding the 420-second instance launch and bootstrap duration) ensures the Auto Scaling group does not launch redundant instances before the active ones become healthy. Finally, using a scheduled scaling policy allows the platform to proactively add capacity ahead of the predictable lunch rush, preventing the initial response lag.

Step-by-Step Solution

1
Deploy NAT Gateways across all utilized Availability Zones.
High availability and fault tolerance are achieved for outbound traffic from the private subnets, eliminating the single point of failure.
A single NAT Gateway in one AZ leaves the entire multi-AZ stack vulnerable to an outage of that specific AZ.
2
Update the Auto Scaling group cooldown period to 480 seconds.
The Auto Scaling group will wait 8 minutes before evaluating scaling metrics again, allowing the bootstrapping instances (which take 7 minutes) to become healthy.
This prevents scaling thrashing/over-provisioning caused by scaling activities occurring before the newly launched instances register as healthy.
3
Configure a scheduled scaling policy for the known peak time.
The dispatch service scales out proactively before 11:30 AM, avoiding the lag and latency associated with reactive scaling during the sudden surge.
Since the traffic surge is highly predictable, scheduled scaling is the most effective way to guarantee resource availability.

Key Concept

Auto Scaling cooldown management, scheduled scaling for predictable loads, and multi-AZ network fault tolerance.
Rate this question