大咖专栏 | 使用AWS ALB实现基于主机名的路由分发
大咖专栏
大咖专栏主要刊登亚马逊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、添加/编辑规则
……等内容
请感兴趣的小伙伴点击“阅读原文”
或扫描/长按识别下方的二维码
阅读完整版文章