Search code examples
amazon-web-servicesnetwork-programmingload-balancinggrpcamazon-elb

Load balancing gRPC requests using one of AWS Load Balancers


I'm trying to work out whether I could use one of the (A/E/N)LBs to load balance gRPC traffic. A simple round robin would suffice in our case.

I've read that ALB doesn't fully support HTTP2 and therefore can't be used with gRPC. Specifically lack of support of sending HTTP2 traffic downstream and lack of support for trailer headers was mentioned. Is it still true?

Couldn't find any definitive answers with regards to NLBs or "classic" ELBs. Any hints?


Solution

  • As of October 29, 2020, Application Load Balancers now support HTTP/2 and gRPC load balancing. From the announcement:

    To use the feature on your ALB, choose HTTPS as your listener protocol, gRPC as the protocol version for your target group and register instance or IP as targets for the configured target group. ALB provides rich content based routing features that will let you inspect gRPC calls and route them to the appropriate target group based on the service and method requested. Within a target group, ALB will use gRPC specific health checks to determine availability of targets and provide gRPC specific access logs to monitor your traffic.

    The support for gRPC and end-to-end HTTP/2 is available for existing and new Application Load Balancers at no extra charge in all AWS Regions. To learn more, please refer to the blog post, demo, and the ALB documentation.