AWS Advanced Networking Specialty: Troubleshooting ELB Health Check Issues

Resolve ELB Health Check Issues

Prev Question Next Question

Question

You've recently migrated an application from a customer's on-premise data center to the AWS cloud.

Currently, you're using the ELB to serve traffic to the legacy application.

The ELB is also using HTTP port 80 as the health check ping port.

The application is currently responding by returning a text file on port 80 when you test the IP address directly.

However, the instance is not registering as healthy even though the appropriate amount of time has passed for the health check to register as healthy.

How might the issue be resolved? Choose the correct answer from the options below.

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Answer - B.

Since the application is a custom application and not a standard HTTP application, hence you need to have the TCP ports open.

Before you start using Elastic Load Balancing, you must configure one or more listeners for your Classic Load Balancer.

A listener is a process that checks for connection requests.

It is configured with a protocol and a port for front-end (client to load balancer) connections, and a protocol and a port for back-end (load balancer to back-end instance) connections.

Elastic Load Balancing supports the following protocols:

· HTTP.

· HTTPS (secure HTTP)

· TCP.

· SSL (secure TCP)

For more information on listener configuration for ELB please see the below link:

http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-listener-config.html

When an Elastic Load Balancer (ELB) is configured to perform health checks on backend instances, it sends periodic requests to the instances and checks their response codes to determine their health status. If the response code indicates success, the instance is considered healthy, and traffic can be routed to it.

In this scenario, the ELB is configured to use HTTP port 80 as the health check ping port. However, even though the application is responding with a text file on port 80 when tested directly, the instance is not registering as healthy.

There could be several reasons for this, such as the instance not responding within the configured timeout or returning a response code that the ELB considers unhealthy. However, one possible reason is that the ELB is not able to establish a successful TCP connection to the instance on port 80.

To resolve the issue, we need to change the ELB listener configuration so that it can establish a successful TCP connection to the instance on port 80. We have four answer choices to choose from:

A. Change the ELB listener port from ping port 80 to HTTPS port 80 for the instance to register as healthy B. Change the ELB listener port from HTTP port 80 to TCP port 80 for the instance to register as healthy C. Change the ELB listener port from HTTP port 80 to HTTPS port 80 for the instance to register as healthy D. Change the ELB listener port from HTTP port 80 to TCP port 443 for the instance to register as healthy.

Option A is incorrect because changing the ELB listener to HTTPS port 80 would require the instance to support HTTPS, which it may not. Additionally, changing the listener port from HTTP to HTTPS would require SSL/TLS certificates to be installed on the ELB and the instance, which may not be necessary.

Option B is correct because changing the ELB listener port to TCP port 80 would allow the ELB to establish a successful TCP connection to the instance on port 80. This would enable the ELB to perform health checks correctly and register the instance as healthy.

Option C is incorrect because, as discussed earlier, changing the listener port to HTTPS would require SSL/TLS certificates to be installed on the ELB and the instance, which may not be necessary.

Option D is incorrect because changing the ELB listener port to TCP port 443 would not allow the ELB to establish a successful TCP connection to the instance on port 80. It would require the instance to listen on port 443 instead of port 80, which may not be feasible or desirable.

Therefore, the correct answer is B - Change the ELB listener port from HTTP port 80 to TCP port 80 for the instance to register as healthy.