【问题标题】:gRPC in AWS Elastic Beanstalk load balancer / network setupAWS Elastic Beanstalk 负载均衡器/网络设置中的 gRPC
【发布时间】:2022-08-10 10:19:31
【问题描述】:

我已经在这几天了,只是想不通。

我已经在 node.js 中的 gRPC 和 Elastic Beanstalk 上的 java 中尝试过这个。在普通的 VPS 上,它非常简单,只需创建一个代理 grpcpass 并设置它。我想将我的微服务移至 AWS Elastic Beanstalk,但无法连接 gRPC。

我做了什么:

  1. 在 Elastic Beanstalk 上创建了一个新的 Java 环境并部署了我的服务。 gRPC 服务器位于端口 9086 上。
  2. 我浏览了网络,发现最接近教程的是New – Application Load Balancer Support for End-to-End HTTP/2 and gRPC,但它不包括如何为实例设置 gRPC 的负载平衡器。
  3. 使用指南,我对目标组进行了一些更改,如下所示:

    使用实例配置创建目标组

    我尝试使用 http 和 https 为端口 9086 构建目标组,

    创建目标组后,我在目标组上注册了实例

    之后,我去负载均衡器并在端口 443 上创建了一个侦听器并将其转发到目标组。端口 443 在安全策略上也是开放的。

    将其指向分配给 url 的 AWS 证书的安全侦听器设置。

    我已经在端口 9086 上的目标组上尝试了 http 和 https,但是我的所有 gRPC 客户端调用都失败,状态为 13 或 14,这意味着请求没有通过。我已在日志中确认 gRPC 服务器已启动并正在运行。

    有人知道我在这里哪里出错了吗?我觉得我缺少一些简单的东西,只是找不到任何关于正确设置方法的教程或文档。我想要在 AWS Elastic Beanstalk 上做的事情是否可行?

    标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk grpc aws-application-load-balancer


    【解决方案1】:

    从我在您的屏幕上看到的内容来看,您的 ALB 目标已添加,但它们未通过运行状况检查。意思是,他们还不允许接受任何流量。

    您可以在本文的附件中找到一个很好的 gRPC 应用程序示例,其中包含已实施的运行状况检查:

    https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-a-grpc-based-application-on-an-amazon-eks-cluster-and-access-it-with-an-application-load-balancer.html#attachments-abf727c1-ff8b-43a7-923f-bce825d1b459

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-21
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 2018-04-23
      • 2014-02-11
      相关资源
      最近更新 更多