云计算——AWS Solutions Architect – Associate(saa)5.负载均衡
一、什么是负载均衡
负载均衡器在应用架构设计中是重要的组件,负责接收来自客户端的流量,将流量按一定的算法转发给后端的一组实例、并将后端实例的响应再返回络客户端。
AWS提供一款托管的负载均衡服务, Elastic Load Balancer(简称ELB),ELB除了能够做负载均衡分发流量之外,还能对后端的实例健康检查。并将流量仅转发给通过健康检查的实例,同时ELB还能与自动扩展组(Auto Scaling Group)以及监控服务(CoudWatch)配合,设置根据后端实例CPU使用率的高低,流量大小,处理时间长短等指标,自动完成添加或缩减实例数量。
二、ELB中负载均衡器的类型
1.Application Load Balancer
如果使用 HTTP 和 HTTPS 流量的应用程序需要灵活的功能集,请选择 Application LoadBalancer。Application Load Balancer 在请求级别运行,面向包括微服务和容器在内的应用程序架构提供高级路由功能和可见性功能。
2.Network Load Balancer
如果需要超高性能、大规模分载 TLS、集中部署证书、UDP 支持以及将静态 IP 地址用于应用程序,请选择网络负载均衡器。网络负载均衡器在连接级别运行,每秒钟能够安全地处理数百万个请求,同时维持超低延迟。
3.Gateway Load Balancer
如果需要部署和管理一系列支持 GENEVE 的第三方虚拟设备,请选择一个 Gateway LoadBalancer。这类设备可帮您增强安全性、合规性和策路控制。
不同负载均衡器之间的比较
功能 | Application Load Balancer | Network Load Balancer | Gateway Load Balance |
负载均衡器类型 | 第7层 | 第4层 | 第 3层网关+第4层负载均衡 |
目标类型 | IP、实例、Lambda | IP、实例 | IP、实例 |
协议侦听器 | HTTP、HTTPS、 gRPC | TCP、UDP、TLS | IP |
获得方式 | VIP | VIP | 路由表条目 |
三、各类负载均衡器的功能
1、应用程序负载均衡器的功能
支持基于路径的路由。对于根据请求中的 URL 转发请求的侦听器,您可以为它配置规则。这让您可以将应用程序构造为较小的服务,并根据 URL 内容将请求路由到正确的服务。
支持基于主机的路由。对于基于 HTTP 标头中主机字段转发请求的侦听器,您可以为它配置规则。这使您能够使用单个负载均衡器将请求路由到多个域。
支持基于请求中的字段进行路由,例如标准和自定义 HTTP 标头和方法、查询参数和源 IP 地址。
支持将请求路由到单个 EC2 实例上的多个应用程序。可以使用多个端口向同一个目标组注册每个实例或 IP 地址。支持将请求从一个 URL 重定向到另一个 URL。
支持返回自定义 HTTP 响应。
支持通过 IP 地址注册目标,包括位于负载均衡器的 VPC 之外的目标.
支持将 Lambda 函数注册为目标。
支持负载均衡器在路由请求之前使用应用程序用户的企业或社交身份对这些用户进行身份验证。
支持容器化的应用程序。计划任务时,Amazon Elasti container Service(Amazon ECS)可以选择一个未使用的端口,并可以使用此端口向目标组注册该任务。这样可以高效地使用您的群集。
支持单独监控每个服务的运行状况,因为运行状况检查是在目标组级别定义的,并且许多 CouoWatch 指标是在目标组级别报告的。将目标组挂载到 AutoScaling 组的功能使您能够根据需求动态扩展每个服务。
2、网络负数均衡器的功能
可以处理急剧波动的工作负载,并可以扩展到每秒处理数百万个请求。
支持将静态 IP 地址用于负载均衡器。还可以针对为负载均衡器启用的每个子网分配一个弹性 IP 地址。
支持通过 IP 地址注册目标,包括位于负载均衡器的 VPC 之外的目标。
支持将请求路由到单个 EC2 实例上的多个应用程序。可以使用多个端口向同一个目标组注册每个实例或 IP 地址。
支持容器化的应用程序。计划任务时,Amazon Elastic Container Service (Amazon ECS)可以选择一个未使用的端口,并可以使用此端口向目标组注册该任务这样可以高效地使用您的群集。
支持单独监控每个服务的运行状况,因为运行状况检查是在目标组级别定义的,而且许多 Amazon Cloudwatch 指标也是在目标组级别报告的。将目标组挂载到Auto Scaling 组的功能使您能够根据需求动态扩展每个服务。
3、网关负载均衡器的功能
Gateway Load Balancer与AWS Auto Scaling组协同工作,允许您为虚拟设备实例设置目标利用率级别。这确保您在任何时候都有最佳的可用资源数量。当流量增加时,将创建更多实例并连接到网关负载均衡器。当流量恢复到正常水平时,这些实例将被终止。
网关负载均衡器通过将流量路由到健康的虚拟设备,并在虚拟设备变得不健康时重新路由流,确保高可用性和可靠性。为了确保虚拟设备可用且健康,GatewayLoad Balancer按可配置的节奏对每个虚拟设备实例运行运行状况检查。如果连续失败的测试数量超过设置的闹值,设备将被声明为不正常状态,流量将不再路由到该实例。
网关负载均衡器端点是一种新型的VPC endpoint,用于连接网络流量的源和目的。它采用PrivateLink技术,通过私有连接连接Intemet网关、vpc和其他网络资源你的流量通过AWS网络流动,数据永远不会暴露在互联网上。
四、重要组件
侦听器
侦听器是一个使用您配置的协议和端口检查连接请求的进程。为侦听器定义的规则可以确定负载均衡器将请求路由到一个或多个目标组中的目标的方式。
负载均衡器
负载均衡器充当客户端的单一接触点。客户端将请求发送到负载均衡器,然后负载均衡器将请求发送到一个或多个可用区中的目标(例如EC2 实例)。
目标组
每个目标组均用于将请求路由到一个或多个已注册的目标。创建侦听器时,您为其默认操作指定目标组。流量将转发到在侦听器规则中指定的目标组。