22

Does anyone have the experience using HTTP2 server behind AWS ELB running in TCP Mode?

As I know, AWS ELB does not support HTTP2 now, however, by using TCP mode, it should pass the request to the backend server transparently.

Does someone have the experience for sharing?

Thank you.

Kevingo Tsai
  • 629
  • 7
  • 21
  • with this, don't stick on ELB. Try nginx, it supports http/2. – BMW Dec 03 '15 at 06:58
  • @BMW Thanks for reply. It's workable for us using nginx to support http/2. We just want to try ELB for this scenario. Anyway, thanks for replying. – Kevingo Tsai Dec 03 '15 at 07:57
  • 1
    Stack Overflow is perhaps not best characterized as a place to "share experiences." We try to focus on specific answers to specific questions, so it might be best to just give it a shot and then come back here (or to http://serverfault.com) with specific issues you encounter. I don't see why in TCP mode it wouldn't work, though of course requests from a single browser would not be "balanced" among back-ends, they'd all go to one as long as the connection lives. You'd need to support the Proxy protocol on your back-end, and enable it on ELB, so you'd know the IP of each client, of course. – Michael - sqlbot Dec 03 '15 at 12:12
  • @Michael-sqlbot got it. Thanks. – Kevingo Tsai Dec 04 '15 at 03:32

3 Answers3

9

Yes, TCP port 443 works to bypass ELB's HTTPS, but there's no way to do session stickiness since ELB can't read the cookies over the wire.

You may also consider using h2c (HTTP/2 over cleartext).

Jayen
  • 5,653
  • 2
  • 44
  • 65
2

Supposedly the new Application Load Balancer supports HTTP/2. I'm a little unclear whether it's useful, however, if CloudFront doesn't support it yet: https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/

Karim Varela
  • 7,562
  • 10
  • 53
  • 78
  • 1
    It does now: https://aws.amazon.com/about-aws/whats-new/2016/09/amazon-cloudfront-now-supports-http2/ – Khan Sep 12 '16 at 17:56
  • 5
    it _DOES NOT_ support HTTP/2 to the origin server - only to the clients. – Ryan Dec 08 '17 at 19:30
0

ELB has no way of pipelining connections. Therefore you cannot trick it into do http2. Maybe with the new version coming out, but not sure.