详解SLB、EIP、NAT网关,合理选择云上公网入口
开始
阿里云的公网入口产品共有三个,SLB、EIP、NAT网关,这几个产品都可以作为云上资源的公网入口,他们之间有何区别,又分别应该在什么场景下使用呢?
概念
负载均衡SLB
对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。
可见云计算中的负载均衡除了通过流量分发让后端的服务器负载均衡,还有两个重要的用途,一就是消除单点故障,因为一般负载均衡后端挂载有多台ecs服务器,当某一台不工作时,系统的可用性不会受到影响;二是通过多台后端服务器一起工作,以扩展应用系统的整体处理能力。
拿刚刚过去的双十一举例,大家都知道,2017年双11又创造了新纪录,全天交易额1682亿,交易峰值32.5万笔/秒,支付峰值25.6W笔/秒,如此海量的访问请求,是再强大的服务器也无法支撑的,因此需要n多台服务器一起来提供服务,而这些服务器的调度都需要依赖负载均衡SLB,负载均衡SLB接收到用户的请求,智能调度到后端的服务器进行处理,并将处理后的结果返回给用户,完成了单台服务器不可能完成的任务。
注意:负载均衡SLB仅提供被动访问公网的能力,即后端ECS只能在收到通过负载均衡SLB转发来的公网的请求时,才能访问公网回应该请求,不具备NAT功能。
弹性公网IP(EIP)
独立的公网IP资源,可以绑定到阿里云专有网络VPC类型的ECS、NAT网关、私网负载均衡SLB上,并可以动态解绑,实现公网IP和ECS、NAT网关、SLB的解耦,满足灵活管理的要求。
早期的弹性公网IP,只能绑定ECS,其主要目的是为了解耦服务器IP与服务器实体之间的强关联,设想这样的情况。在业务发展初期,访问量较小,用户购买一个较小规格的ECS实例即可满足业务需求,但随着用户量和业务量逐渐攀升,不可避免的需要更换更大规格的ECS或者,使用SLB+ECS便于后续的扩展,如果没有弹性公网EIP,更换ECS意味更换实例IP,这样一来,不可避免的会出现业务的中断,而EIP的出现就很好的解决了这类问题。现在EIP不仅仅能够绑定ECS、还可以绑定SLB(私网SLB)和NATGW,并且能够使用共享带宽,和共享流量包,通过增强95带宽计费、闲时流量计费等特性,更加有效的节约云上公网的成本,更多EIP详细信息请参考弹性公网IP及帮助文档。
注意:EIP只能绑定一台ECS,同时提供访问公网和被公网访问的能力。
NAT网关
帮助您在VPC环境下构建一个公网流量的出入口,通过自定义SNAT,DNAT规则灵活使用网络资源,支持多IP,支持共享公网带宽。
当您的VPC中有众多ECS需要访问公网时,针对每个ECS购买公网带宽,或每个ECS都配置一个EIP,将是一件非常令人烦恼的事情,在配置和对账管理上都比较麻烦,NAT网关就是用来解决这个问题的,可以把NAT网关想象成您家中的路由器,不论是PC、手机、PAD、TV或任何需要连接Internet的设备,只要连到路由器,就可以通过路由器访问公网了,这就是NAT网关里面的SNAT功能。NAT网关还有DNAT功能,可以让VPC内的ECS实例通过NAT网关被Internet主动访问,这里不在展开,详情可以参考NAT网关产品及产品帮助文档。
注意:NAT网关可以同时让多台ECS具有访问公网和被公网访问的能力,单没有流量分发、负载均衡的能力。
组网示意图及流量路径
如上图所示,可以看到几种公网入口的流量路径,总体来说,满足如下原则:
流量从哪里进来,就从哪里出去!
通过负载均衡进入的流量在负载均衡SLB上限速/计费,仅收取出方向流量费用,入方向流量不收取(在未来可能会改变),SLB到ECS之间是阿里云内网通信,不收取流量费用。
来自弹性公网IP/NAT网关的流量,分别在弹性公网IP/NAT网关上进行限速/计费,详情参考弹性公网IP和NAT网关;如果在购买ECS时选择了公网带宽,限速/计费点在ECS上。
负载均衡SLB仅提供被动访问公网的能力,即后端ECS只能在收到通过负载均衡SLB转发来的公网的请求时,才能访问公网回应该请求,如后端ECS希望主动发起公网访问,则需要配置/购买ECS公网带宽、弹性公网IP或NAT网关来实现。
ECS公网带宽(购买ECS时配置)、弹性公网IP、NAT网关均可以实现ECS的双向公网访问(访问或被访问),但没有流量分发和负载均衡的能力。
SLB和后端ECS之间是通过内网进行通信的,所以如果ECS仅仅处理来自负载均衡的请求,那么可以不需要额外购买公网带宽(ECS公网带宽/弹性公网IP/NAT网关等)。