如何配置AWS Network Load Balancer以实现端到端HTTPS加密,同时保持会话亲和力?

时间:2019-01-28 14:07:33

标签: amazon-web-services https tcp load-balancing session-affinity

我有一个VPC,其中两个EC2实例位于不同的可用区域中。客户端通过HTTPS连接到我的应用程序。我一直在尝试在两个需要会话亲缘关系的应用程序节点之间建立负载平衡。

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

经过一番调查,我确定网络负载平衡器可能能够提供端到端加密,但是我不确定如何获得会话亲和力。我已经读到,可以通过散列客户端连接详细信息并继续将所有将来的连接路由到同一节点,直到达到超时值来完成此操作,但是this问题似乎表明它不可能完全解决,但实际上并没有详细介绍。

我将如何在网络负载平衡器中获得会话亲缘关系?如果无法实现,我将如何使用AWS负载平衡器建立端到端加密?

2 个答案:

答案 0 :(得分:1)

不能。 NLB does not support sticky sessions,虽然您也可以在TCP模式下使用传统的负载平衡器在应用程序上终止TLS,但可以使用传统的负载平衡器require HTTP/HTTPS mode for stickiness。如果实际需要严格的端到端(E2E),则需要将应用程序设计为在没有会话亲缘关系的情况下运行。

答案 1 :(得分:0)

可能是拼写错误,但Target Groups for Your Network Load Balancers的底部指出:

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

这让我感到很奇怪。其他可能的解释(除了错别字)是(1)全新且即将推出,以及(2)欧盟法规要求(但最初是在美国西部开发的)。