Question

Difficulty: HardAuto Scaling and Elastic Load Balancing (ELB)

A company is hosting a specialized transaction processing application on a fleet of Amazon EC2 instances managed by an Auto Scaling group (ASG). The instances are registered with a target group for an Application Load Balancer (ALB). The application receives transaction requests on TCP port 9443, and the target group is configured to route traffic to port 9443 with the health check port set to 'traffic-port'. To verify application health, the load balancer needs to query an administrative status API endpoint that runs on port 8081 of the instances. Currently, the ALB is marking all instances as unhealthy, causing the ASG to continuously terminate and launch new instances. Which action should the solutions architect take to resolve this issue?

  1. Modify the target group configuration to explicitly set the health check port to 8081.Answer
  2. B
    Modify the target group's port configuration from 9443 to 8081 to match the administrative status port, allowing the default traffic-port health check to succeed.
  3. C
    Add an outbound rule to the security group of the EC2 instances to allow traffic on port 8081 to the Application Load Balancer, as security groups are stateless and require explicit outbound rules for health check responses.
  4. D
    Configure Amazon Route 53 latency routing to distribute incoming traffic directly to the EC2 instances' Elastic IP addresses, bypassing the Application Load Balancer health check mechanism.

Answer

Modify the target group configuration to explicitly set the health check port to 8081.
The target group is configured to route user traffic to the application's transaction port (9443). However, because the application's health status API runs on a separate administration port (8081), the solutions architect must override the default health check port settings from 'traffic-port' to port 8081. This ensures that the Application Load Balancer (ALB) sends health probes to the correct port while maintaining transaction routing to port 9443.

Step-by-Step Solution

1
Analyze the ports used by the application and the health check configuration.
The application listens on port 9443 for transactions, while the health check status endpoint runs on port 8081.
Understanding the separation of transaction traffic and administrative health check endpoints is necessary to determine the correct port mapping.
2
Evaluate the behavior of the default 'traffic-port' setting in the ALB target group.
By default, 'traffic-port' tells the ALB to perform health checks on the same port it routes traffic to, which is port 9443. Since the status API is on port 8081, the health check fails.
This explains why the ALB is currently marking the instances as unhealthy.
3
Identify the correct configuration update required to separate routing port from health check port.
Specify port 8081 under the health check settings of the target group.
This allows the ALB to route production traffic to port 9443 while sending health checks to port 8081.

Key Concept

ELB target group health checks can be configured to use a custom port different from the traffic port.
Estimated Time:2m 0s
Rate this question