使用 ALB 在 AWS 上部署支持 gRPC 的应用程序

Deploy gRPC supporting application on AWS using ALB

我有两个使用 gRPC.Both 进行通信的微服务是部署在 ECS 上的 docker 应用程序。我如何配置它们以使用 AWS ALB?在文档中它说 ALB 支持 HTTP/2,但是我只能看到 HTTP1 设置。 我的应用程序在 8080.How 有一个 gRPC 端口和一个健康检查 API 我要在 ALB 上配置吗?

我不相信你可以。

ALB "support" HTTP2,但仅限于它们可以接受 HTTP2 并在转发到 HTTP1 之前对其进行多路分解。

您可以使用 AWS 的更新 "NLB",尽管它还有其他问题。 执行此操作的更多详细信息 https://blog.prefab.cloud/blog/grpc-aws-some-gotchas

自 2020 年 10 月 30 日起,现在可以执行此操作,因为 end-to-end 对 HTTP/2 的支持终于添加到 ALB 中。

关于此事的公告:https://aws.amazon.com/about-aws/whats-new/2020/10/application-load-balancers-enable-grpc-workloads-end-to-end-http-2-support/

查看这些博客文章以了解如何在 ECS 上进行设置:

  1. 使用 Fargate 启动类型:https://aws.amazon.com/blogs/opensource/containerize-and-deploy-a-grpc-application-on-aws-fargate/
  2. 使用 EC2 启动类型:https://dev.to/chaitan94/deploying-a-grpc-service-in-ecs-with-the-ec2-launch-type-2aa