Posted On: Oct 29, 2020
Application Load Balancer (ALB) now supports gRPC protocol. With this release, you can use ALB to route and load balance your gRPC traffic between microservices or between gRPC enabled clients and services. This will allow customers to seamlessly introduce gRPC traffic management in their architectures without changing any of the underlying infrastructure on their clients or services.
gRPC uses HTTP/2 for transport and is becoming the protocol of choice for inter-service communication for applications built on microservices based architecture. It provides the inherent benefits of HTTP/2 like lighter network footprint and compression along with features like efficient binary serialization, support for numerous languages, and bi-directional streaming. Due its performance benefits, developers have started using gRPC for client to service communication as well.
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.
This release also provides customers the ability to configure HTTP/2 as the protocol for your target groups. Doing so will enable an end-to-end HTTP/2 flow from clients to targets, providing you the benefits of HTTP/2 optimizations even when not using gRPC. If desirable, you can support any combination of gRPC, HTTP/2, and HTTP/1.1 applications behind a single ALB.
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.