我正在试图找出最适合我的用例的解决scheme。
假设我有10个网站在我的VPC中托pipe。 这些网站中的每一个都需要位于Elastic Load Balancer之后。 根据我的理解,每个ELB需要分配一个弹性IP(EIP)。 我还创build多可用区域NAT实例,以允许从我的实例到VPC之外的通信(这些也需要与它们相关联的EIP)。 此外,我还有一些我需要创build的小型网站(博客,内部工具等),我已经指定了一些EIP。
我是否应该按照自己的意愿分配这些EIP(我将不得不根据地区EIP限制要求更多的EIP),还是应该以更好的方式设置这些网站?
我可以使用基于名称的虚拟主机设置这些,并有一个ELB路由stream量,并根据域名select正确的文档根。
有什么其他types的解决scheme我可以考虑? 像某种Route53解决scheme,将stream量发送到基于域的正确负载均衡器?
正如评论中所述,ELB不使用弹性IP地址(EIP)。 此外,ELB后面的实例通常不需要公共IP地址 – 入站,它们通过ELB(它也接收它们的回复stream量,将请求转发给请求者)和出站访问 – 用于后端服务请求,实例可以使用NAT实例来访问Internet。
在创buildELB时,会将主机名分配给负载平衡器。 该主机名映射(内部)到一个或多个 IP地址,从公共池中dynamic分配,至less一个ELB与子网关联的可用区的IP地址。 由于ELB自动按照负载进行扩展,并且这些地址是dynamic的,所以您不能直接将stream量指向这些IP地址。
“一个”弹性负载均衡器实际上是一个或多个负载均衡器实例的集群,每个负载均衡器实例都有一个公有和私有IP地址,它们都具有完全相同的configuration和行为。 这些实例在很大程度上是不可见的,由AWSpipe理,无论基础架构决定您需要多less实例,它们都包含在ELB价格中,以便为您提供负载。 (您的费用仅取决于带宽)。
由于ELB的dynamic特性,您需要通过DNSconfiguration将stream量路由到ELB端点,以命中分配给ELB的主机名(它不在您的Web服务器中configuration,仅在DNS中使用)。 如果网站是域名中的主机名,例如www.example.com www ,那么您可以在DNS中使用CNAME,DNS可以在任何地方托pipe…但如果网站位于区域顶点(如example.com ),则需要使用Route 53来托pipe您的DNS,以便您可以使用别名Alogging将站点的stream量路由到您的ELB。 (所有主机名都可以使用别名logging,但只有在区域顶点才需要,而CNAMElogging无效)。 如果有别名,则路由53将针对您的ELB返回一个有效的IP,并使用短TTL响应每个请求。
EC2实例可以与任意数量的ELB相关联,但是一个ELB只能向一组实例发送请求–ELB不会根据任何标准来select实例,只能在与其关联的所有健康实例之间平衡负载。
如果您的网站没有使用SSL,那么您可以在一个或多个实例上使用单个ELB托pipe网站,使用虚拟主机configuration来提供正确的内容…但是需要准备连接到单个ELB的所有实例服务于所有网站的内容。
如果您的网站使用SSL,那么您需要每个SSL证书一个ELB。 如果SSL证书是通配符或多域“UCC”证书,那么您可能仍然只需要一个ELB …但是如果您需要多个证书,则每个证书需要一个ELB,尽pipeELB仍然可以只要所有这些实例准备好为所有站点提供服务,就可以使用一组常见的EC2实例的前端。
(有透明的TCP模式涉及ELB的替代configuration和理解PROXY协议和SNI的Web服务器,但是我build议这些是超出问题范围的高级主题)。
无论如何,你都会通过做最多的东西来学习。 build立一个ELB,从观察来看,它应该更加明显。
还要注意的是,在configurationELB时,有些违反直觉的是,将ELB放置在与实例相同的子网上往往是错误的。 ELB必须在“公共”子网上,默认路由指向VPC路由表中的igw-xxxxxxxx因特网网关对象,但是你的实例,因为它们只需要从ELB访问而不是互联网,可以进入“私人”子网。 与传统的networking不同,路由器可能是一个阻塞点,VPC中的“路由器”实际上用于所有stream量,即使是在同一个子网上,所以设备在不同子网上的性能不会受到影响。
我还创build多可用区域NAT实例,以允许从我的实例到VPC之外的通信
ELB背后的networking服务器不需要这个function。 就Web服务器而言,您的访问日志将显示此内容,所有访问都将来自您configurationELB要占用的子网中的内部私有IP地址。 在sorting中,它会显示ELB的地址。 此stream量不以任何方式过境NAT网关。
他们将需要出站访问服务器自身所依赖的任何外部服务,并且需要为打补丁提取包。 这样的访问可能不需要多可用区域networkingNAT的HA设置。