如何配置 AWS 网络负载均衡器以实现端到端 HTTPS 加密,同时保持会话亲和性?
How can I configure an AWS Network Load Balancer to achieve end-to-end HTTPS encryption while maintaining session affinity?
我有一个 VPC,在不同的可用区中有两个 EC2 实例。客户端通过 HTTPS 连接到我的应用程序。我一直在尝试在需要会话亲和性的两个应用程序节点之间设置负载平衡。
最初我使用带有粘性会话的 Application Load Balancer。这行得通,但我最近发现我正在从事的项目需要从客户端到应用程序节点的不间断端到端加密。因为 ALB 必须解密连接才能执行基于 cookie 的路由,所以它无法满足此要求。即使我重新加密了 ALB 和 EC2 之间的连接,它仍然不是端到端的。
经过一些调查,我确定网络负载均衡器可能能够提供端到端加密,但我不确定如何获得会话亲和性。我读过可以通过散列客户端连接详细信息并继续将所有未来连接路由到同一节点直到达到超时值来完成,但是 问题似乎表明这是不可能的,但并没有真正深入细节。
我将如何在网络负载均衡器中获得会话关联?如果这无法实现,我将如何使用 AWS 负载均衡器建立端到端加密?
编辑:NLB now supports sticky sessions.
旧答案:你不能。 NLB does not support sticky sessions, and while you could also use a classic load balancer in TCP mode to terminate TLS at your application, classic load balancers require HTTP/HTTPS mode for stickiness。如果严格的 E2E 是实际要求,您需要将应用程序设计为在没有会话关联的情况下工作。
可能是打字错误,但 Target Groups for Your Network Load Balancers 的底部指出:
Sticky sessions are supported only in the following Regions: Europe (Paris), Europe (Ireland), Europe (Stockholm), and US West (Oregon).
我觉得这是一个非常奇怪的列表。其他一些可能的解释(除了打字错误)是 (1) 全新且即将推出和 (2) 欧盟法规要求的(但最初是在美国西部开发的)。
我有一个 VPC,在不同的可用区中有两个 EC2 实例。客户端通过 HTTPS 连接到我的应用程序。我一直在尝试在需要会话亲和性的两个应用程序节点之间设置负载平衡。
最初我使用带有粘性会话的 Application Load Balancer。这行得通,但我最近发现我正在从事的项目需要从客户端到应用程序节点的不间断端到端加密。因为 ALB 必须解密连接才能执行基于 cookie 的路由,所以它无法满足此要求。即使我重新加密了 ALB 和 EC2 之间的连接,它仍然不是端到端的。
经过一些调查,我确定网络负载均衡器可能能够提供端到端加密,但我不确定如何获得会话亲和性。我读过可以通过散列客户端连接详细信息并继续将所有未来连接路由到同一节点直到达到超时值来完成,但是
我将如何在网络负载均衡器中获得会话关联?如果这无法实现,我将如何使用 AWS 负载均衡器建立端到端加密?
编辑:NLB now supports sticky sessions.
旧答案:你不能。 NLB does not support sticky sessions, and while you could also use a classic load balancer in TCP mode to terminate TLS at your application, classic load balancers require HTTP/HTTPS mode for stickiness。如果严格的 E2E 是实际要求,您需要将应用程序设计为在没有会话关联的情况下工作。
可能是打字错误,但 Target Groups for Your Network Load Balancers 的底部指出:
Sticky sessions are supported only in the following Regions: Europe (Paris), Europe (Ireland), Europe (Stockholm), and US West (Oregon).
我觉得这是一个非常奇怪的列表。其他一些可能的解释(除了打字错误)是 (1) 全新且即将推出和 (2) 欧盟法规要求的(但最初是在美国西部开发的)。