我们目前有一个 AWS Fargate 服务,在 AWS 应用程序负载均衡器后面运行 Nginx。在此之前,我们还使用 Cloudflare(因此在 ACM 中拥有 Cloudflare 原始证书)。由于 ALB 终止 SSL 连接,如果您不在 Nginx 中使用自签名证书并通过 443 而不是 80 转发流量,则 ALB 和 Fargate 容器之间的流量未加密。
由于我们希望实现端到端加密(我们不需要遵循任何特定的合规性,但感觉这像是一种好的做法,而 ALB<->Fargate 之间的流量未加密则是一种错误的做法)——那么使用网络负载均衡器并终止 Nginx 中的 SSL 连接不是更好吗?这还会减少一次 SSL 握手——这可能会导致(轻微的?)响应时间减少。
问题1:在这种情况下,使用网络负载均衡器而不是应用程序负载均衡器是否是更好的选择?
问题2:这样做我们是否错过了其他“特性”或功能?感觉 AWS 确实提倡使用 ALB 而不是 NLB。
谢谢
答案1
我认为这里不需要 NLB。
第一个选项
在 Fargate 容器中的 Nginx 上安装 https 证书 - 自签名或其他。您不能使用 AWS 证书管理器,因为 ACM 不会共享 Nginx 所需的私钥。
让 ALB 连接到 https 端口。只需创建一个目标组使用 https 协议。
第二种选择
鉴于您已经信任 AWS 来虚拟化您的计算和存储,如果您没有加密的合规性需求,那么信任他们提供虚拟网络是一个合理的决定。它也可能稍微快一点。
鉴于您在问题中所说的内容,这是我建议的选项。ALB 和容器之间的 https 没有实际好处。