Introduction to Elastic Load Balancing
概览
本实验为您介绍 Elastic Load Balancer,其中包括如何创建和测试 Network Elastic Load Balancer。实验启动后,它提供两个不同可用区,其中各有一个 Web 服务器。在本实验中,您将创建一个 Network Elastic Load Balancer,并将这两个 Web 服务器用作目标。然后,您将在不同的场景中测试负载均衡器的功能
目标
完成本实验后,您将能够:
测试与位于两个不同可用区中的两个 Web 服务器的连接
创建一个 Network Load Balancer,并将这两个 Web 服务器用作 Elastic Load Balancer 目标
测试负载均衡器的默认功能
启用跨区域负载均衡并测试负载均衡器的行为方式
在其中一个 Web 服务器发生故障时测试负载均衡器的行为
在 Web 服务器从故障中恢复后测试负载均衡器的行为
本实验中使用的服务
Amazon Elastic Load Balancer
Amazon Elastic Load Balancer (Amazon ELB) 作为一项服务,可在多个 Amazon EC2 实例之间自动分配应用程序的传入流量。通过这项服务,您可以实现更高的应用程序容错能力,从而无缝提供响应应用程序的传入流量所需的负载均衡容量。Elastic Load Balancing 可以检测出池中运行不正常的实例,并自动将流量重新路由到运行正常的实例,直到运行不正常的实例恢复为止。
客户可以在单个可用区或多个可用区中启用 Elastic Load Balancing,以实现更加一致的应用程序性能。也可以在 Amazon Virtual Private Cloud (VPC) 中使用 Elastic Load Balancing 在应用程序层之间分配流量。
Elastic Load Balancing 支持以下类型的负载均衡器:
Application Load Balancer
Application Load Balancer 在应用程序层正常工作,该层是开放系统互连 (OSI) 模型的第 7 层。负载均衡器收到请求后,将按照优先级顺序评估侦听器规则以确定应用哪个规则,然后从目标组中选择规则操作目标。可以配置侦听器规则,以根据应用程序流量的内容,将请求路由至不同的目标组。每个目标组的路由都是单独进行的,即使某个目标已在多个目标组中注册。可以配置目标组级别使用的路由算法。默认路由算法为轮询路由算法;或者,可以指定最少未完成请求路由算法。
Network Load Balancer
Network Load Balancer 在连接级别(第 4 层)运行,根据 IP 协议数据将连接路由至 Amazon VPC 中的目标(Amazon EC2 实例、微服务和容器)。Network Load Balancer 最适合 TCP 和 UDP 流量的负载均衡,能够在保持超低延迟的同时每秒处理数百万个请求。Network Load Balancer 经过优化,可以处理突发和不稳定的流量模式,同时每个可用区使用单个静态 IP 地址。它可与其他常见的 AWS 服务集成,例如 Auto Scaling、Amazon EC2 Container Service (ECS)、Amazon CloudFormation 和 AWS Certificate Manager (ACM)。
Gateway Load Balancers (网关负载均衡器)
Gateway Load Balancer 在开放系统互联 (OSI) 模型的第三层,即网络层运行。Gateway Load Balancers 让您能够部署、扩展和管理虚拟设备,例如防火墙、入侵检测和防御系统以及深度数据包检测系统。它结合了一个透明的网络网关(即所有流量的单个入口和出口点),并分配流量,同时根据需求扩展虚拟设备。
Classic Load Balancers(经典负载均衡器)
负载均衡器将传入的应用程序流量分配到多个可用区的多个EC2实例上。这可提高应用程序的容错能力。弹性负载均衡会检测运行状况不佳的实例,并将流量仅路由到运行正常的实例。
产品比较:
任务 1:测试对 Web 服务器的访问
在此任务中,您将通过 HTTP 连接到每个 Web 服务器。这将证明您的 Web 服务器正在为网页提供服务。这些 EC2 实例是当您启动实验时在 CloudFormation 模板中创建的。
在这些说明的左侧,将 WebServer01 的值复制到剪贴板,然后:
将该值粘贴到一个新的浏览器标签页中
按 Enter 键
将看到如图
在这些说明的左侧,将 WebServer02 的值复制到剪贴板,然后:
将该值粘贴到一个新的浏览器标签页中
按 Enter 键
任务 2:创建 Elastic Load Balancer
在 AWS 管理控制台中,使用 AWS 搜索栏搜索 EC2,然后从列表中选择该服务。
在左侧导航窗格中,选择负载均衡器。
选择 Create load balancer(创建负载均衡器)。
附加信息:负载均衡器充当客户端的单一联系点。该负载均衡器在多个目标(例如 Amazon EC2 实例)间分配传入流量。这将提高应用程序的可用性。
在 Select load balancer type(选择负载均衡器类型)上的 Network Load Balancer 下方,选择 Create(创建)。 附加信息:Network Load Balancer 在开放式系统互联 (OSI) 模型的第 4 层运行。它每秒可以处理数百万个请求。负载均衡器收到连接请求后,根据默认规则从目标组中选择一个目标。负载均衡器尝试在侦听器配置中指定的端口上打开到所选目标的 TCP 连接。
在 Create Network Load Balancer(创建 Network Load Balancer)页面上,进行以下配置:
Load balancer name(负载均衡器名称):myELB
VPC:从下拉菜单中选择 Lab VPC(实验 VPC)
Mappings(映射):选择这两个可用区
安全组:从下拉菜单中选择 ELBSecurityGroup
在 Listeners and routing(侦听器和路由)部分,选择 Create target group (创建目标组)。 附加信息:向目标组注册 Network Load Balancer 的目标。默认情况下,负载均衡器使用为目标组指定的端口和协议向已注册目标发送请求。
在 Basic configuration(基本配置)部分,进行以下配置:
Target group name(目标组名称):lb-targets
协议: TCP
VPC:确保选中 Lab VPC(实验 VPC)。
展开 Advanced health check settings(高级运行状况检查设置),然后进行以下配置:
Healthy threshold(正常阈值):2
Interval(间隔):10 seconds
如图:
附加信息:负载均衡器使用指定的端口、协议和 ping 路径,每 HealthCheckIntervalSeconds 秒向每个注册目标发送一次运行状况检查请求。它等待目标在响应超时时间内响应。如果运行状况检查超过连续失败响应的阈值,负载均衡器将使目标停止服务。当运行状况检查超过连续成功响应的阈值时,负载均衡器将使目标恢复服务。
注意:由于您已将 Healthy threshold(正常阈值)设置为 2,并且已将间隔设置为 10 秒,因此您的实例报告正常状态至少需要 20 秒。默认情况下,每个负载均衡器节点仅将请求路由到其可用区中的正常目标。
在屏幕底部,选择 Next(下一步)。
在 Available instances(可用实例)部分,选择这两个 EC2 实例。
选择 Include as pending below(包含如下待处理事项)。
警告:确保选择 Include as pending below(包含如下待处理事项)。
选择 Create target group(创建目标组)。
导航到用于创建负载均衡器的选项卡。
在 Listeners and routing(侦听器和路由)部分,选择 刷新按钮。
从下拉列表中,选择您先前创建的 lb-targets 目标组。
查看负载均衡器配置
选择 Create load balancer(创建负载均衡器)
选择 View load balancer(查看负载均衡器)。
在负载均衡器的 Details(详细信息)选项卡中,将 DNS 名称复制到您的文本编辑器。
注意:您的 DNS 名称应类似于 myELB-4e009e86b4f704cc.elb.us-west-2.amazonaws.com
在左侧导航窗格中,选择 Target Groups(目标组)。
选择 lb-targets 目标组。
选择 Targets(目标)选项卡。
等待 EC2 实例的状态变为 healthy(正常)。
注意:您可能需要 刷新屏幕才能看到更改。以下是已注册目标的运行状况状态的可能值:
initial(初始):负载均衡器正在注册目标或正在对目标执行初始运行状况检查
healthy(正常):目标运行正常
unhealthy(不正常):目标未响应运行状况检查或运行状况检查失败 。 unused(未使用):目标未注册到目标组,目标组未在负载均衡器的侦听器规则中使用,或者目标位于没有为负载均衡器启用的可用区中。
draining(注销延迟中):目标正在注销,而且处于注销延迟中
任务 3:测试负载均衡器
测试默认功能
在一个新的浏览器标签页中,粘贴 DNS 名称,然后按 Enter 键。 注意:您应看到其中一个 EC2 实例的 HTML 页面。
刷新 页面几次。 请注意,显示的是相同的 EC2 实例页面。
附加信息:对于 Network Load Balancer,默认情况下禁用跨区域负载均衡。创建 Network Load Balancer 后,您可以随时启用或禁用跨区域负载均衡。
附加信息:在为负载均衡器启用的可用区中,跨区域负载均衡可以在所有目标之间均匀地分配流量。
测试跨区域负载均衡功能
在 AWS 管理控制台的左侧导航窗格中,选择 Load Balancers(负载均衡器)。
在 Details(详细信息)部分,选择 Attributes(属性)选项卡。
选择 Edit(编辑),然后进行以下配置:
启用 Cross-zone load balancing(跨区域负载均衡)
选择 Save changes(保存更改) 等待一两分钟。
返回用于访问负载均衡器的浏览器标签页。
刷新 页面几次。
任务完成:您应该看到 Network Load Balancer 现在将您引导至这两个 EC2 实例。
禁用跨区域负载均衡功能
在 AWS 管理控制台的左侧导航窗格中,选择 Load Balancers(负载均衡器)。
在 Details(详细信息)部分,选择 Attributes(属性)选项卡。
选择 Edit(编辑),然后进行以下配置:
禁用 Cross-zone load balancing(跨区域负载均衡)
选择 Save changes(保存更改) 等待一两分钟。
返回用于访问负载均衡器的浏览器标签页。
刷新 页面几次。
任务 4:在故障期间测试负载均衡器
在故障期间测试负载均衡器
在 AWS 管理控制台的左侧导航窗格中,选择 Instances(实例)。
选择当前为您提供网页服务的 EC2 instance(EC2 实例)。
从 Instance state (实例状态)下拉列表中,选择 Stop instance(停止实例)。
选择 Stop(停止)。
等待一两分钟。
返回用于访问负载均衡器的浏览器标签页。
刷新 页面几次。
任务完成:您将看到负载均衡器现在显示另一个实例的网页。
从故障中恢复后测试负载均衡器
在 AWS 管理控制台的左侧导航窗格中,选择 Instances(实例)。
选择您先前停止的 EC2 instance(EC2 实例)。
从 Instance state (实例状态)下拉列表中,选择 Start instance(启动实例)。
等待一两分钟,直到实例完全启动。
注意:您可以选择 刷新按钮来更新状态。
在负载均衡器的浏览器标签页中,刷新 页面。
总结
测试了与位于两个不同可用区中的两个 Web 服务器的连接
创建了 Network Load Balancer
测试了负载均衡器的默认功能
启用了跨区域负载均衡并测试了负载均衡器的行为方式
在其中一个 Web 服务器发生故障时测试了负载均衡器的行为
在 Web 服务器恢复后测试了负载均衡器的行为