专栏名称: 亚马逊云科技
亚马逊AWS的公众号,第一时间获取关于AWS国内外服务的资讯。AWS中国(北京)区域由光环新网运营。
目录
相关文章推荐
Python爱好者社区  ·  月薪3万35岁脑干出血程序员:ICU躺了28 ... ·  2 天前  
Python爱好者社区  ·  软考,yyds ·  2 天前  
Python爱好者社区  ·  Science披露:近3年,垃圾论文激增,9 ... ·  3 天前  
闹闹每日星运  ·  星历0607:天秤要学会拒绝 天蝎多参加活动 ·  2 天前  
闹闹每日星运  ·  最能给彼此安全感的星座配对 ·  2 天前  
51好读  ›  专栏  ›  亚马逊云科技

大咖专栏 | 使用AWS ALB实现基于主机名的路由分发

亚马逊云科技  · 公众号  ·  · 2017-05-24 18:10

正文

请到「今天看啥」查看全文


王世帅负责基于AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内教育、医疗行业的应用和推广。在加入AWS之前他曾在国航担任系统工程师,负责存储方案的架构设计,在企业私有云方面有丰富经验。

负载均衡器在应用架构设计中是重要的组件,负责接收来自客户端的流量,将流量按一定的算法转发给后端的一组实例,并将后端实例的响应再返回给客户端。AWS提供一款托管的负载均衡服务, Elastic Load Balancer(简称ELB),ELB除了能够做负载均衡分发流量之外,还能对后端的实例健康检查,并将流量仅转发给通过健康检查的实例;同时ELB还能与自动扩展组(Auto Scaling Group)以及监控服务(CloudWatch)配合,设置根据后端实例CPU使用率的高低、流量大小、处理时间长短等指标,自动完成添加或缩减实例数量。


ELB又分两种,Classic ELB和Application Load Balancer(简称ALB)。ELB的一个重要组件是侦听器,前者支持4层和7层的协议和端口(TCP,SSL,HTTP,HTTPS),对后端实例按轮询(TCP协议)或者最少未完成请求数(HTTP协议)的算法对后端实例进行流量转发。


ALB是应用层负载均衡器,支持HTTP/HTTPS的协议,与Classic ELB不同的是,ALB支持基于请求路径的分发,即根据HTTP标头的请求URL路径的不同,分发给后端不同的目标组(Target Group)。目标组是一个或多个目标(这里的“目标”可以是EC2实例)的集合,通常一组目标运行相同的应用或服务,一个目标可以注册到一个或多个目标组中。在目标组中可以配置运行状况检查,实例监控,等待连接耗尽及粘性会话等等。ALB中的规则决定了如何将流量路由到后端不同的目标组,每条规则对应一个目标组、条件及优先级,一旦匹配规则,则执行相应的流量路由,比如将请求URL中路径是/api的请求路由给运行api服务的目标组,将请求URL中路径是/mobile的访问路由给mobile的目标组。


两者的转发模型可见下图。

过去ALB仅支持基于请求路径的流量分发,客户为了实现基于主机名的分发往往使用多组Classic ELB或Classic ELB + Nginx集群的方式,现在ALB提供了新功能,即可以基于主机名进行路由分发,详情请参考:


https://aws.amazon.com/cn/elasticloadbalancing/applicationloadbalancer/


接下来,我们将详细介绍如何使用ALB完成基于主机名的流量分发。


本例中我们将创建以下资源:

(1) 1个ALB;

(2) 5个目标组,分别为api-prod,api-sandbox,mobile-prod,mobile-sandbox,default;

(3) 每个目标组注册不同的EC2实例,其中api-prod目标组将注册两个EC2实例;







请到「今天看啥」查看全文