3

I discovered that configure HTTPS on the AWS applications LB is the easiest way to secure my website and even use HTTP/2 with HTTPS listeners.

But, surprisingly, when AWS Application LB distribuite the requests across the servers, all the requests are converted in HTTP/1.1.

I understand that I'll notice fewer connections between clients and the load balancer but all the requests behind the Application LB were sent in HTTP/1.1.

So the question is, what are in your opinion the drawbacks of this solution?

Could I effectively say that my website is served in HTTP/2 (even if I can't use the server-push feature)?

freedev
  • 25,946
  • 8
  • 108
  • 125
  • First, only the newer Application Load Balancers support HTTP/2. Where are you seeing it documented that Application Load Balancers can only communicate with the back-end servers via HTTP/1.1? – Mark B Mar 14 '17 at 17:28
  • 1
    @MarkB In the question I have referenced the [AWS documentation](http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#listener-configuration) with a link. In my question (as in the title) I refer clearly to Application load balancer. – freedev Mar 14 '17 at 17:31
  • Thanks, I missed your link. – Mark B Mar 14 '17 at 17:37
  • The balancer nodes reuse connections, holding open a handful of spare kept-alive connections to the instances, and use them to distribute the parallel requests across the instances. This is better load sharing than what you'd have native HTTP/2 on the instances. I don't see the concern. – Michael - sqlbot Mar 14 '17 at 23:37
  • @Michael-sqlbot Thanks for your comment. To be clear, is not a concern, it is just to understand what's happening under the hood. For example, I realise the reuse of connection, but in this way the web application is still remain HTTP/1.1. What do I loose, only the server-push feature? – freedev Mar 15 '17 at 08:13
  • 1
    I see. From the browser's perspective, the site speaks HTTP/2. I can't authoritatively say that server push is the *only* thing you'd lose... but I don't look at it as a "lose" proposition -- I see it as gaining capabilities over end-to-end HTTP/1.x. If you want to deploy HTTP/2 on your instances directly, you can always use an ELB Classic to spread the connections across back-ends, and what you lose there is the scattering of requests across backends, because each browser makes only one connection through one balancer node to one instance. – Michael - sqlbot Mar 15 '17 at 10:37

0 Answers0