How Should Traffic Route Only to Healthy Application Servers?

Answer Correct answer: A — Use an Application Load Balancer with target-group health checks so traffic is routed only to healthy application-server instances.

A company runs a three-tier web application on AWS. The application includes web servers, application servers, and database servers. The application servers process requests from the web servers. The company wants to ensure high availability of the application. Therefore, the company needs to monitor the health of the application servers and route traffic only to healthy instances. Which solution will meet these requirements?

  1. Create an Application Load Balancer (ALB) in front of the application servers with health checks for the application servers. Correct Answer
  2. Create an Amazon Route 53 health check for the application servers. Attach a Network Load Balancer (NLB) in front of the application servers.
  3. Create an AWS Lambda function that restarts an application server. Configure an Amazon CloudWatch alarm to monitor the health of the application servers. Run the function when an application is unhealthy.
  4. Create an Amazon CloudWatch metric to monitor the health of the application servers. Route traffic by using a Network Load Balancer (NLB).

Community Insight

The question tests Layer 7 health checking and traffic routing for an application tier; the trap is choosing a Network Load Balancer or Route 53 health check that does not manage per-instance target health.

This SOA-C03 scenario tests how to keep a three-tier application highly available by monitoring application-server health and routing traffic only to healthy targets. The page confirms that an Application Load Balancer with target-group health checks satisfies the requirement.

A common wrong choice is B, because Route 53 and an NLB sound highly available, but Route 53 health checks drive DNS failover while the NLB does not provide the same HTTP-aware target health routing as an ALB for the application tier.

Community Discussion (1 comments)

Bad_Mat 👍 1 Selected: A
A. Create an Application Load Balancer (ALB) in front of the application servers with health checks for the application servers.

Comments & Corrections

No comments yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

Expert Analysis

Why the Answer Is Correct

An ALB is a Layer 7 load balancer that performs health checks against each registered application server, removes unhealthy targets from its target group, and sends requests only to healthy instances. It can span multiple Availability Zones and integrates with Auto Scaling, matching the requirement to monitor application-server health and route traffic only to healthy instances. Because the application servers process HTTP(S) requests from the web tier, an ALB is the appropriate load-balancing layer. Its health check can use an application-specific path and expected response, making the check meaningful for this tier rather than merely testing port availability. Bad_Mat selected option A, and the phrase "with health checks for the application servers" directly captures the needed mechanism.

Why the Other Options Are Wrong

B uses a Route 53 health check plus an NLB; Route 53 health checks are for DNS failover and do not provide per-target application-server health routing behind a load balancer. An NLB operates primarily at Layer 4 and, while it has health checks, it does not offer the same HTTP-aware application routing model as an ALB for this web tier. C uses a Lambda restart action and a CloudWatch alarm; alarms can notify or automate remediation, but they do not inherently remove an unhealthy instance from the traffic path, and restarting can cause loops without load balancer health checks. D monitors a CloudWatch metric and uses an NLB, but a CloudWatch metric by itself does not route traffic, and the NLB still lacks the ALB's application-level target health behavior needed here.

Community Comment Notes

The only visible learner input is Bad_Mat's vote for option A, which is consistent with the AWS-recommended pattern for this scenario. The fragment "with health checks for the application servers" points to the key control: health checks must actually govern traffic routing, not just raise alarms. No community comment argues for the NLB, Route 53, or Lambda alternatives, so there is no substantive counterpoint to address. Learners should still verify the target group health-check path and thresholds rather than relying on vote count.

Official Reference

Exam Strategy

When a question says “route traffic only to healthy instances,” look for a load balancer whose target-group health checks remove unhealthy targets. Prefer ALB for HTTP/HTTPS application tiers and reserve NLB for Layer 4/TCP or extreme-performance cases unless the scenario explicitly requires it.

Frequently Asked Questions

Why is a Route 53 health check with an NLB wrong for healthy application servers?

Route 53 health checks support DNS failover, not per-target routing inside the application tier. An ALB's target-group health checks remove individual unhealthy application servers from traffic.

Why can't a CloudWatch alarm alone keep traffic off an unhealthy application server?

A CloudWatch alarm can trigger notifications or a Lambda action, but it does not automatically deregister the instance from a load balancer's healthy target pool. The ALB health check performs that routing decision.

More SOA-C03 FAQ →

Related Analysis

Practice All SOA-C03 Questions

Access 100 questions with complete answers and detailed explanations.

View Full SOA-C03 Practice Test →

← Back to SOA-C03 Study Guide