Small note - AWS Network Load Balancers maintain the same IP addresses.
Re:HAProxy 2.4
by vladvasiliu on Sunday May 23, 2021 @10:25AM
(#27255201)
That's true, but functionality-wise, they can do much fewer things.
With an application load balancer, you can set up multiple backends, do basic redirections, do OIDC authentication, etc.
With a network load balancer, you can only spread TCP and / or UDP connections.
Yeah I was confused too. Why on earth will someone provide a load balancer if it keeps changing it's IP address as it scales?
The normal AWS load balancers are set up to stay in service as long as the cache time on their IP address having been served by DNS... (which, FWIW, I have long argued "isn't sufficient", as many ISPs in countries half a world away from the US or using tech like satellites don't honor DNS cache times and then your requests end up getting routed to someone else... I routinely got tons of HTTP requests clearly destined for someone else's product).
First to me is the ability to retain the IP address. When using AWS Load Balancer, the LB scale automatically and replace the IP.
Second is sophisiciated routing. Example route by cookie. What it buy is that by setting a cookie you can make sure the request hit a specific pool. You can also have concept of backup
Third is lots of useful metrics with their stats page.
Fourth is the ability to alter the responses such as removing header. You have to pair with lambda edge for these on AWS. What it helps is imagine you can write back the user_id to HAProxy, HAProxy log it together with the request, and delete it(so client won't see it). It helps to easily tail the log for a specific user.
And a lot of rate limiting built-in features that just take a few lines of config.