ELB IP 地址更改和长期连接

ELB IP address change and long living connections

我知道 ELB 后面的 IP 地址可能会及时更改,可以根据我们目前的流量模式添加和删除新的 IP 地址。

我的问题是 - 这如何与长期生活联系一起工作,例如网络套接字?假设我与 ELB 后面的 Web 服务有持久的 websocket 连接。当 AWS 更改我当前连接的 ELB 的 IP 地址,将其替换为其他 IP 地址时,会发生什么情况?我在 AWS 文档中找不到好的答案。

谢谢, 沃文

When AWS changes the ELB's IP address I'm currently connected to, replacing it with some other, what will happen? I cannot find a good answer in AWS docs.

一般情况下ELB的IP会发生变化有两种情况:

  1. 底层 ELB 故障

将 ELB 视为一个可扩展的负载均衡器集群,所有负载均衡器都可以在单个 DNS 名称下寻址,每个都有一个 IP 地址。如果一个节点死亡(例如由于底层硬件故障),IP 将从 DNS 记录中删除并替换为新节点。

在失败时连接到它的客户端将失去连接并且应该处理重新连接。它不会自动路由到 ELB 的 'healthy' 部分。

  1. 交通变化

如果 ELB 扩大或缩小 - 由于流量配置文件的修改 - 如上面 forum post 链接中所述,连接将继续运行一段时间,但不能保证期间(最小或最大)。这在 LB 快速扩展以满足负载("cliff face" 样式)的情况下尤其值得注意,因为 'old' ELB 节点可能不堪重负(或变得不堪重负)并且它们处理流量的能力受损。

随后这确实意味着开发人员需要在客户端处理这两种情况下的重新连接。