如果这个问题之前已经回答过,请原谅;我的谷歌技能让我失望了。
如果这是新手的问题,我深感抱歉。
我们计划使用 AWS 云结构通过我们的公共 API 来推动一些负载测试。
我们的 API 位于负载均衡器后面,负载均衡器根据请求者的源 IP 等做出决策。
假设我们拥有由一千台 EC2 VM 组成的云,每台都向我们的公共 API 发出请求,这些请求者看起来是来自同一个位置,还是都有不同的源 IP 地址?我们担心我们的负载均衡器可能无法按照现实世界的方式运行。
答案1
来自实例的请求将显示该特定实例的公共 IP。
唯一的例外是私有 VPC 子网中的实例,它将显示其 NAT 实例的 IP,因为私有 VPC 实例没有面向外部的 IP。
答案2
AWS EC2 实例在启动时会分配一个静态 IP 地址。每次重新启动实例时,此地址都会更改。
如果您想要特定实例的永久 IP 地址,则需要获取弹性 IP 地址。这可以映射到特定实例。这些 IP 在公共端是 1:1 NAT。您可以在 AWS 控制台中将 IP 分配给实例。
看:
http://aws.amazon.com/articles/1145?_encoding=UTF8&jiveRedirect=1#10
答案3
我认为 ceejayoz 给出了正确的答案,但我只想澄清一点,您的 API 服务器位于负载均衡器后面这一事实无关紧要。无论是否存在负载均衡器,API 服务器都会看到客户端的 IP。负载均衡器所做的只是为客户端提供 API 的单一入口点,当然还会在多个 API 服务器之间平衡请求。
如果客户端位于共享公共 IP 后面的私有网络上(如 ceejayoz 的 VPC 示例),则 API 服务器将只能看到共享公共 IP,除非 API 负载均衡器也在同一个私有网络上,除非您也拥有客户端,否则这种情况极不可能发生。