得到一个很快的问题,这可能是完全愚蠢的,但它是在清晨。所以我有一个标准的AWS VPC,带有ELB,NAT实例和2x EC2实例,用于应用程序代码。通过图像的外观,互联网网关传递ELB和NAT实例的流量。我的问题是为什么不是ELB前面或后面的NAT实例?看起来这个VPC中的单个瓶颈可能是NAT实例,如果所有流量都通过那里。
答案 0 :(得分:16)
NAT(网络地址转换)服务器用于为私有子网中的Amazon EC2实例提供 出站 Internet连接。
传入流量将通过负载均衡器进入,此流量的任何响应也将通过负载均衡器退出。 Elastic Load Balancing服务会根据流量自动扩展(转移的流量也会收费)。
如果私有子网中的EC2实例希望启动与Internet的连接(例如,下载更新或与Amazon S3通信),则它无法将“流量”发送到负载均衡器。相反,子网将配置为路由到NAT服务器的流量,它充当从Internet请求数据的代理。
NAT服务器可能会成为瓶颈。如果是这样,请修改实例以使用更大的实例类型 - 这不仅会增加CPU和RAM,还会增加网络带宽。
在某些情况下,人们可能还会将NAT服务器用于传入流量 - 作为跳转框用于管理目的(登录到某个实例)私有子网)或将特定端口转发到私有服务器(通过端口转发)。但是,出于安全性和管理目的,最佳做法是将这些功能分离到不同的实例。
其他信息:自撰写此答案以来,AWS引入了可自动扩展的Managed NAT Gateway。它是在单个AZ中创建的,因此您可能希望在两个AZ中运行它以实现高可用性。
答案 1 :(得分:0)
我不确定它是如何工作的,如果loadbalacer在APP层上终止,那么在这些子网中启动的实例将使用IGW而不是NAT实例配置路由表,which raises a question how to make outbound traffic on the public network which is configured over a loadbalalncer