Question

Difficulty: MediumImplementing Auto Scaling and Fault Tolerance

A financial data processing firm runs its core transaction settlement application on Amazon EC2 instances in an Auto Scaling group (ASG) behind an Application Load Balancer (ALB). The instances reside in private subnets across three Availability Zones (AZ-a, AZ-b, and AZ-c) in a VPC. Outbound traffic to external financial clearinghouses is routed through a single NAT Gateway located in AZ-a. During a recent physical fiber cut that impacted AZ-a, instances in AZ-b and AZ-c lost all outbound connectivity, halting transaction settlements.

Additionally, the application experiences brief, massive bursts of transactions at the start of each business hour. Each EC2 instance requires approximately 88 minutes to boot, retrieve encryption keys, and complete application initialization. During the hourly bursts, the ALB throws 503503 Service Unavailable errors for several minutes because the ASG's step scaling policy, which has a 300300-second cooldown, cannot add healthy instances fast enough.

Which two actions should a solutions architect take to resolve these issues and improve the fault tolerance of the application? (Select TWO.)

  1. Deploy a NAT Gateway in each Availability Zone, and update the route tables of the private subnets in each Availability Zone to route outbound traffic through the NAT Gateway in their respective Availability Zone.Answer
  2. Configure an Auto Scaling group warm pool with instances in the Stopped state to maintain pre-initialized EC2 instances, and configure the scaling policy to launch instances from the warm pool during scale-out events.Answer
  3. C
    Configure the Application Load Balancer to route outbound API requests directly through an AWS Transit Gateway that is peered with a central egress VPC containing redundant NAT Gateways.
  4. D
    Reduce the Auto Scaling group cooldown period to 120120 seconds to allow the step scaling policy to trigger additional scale-out actions more rapidly during the hourly transaction spikes.
  5. E
    Submit a request to AWS Support to pre-warm the Application Load Balancer to ensure it has sufficient capacity to handle the sudden burst of incoming connections at the start of each hour.

Answer

Deploy a NAT Gateway in each Availability Zone and configure the route tables of the private subnets to route outbound traffic through their local NAT Gateway. In addition, configure an Auto Scaling group warm pool with instances in the Stopped state to maintain pre-initialized EC2 instances.
The correct solution involves deploying a NAT Gateway in each Availability Zone and configuring the private subnets to route outbound traffic through their respective local gateways to eliminate the single point of failure. Additionally, establishing an Auto Scaling group warm pool with pre-initialized instances in the Stopped state addresses the 88-minute bootstrapping delay, enabling the system to scale out within seconds when the hourly burst of transactions begins.

Step-by-Step Solution

1
Address the outbound connectivity single point of failure by deploying redundant NAT Gateways.
A NAT Gateway is deployed in the public subnet of each Availability Zone (AZ-a, AZ-b, and AZ-c).
This ensures that an outage in one AZ (such as AZ-a) only affects the resources in that specific AZ. Outbound traffic from the remaining AZs continues to flow through their respective local NAT Gateways, eliminating cross-AZ dependencies for internet access.
2
Configure local routing for private subnets to route outbound traffic through the corresponding local NAT Gateway.
Route tables for private subnets in AZ-b and AZ-c are updated to route internet-bound traffic to their local NAT Gateways.
This establishes fault-tolerant, high-availability outbound paths for all private instances across the three Availability Zones.
3
Solve the 88-minute instance initialization delay during sudden traffic spikes using an ASG warm pool.
An ASG warm pool is enabled with instances kept in a Stopped state.
Warm pools allow instances to boot, run their initialization scripts, download keys, and then stop. When the hourly transaction spike occurs, these pre-initialized instances can be started within seconds rather than minutes, allowing the ASG to scale out rapidly and prevent Application Load Balancer 503503 errors.

Key Concept

Implementing Multi-AZ redundancy for outbound gateways and reducing EC2 scale-out provisioning latency using ASG warm pools.
Rate this question