将 AWS 负载均衡器用于 HTTPS 和 SSH

时间:2021-03-11 12:47:46

标签: amazon-web-services gitlab amazon-elb aws-application-load-balancer

我计划在 AWS 上托管 GitLab 实例。 我唯一的问题是前端负载均衡器。

对于 git 工作,我们需要 HTTPS 和 SSH,两者都使用相同的主机名。

  • 应用程序负载均衡器 (ALB) 支持使用 ACM 证书(我们需要)终止 HTTPS,但不支持 SSH 的 TCP 转发。
  • 网络负载均衡器 (NLB) 支持 TCP 转发,但它不是 HTTPS 的好选择。
  • 可以选择使用 Classic Load Balancer,因为它支持 HTTP、HTTPS 和 TCP 侦听器,但我真的应该在 2021 年使用它吗?并且它也不支持 HTTP/2(最好有)

我还考虑在 NLB 后面级联 ALB: 网络负载均衡器侦听 TCP 22、80 和 443,将 22 转发到 GitLab,将另外两个转发到执行 HTTPS 终止(以及 HTTP 到 HTTPS 重定向)的 ALB 但这需要使用 Lambda 进行复杂的设置,以更新 NLB 目标组中的 ALB IP,如下所述:https://aws.amazon.com/blogs/networking-and-content-delivery/using-static-ip-addresses-for-application-load-balancers/

是否有优雅的解决方案,或者我必须使用经典负载均衡器吗?

1 个答案:

答案 0 :(得分:0)

经过进一步阅读和尝试后,我得出结论,我将使用经典负载均衡器。

原因:

  • 经典负载均衡器并未正式弃用
  • AWS 在其文档中指出,支持 HTTP(S) 和 TCP 是选择经典负载均衡器的原因之一
  • 可以将网络负载均衡器用于 HTTP(S) 终止和 TCP,但网络负载均衡器不支持安全组(在我的情况下这是一个明确的要求)
相关问题