Q13Design Resilient Architectures
A company has an HTTP application behind a Network Load Balancer (NLB). The NLB target group uses an Amazon EC2 Auto Scaling group that contains multiple EC2 instances running the web service. The company finds that the NLB is not identifying HTTP errors for the application. These errors require the EC2 instances that run the web service to be restarted manually. The company must improve the availability of the application without writing custom scripts or code. What should a solutions architect do to meet these requirements?
← → navigate · a answer
Community votes
Discussion · 27
C 32
I would choose A, as NLB supports HTTP and HTTPS Health Checks, BUT you can't put any URL (as proposed), only the node IP addresses.
So, the solution is C.
C 20
Option C. NLB works at Layer 4 so it does not support HTTP/HTTPS. The replacement for the ALB is the best choice.
15
A URL includes the hostname. The health check path is only the path portion. For example,
URL = https://i-0123456789abcdef.us-west-2.compute.internal/index.html
health check path= /index.html
11
NLBs support HTTP, HTTPS and TCP health checks:
https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-health-checks.html (check HealthCheckProtocol)
But NLBs only accept either selecting EC2 instances or IP addresses directly as targets. You can't provide a URL to your endpoints, only a health check path (if you're using HTTP or HTTPS health checks).
C 10
A. NLB, but NLB's health checks are designed for TCP/UDP protocols and lack the advanced features specific to HTTP applications provided by ALB.
B. This approach involves custom scripting and manual intervention, which contradicts the requirement of not writing custom scripts or code.
D. Since the NLB does not detect HTTP errors, relying solely on the UnhealthyHostCount metric may not accurately capture the health of the application instances.
Therefore, C is the recommended choice for improving the application's availability without custom scripting or code. By replacing the NLB with an ALB, enabling HTTP health checks, and configuring Auto Scaling to replace unhealthy instances, the company can ensure that only healthy instances are serving traffic, enhancing the application's availability automatically.
C 9
NLB is for network errors and low level traffic stuff
ALB is for application so C is the only realistic option here
8
That's incorrect. NLB does support HTTP and HTTPS (and TCP) health checks.
https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-health-checks.html
There just isn't an answer option that reflects that. My guess is that the question and/or answer options are outdated.
C 4
ALB allows you to specify the path which helps to check the error. NLB cannot do that.
C 4
The key points are:
Use an Application Load Balancer (ALB) instead of a Network Load Balancer (NLB) since ALBs support HTTP health checks.
Configure HTTP health checks on the ALB to monitor the application health.
Use an Auto Scaling action triggered by the ALB health checks to automatically replace unhealthy instances.
C 4
You can use HTTP/HTTPS ONLY when Target is ALB.
By default it is TCP.
https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-health-checks.html#health-check-settings
HealthCheckProtocol
The protocol the load balancer uses when performing health checks on targets. The possible protocols are HTTP, HTTPS, and TCP. The default is the TCP protocol. If the target type is ALB, the supported health check protocols are HTTP and HTTPS.
C 4
Ans C - Yup, somethings happening at the Application level so replace NLB with ALB
A 3
NLB does support HTTP/HTTPS Health Checks.
I saw other people comments, it seems like the question were rephrased. The comments were highlighting "application URL", but I don't see words on the question.
C 3
ALB is more suitable for HTTP requests.
3
can you elaborate more pls
C 2
Switching to an ALB with HTTP health checks enables application-level monitoring and automated recovery, making it the best solution with minimal operational overhead.
2
But you'd need to check the health of the individual nodes, NOT "the URL of the company's application" which points to the Load Balancer.
2
I will go with A as Network load balancer supports HTTP and HTTPS health checks, maybe the answer is outdated.
C 2
NLB only supports TCP-level health checks, it cannot detect HTTP errors
2
What's the difference between endpoint URL and health check path?
1
Replace the NLB (layer 4 udp and tcp) with an Application Load Balancer - ALB (layer 7) supports http and https requests.
1
I think even http health check is feasible, option A does not provide any suggestion when health check fails
1
Thank you for explaining this, I'm currently studying for the exam and your explanation was helpful.
1
NLB doesnt support HTTP health checks..only TCP
C 1
must be C
Application availability: NLB cannot assure the availability of the application. This is because it bases its decisions solely on network and TCP-layer variables and has no awareness of the application at all. Generally, NLB determines availability based on the ability of a server to respond to ICMP ping or to correctly complete the three-way TCP handshake. ALB goes much deeper and is capable of determining availability based on not only a successful HTTP GET of a particular page but also the verification that the content is as was expected based on the input parameters.
1
Also A doesn't offer what bellow in C offers...
Configure an Auto Scaling action to replace unhealthy instances
1
Answer is C
A solution architect can use Amazon EC2 Auto Scaling health checks to automatically detect and replace unhealthy instances in the EC2 Auto Scaling group. The health checks can be configured to check the HTTP errors returned by the application and terminate the unhealthy instances. This will ensure that the application's availability is improved, without requiring custom scripts or code.
1
Option C is the right answer.