查看原文
其他

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

2017-05-24 AWS云计算


大咖专栏

大咖专栏主要刊登亚马逊AWS诸位大咖亲自撰写的Blog,内容涉猎广泛,话题讨论前沿,且与实战紧密相连。我们非常欢迎小伙伴们在评论区留言,与大咖互动交流!


今天为大家撰文的大咖,是我们的AWS解决方案架构师——王世帅老师。

王世帅

AWS解决方案架构师

王世帅负责基于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实例;

(4)一个侦听器;

(5)创建基于主机名和路径的分发规则,实现流量的分发。

1

创建目标组

2

输入目标组名称,选择协议(HTTP/HTTPS)及端口,ALB所在的VPC,配置运行状况检查(协议,路径,阈值等)。

此处我们选择了默认HTTP,路径/。

3

注册实例

目标组的重要实体是目标(比如说EC2实例),在此将实例注册到目标组下面,注意选中实例后点击”添加到已注册”,然后保存。此处我们选中了该目标组对应的实例ALBDemo_api_prod,ALBDemo_api_prod_2两个实例。您可以向一个或多个目标组注册多个目标实例以便满足需求。只要注册过程完成且新注册的目标实例通过初始运行状况检查,负载均衡器就会开始将请求路由至此目标。同样,您也可以从目标组取消目标注册。

同理创建api-sandbox,mobile-prod,mobile-sandbox,default目标组,此处省略创建过程。


创建完成后,选中目标组,在目标页我们可以看见注册到该目标组的实例的状态,healthy表示实例正常,另外该状态还有unhealthy(实例未通过健康检查),initial(实例注册中),unused(无流量传入,该目标组未注册到ALB)等。

4

创建负载均衡器

下面我们来创建ALB

5

选择ELB类型

这里我们选择应用程序负载均衡器ALB

在接下来的内容里,我们会介绍:

6、配置负载均衡器

7、配置安全设置

8、配置安全组

9、配置路由

10、注册目标

11、审核

12、配置规则

13、添加/编辑规则

……等内容


请感兴趣的小伙伴点击“阅读原文

或扫描/长按识别下方的二维码

阅读完整版文章


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存