Glowroot - GRPC、SSL 和 AWS

Glowroot - GRPC, SSL, and AWS

我有一个成功地 运行s Glowroot Agent 的应用程序。我正在尝试为代理设置一个 Glowroot 收集器以与之通信。

在我的本地环境中,我 运行 glowroot.local.mydomain.com 的收集器使用自签名证书,gRPC 通过位于 Glowroot 前面的 NGINX 代理使用 SSL,每个都有自己的 Docker容器。这很好用。

我的问题出现在我部署到 AWS 时。对于我们的其他(大型)应用程序,我们 运行 在 EC2 上,前面有一个 ALB,使用来自 ACM 的证书,SSL 在 LB 处终止。

我正在尝试对 Glowroot 做同样的事情 - 运行在 glowroot.staging.mydomain.com(最终在 glowroot.mydomain.com) - 但考虑到 Glowroot 需要 gRPC,这反过来需要 HTTP/2,我无法让它与 ALB 一起工作,因为 ALB 总是将 HTTP/2 请求转换为 HTTP/1.1.

我看过经典 LB,但它们不执行 SSL 终止,这是一个明显的问题,我无法让 NLB 工作。

有没有人有解决此类问题的经验?我已经看到,如果 gRPC 请求来自浏览器,那么 gRPC-Web 是一个选项,但如果请求来自另一个服务(在本例中为 Glowroot 代理)怎么办?

所以我最终通过 运行 Glowroot 在没有负载平衡的 EC2 上解决了这个问题,运行 Traefik 作为代理,并使用 Traefik 与 Lets Encrypt for SSL 的非常简单的集成。