2

我有一个 VPC,在不同的可用区中有两个 EC2 实例。客户端通过 HTTPS 连接到我的应用程序。我一直在尝试在需要会话亲和性的两个应用程序节点之间设置负载平衡。

最初,我使用带有粘性会话的 Application Load Balancer。这行得通,但我最近发现我正在处理的项目需要从客户端到应用程序节点的不间断端到端加密。因为 ALB 必须解密连接以执行基于 cookie 的路由,所以它无法满足此要求。即使我重新加密了 ALB 和 EC2 之间的连接,它仍然不是端到端的。

经过一番调查,我确定网络负载均衡器可能能够提供端到端加密,但我不确定如何获得会话亲和性。我读过它可以通过散列客户端连接详细信息并继续将所有未来连接路由到同一节点直到达到超时值来完成,但这个问题似乎表明它完全不可能,但没有真的很详细。

我将如何在网络负载均衡器中获取会话亲和性?如果这无法实现,我将如何使用 AWS 负载均衡器建立端到端加密?

4

2 回答 2

3

编辑:NLB 现在支持粘性会话

老答案:你不能。NLB 不支持粘性会话,虽然您也可以在 TCP 模式下使用经典负载均衡器来终止应用程序的 TLS,但经典负载均衡器需要 HTTP/HTTPS 模式来实现粘性。如果严格的 E2E 是实际要求,则您需要将应用程序设计为在没有会话关联的情况下工作。

于 2019-03-21T19:29:33.760 回答
0

这可能是一个错字,但您的网络负载均衡器的目标组的底部指出:

仅以下区域支持粘性会话:欧洲(巴黎)、欧洲(爱尔兰)、欧洲(斯德哥尔摩)和美国西部(俄勒冈)。

这让我觉得这是一个非常奇怪的清单。其他一些可能的解释(除了错字)是(1)全新且即将推出;(2)欧盟法规要求(但最初在美国西部开发)。

于 2020-04-22T20:27:18.443 回答