AWS's older 'Classic' load balancers have the ability to set a proxy protocol policy, which adds the external IP address of a request to a HTTP header for the internal requests.
AWS's newer Application Load Balancers don't seem to have this same functionality. Is this correct, or is it something that can be enabled?
And if it's not an option, then is reverting to a classic load balancer recommended? I feel that there's a push to use the newer load balancer types, so it doesn't feel wise to get so attached to the classic approach.
When you create a new Load Balancer, or when managing an existing one, you can activate Proxy Protocol by checking a box in the “Advanced settings” section. If you're automating management of your infrastructure, you can also toggle the Proxy Protocol setting via our Load Balancer API.
ALB only supports HTTP/ HTTPs Listeners. That's the reason Proxy Protocol is present in Classic ELB, but not in ALB.
A: An Application Load Balancer supports load balancing of applications using HTTP and HTTPS (Secure HTTP) protocols.
To enable proxy protocol, you must create a policy of type ProxyProtocolPolicyType and then enable the policy on the instance port.
The Proxy Protocol header helps you identify the IP address of a client when you have a load balancer that uses TCP for back-end connections.
Proxy Protocol works in L4 (TCP) and Application Load Balancer only works on L7. ALB only supports HTTP/ HTTPs Listeners.
That's the reason Proxy Protocol is present in Classic ELB, but not in ALB.
Regarding the second question what load balancer to use this depends on scenario what you are using it for , you can read this thread that will enlighten you on up gradation of each CLB to NLB/ALB.
Hope this helps !
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With