Why Are EC2 Instances in One AZ Not Receiving ALB Traffic?
A company runs an application on Amazon EC2 instances. The instances are in three Availability Zones behind an Auto Scaling group and an Application Load Balancer (ALB). The ALB maps to an Amazon Route 53 alias record. Amazon CloudWatch metrics show healthy instances in all three Availability Zones. However, instances in only two of the Availability Zones receive traffic. Which solution will resolve this issue?
Community Insight
This question tests ALB Availability Zone coverage versus target health; the trap is assuming CloudWatch healthy targets automatically receive traffic regardless of whether their subnet is associated with the load balancer.
An Application Load Balancer only routes traffic into Availability Zones whose subnets are attached to it, so healthy instances in an unassociated AZ can remain idle. The page confirms that associating the missing subnet is the correct fix, not changing cross-zone load balancing or Route 53 records.
Many learners choose cross-zone load balancing because it sounds like it distributes traffic across all Availability Zones, but ALB cross-zone load balancing is enabled by default and does not add an AZ that is missing from the ALB subnet configuration.
Community Discussion (1 comments)
Comments & Corrections
No comments yet — spotted an error or have a note? Share it below.
Expert Analysis
Why the Answer Is Correct
The ALB distributes traffic only through the Availability Zones that are enabled for it, which happens when the corresponding subnets are associated with the load balancer. CloudWatch can show healthy targets in the third AZ, but if that AZ's subnet is not attached to the ALB, the load balancer has no node there and those targets receive no client traffic. Associating the missing subnet with the ALB is therefore the direct fix, and it restores the three-AZ design the application expects. This is why option B matches the symptom of healthy instances in an AZ that is invisible to the load balancer.
Why the Other Options Are Wrong
Option A is tempting because cross-zone load balancing sounds like it should spread traffic across every AZ, but ALB cross-zone load balancing is enabled by default and operates across the AZs enabled on the load balancer; it cannot compensate for a missing subnet association. Option C would make distribution worse, and disabling cross-zone load balancing is not the solution to an AZ that is not attached to the ALB. Option D is wrong because a Route 53 alias record is the correct DNS integration for an ALB; changing to a CNAME does not change which AZs the ALB uses and is not the recommended approach for AWS load balancers.
Community Comment Notes
The community comment from Bad_Mat points directly to subnet association, stating "Ensure that all the required subnets are correctly associated with the ALB". That aligns with the AWS behavior described above and with the symptom of one AZ receiving no traffic while its instances remain healthy. There is no substantive counterargument in the comments, so the practical takeaway is to audit the ALB's Availability Zone and subnet list first.
Official Reference
Exam Strategy
When an ALB symptom is AZ-specific, verify the ALB's subnet associations before tuning target groups or DNS. Cross-zone load balancing is enabled by default on ALBs, so rule it out unless the scenario explicitly says it was disabled.
Frequently Asked Questions
Why doesn't cross-zone load balancing fix the idle third AZ?
Cross-zone load balancing is enabled by default on ALBs and only redistributes traffic among targets in the AZs enabled for the load balancer. It does not add a missing subnet or AZ to the ALB.
Is a Route 53 CNAME record better than an alias for an ALB?
No. Route 53 alias records are the recommended way to point DNS at an ALB, and changing to a CNAME does not affect which Availability Zones the load balancer uses.
Related Analysis
Practice All SOA-C03 Questions
Access 100 questions with complete answers and detailed explanations.
View Full SOA-C03 Practice Test →