Elastic Load Balancing 会自动将您的传入流量分配到一个或多个可用区中的多个目标(例如 EC2 实例、容器和 IP 地址)。它会监控其注册目标的运行状况,并仅将流量路由到运行状况良好的目标。Elastic Load Balancing 会随着传入流量随时间的变化而扩展您的负载均衡器。它可以自动扩展到绝大多数工作负载。
Elastic Load Balancing 支持以下负载均衡器:应用程序负载均衡器、网络负载均衡器、网关负载均衡器和传统负载均衡器。您可以选择最适合您需求的负载均衡器类型。本指南讨论应用程序负载均衡器。
开始之前确保已经注册亚马逊云科技,亚马逊云科技账号注册步骤 :(请参考这篇文章:亚马逊云服务器使用命令安装WordPress教程 )
应用程序负载均衡器组件
负载均衡器 充当客户端的单一联系点。负载均衡器将传入的应用程序流量分配到多个可用区中的多个目标(例如 EC2 实例)。这提高了应用程序的可用性。您可以向负载均衡器添加一个或多个侦听器。
侦听器 使用您配置的协议和端口检查来自客户端的连接请求。您为侦听器定义的规则决定了负载均衡器如何将请求路由到其注册的目标。每条规则都包含一个优先级、一个或多个操作以及一个或多个条件。当满足规则的条件时,将执行其操作。您必须为每个侦听器定义一个默认规则,也可以选择定义其他规则。
每个目标组 使用您指定的协议和端口号将请求路由到一个或多个已注册目标(例如 EC2 实例)。您可以将一个目标注册到多个目标组。您可以针对每个目标组配置运行状况检查。运行状况检查针对已注册到负载均衡器侦听器规则中指定的目标组的所有目标执行。
下图说明了基本组件。请注意,每个侦听器包含一个默认规则,一个侦听器包含另一个将请求路由到不同目标组的规则。一个目标已注册到两个目标组。
从 传统负载均衡器 迁移的优势
使用应用程序负载均衡器代替传统负载均衡器具有以下好处:
支持路径条件。您可以为侦听器配置规则,根据请求中的 URL 转发请求。这使您可以将应用程序构建为较小的服务,并根据 URL 的内容将请求路由到正确的服务。
支持主机条件。您可以为侦听器配置规则,根据 HTTP 标头中的主机字段转发请求。这使您可以使用单个负载均衡器将请求路由到多个域。
支持根据请求中的字段进行路由,例如HTTP 标头条件 和方法、查询参数和源 IP 地址。
支持将请求路由到单个 EC2 实例上的多个应用程序。您可以将一个实例或 IP 地址注册到多个目标组,每个目标组位于不同的端口上。
支持将请求从一个 URL 重定向到另一个 URL。
支持返回自定义 HTTP 响应。
支持通过 IP 地址注册目标,包括负载均衡器的 VPC 之外的目标。
支持将 Lambda 函数注册为目标。
支持负载均衡器在路由请求之前通过企业或社会身份对应用程序的用户进行身份验证。
支持容器化应用程序。Amazon Elastic Container Service (Amazon ECS) 可以在调度任务时选择一个未使用的端口,并使用此端口将任务注册到目标组。这使您能够高效利用集群。
支持独立监控每项服务的运行状况,因为运行状况检查是在目标组级别定义的,并且许多 CloudWatch 指标都是在目标组级别报告的。将目标组附加到 Auto Scaling 组使您能够根据需求动态扩展每项服务。
访问日志包含附加信息并以压缩格式存储。
改进了负载平衡器性能。
开始之前
确定要为 EC2 实例使用哪两个可用区。在每个可用区中为您的虚拟私有云 (VPC) 配置至少一个公共子网。这些公共子网用于配置负载均衡器。您可以改为在这些可用区的其他子网中启动 EC2 实例。
在每个可用区中启动至少一个 EC2 实例。确保在每个 EC2 实例上安装 Web 服务器,例如 Apache 或 Internet Information Services (IIS)。确保这些实例的安全组允许在端口 80 上进行 HTTP 访问(请参考文章:亚马逊云服务器使用命令安装WordPress教程 )。
步骤 1:配置目标群体
创建用于请求路由的目标组。侦听器的默认规则将请求路由到此目标组中的已注册目标。负载均衡器使用为目标组定义的运行状况检查设置检查此目标组中目标的运行状况,如下图所示。
1.打开 亚马逊云科技 控制台。
2.在导航窗格中的“负载平衡” 下,选择 “目标组” ,如下图所示。
3.选择创建目标组 。
4.在基本配置 下,将目标类型 保留为实例。
5.对于目标组名称 ,输入新目标组的名称。
6.保留默认协议(HTTP )和端口(80 )。
7.选择包含您的实例的VPC 。保留协议版本为HTTP1 。
8.对于健康检查 ,保留默认设置。
9.选择下一步 。
10。在“注册目标” 页面上,完成以下步骤。这是创建负载均衡器的可选步骤。但是,如果您想测试负载均衡器并确保它将流量路由到此目标,则必须注册此目标。
对于可用实例 ,选择一个或多个实例。
保留默认端口 80,并选择下面的“Include as pendant” 。
11.选择创建目标组 。
步骤 2:选择负载均衡器类型
Elastic Load Balancing 支持不同类型的负载均衡器。在本教程中,您将创建一个应用程序负载均衡器。
1.打开 亚马逊云科技 控制台。
2.在导航栏上,为您的负载均衡器选择一个区域。请确保选择与您的 EC2 实例相同的区域。
3.在导航窗格中的“负载均衡” 下,选择 “负载均衡器” 。
4.选择创建负载均衡器 。
5.对于应用程序负载均衡器 ,选择创建 。
要创建应用程序负载均衡器,您必须首先提供负载均衡器的基本配置信息,例如名称、方案和 IP 地址类型。然后,提供有关网络以及一个或多个侦听器的信息。侦听器是一个检查连接请求的过程。它配置了协议和端口,用于从客户端到负载均衡器的连接,如下图所示。
对于负载均衡器名称 ,输入负载均衡器的名称。例如,my-alb
。
对于方案 和IP 地址类型 ,保留默认值。
对于网络映射 ,选择您用于 EC2 实例的 VPC。至少选择两个可用区,每个可用区选择一个子网。对于您用于启动 EC2 实例的每个可用区,选择可用区,然后为该可用区选择一个公有子网,如下图所示。
4.对于安全组 ,我们选择您在上一步中选择的 VPC 的默认安全组。您可以选择其他安全组。安全组必须包含允许负载均衡器与侦听器端口和运行状况检查端口上的已注册目标进行通信的规则。
5.对于侦听器和路由 ,保留默认协议和端口,然后从列表中选择目标组。这将配置一个侦听器,该侦听器在端口 80 上接受 HTTP 流量,并默认将流量转发到选定的目标组。在本教程中,您不会创建 HTTPS 侦听器,如下图所示。
6.对于默认操作 ,选择您在步骤 1:配置目标组中创建并注册的目标组。
7.(可选)添加标签以对负载均衡器进行分类。每个负载均衡器的标签键必须是唯一的。允许的字符包括字母、空格、数字(UTF-8 格式)以及以下特殊字符:+ – = . _ : / @。请勿使用前导或尾随空格。标签值区分大小写,如下图所示。
8.检查您的配置,然后选择创建负载均衡器 。在创建期间,一些默认属性会应用于您的负载均衡器。您可以在创建负载均衡器后查看和编辑它们。
步骤 4:测试您的负载均衡器
创建负载均衡器后,验证它是否将流量发送到您的 EC2 实例。
1.在您收到负载均衡器已成功创建的通知后,选择Close 。
2.在导航窗格中的“负载平衡” 下,选择 “目标组” ,如下图所示。
3.选择新创建的目标组。
4.选择目标 并验证您的实例是否已准备就绪。如果实例的状态为initial
,则可能是因为该实例仍在注册过程中,或者尚未通过被视为健康的最低健康检查次数。至少一个实例的状态为 后healthy
,您可以测试负载均衡器。
5.在导航窗格中的“负载均衡” 下,选择 “负载均衡器” ,如下图所示。
6.选择新创建的负载均衡器。
7.选择描述 并复制负载均衡器的 DNS 名称(例如,my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com)。将 DNS 名称粘贴到已连接互联网的 Web 浏览器的地址栏中。如果一切正常,浏览器将显示服务器的默认页面。
步骤 5:(可选)删除负载均衡器
一旦您的负载均衡器可用,您将按小时或部分小时计费。当您不再需要负载均衡器时,您可以将其删除。一旦负载均衡器被删除,您就不再需要为它付费。请注意,删除负载均衡器不会影响向负载均衡器注册的目标。例如,删除本指南中创建的负载均衡器后,您的 EC2 实例将继续运行。
1.打开 亚马逊云科技 控制台。
2.在导航窗格中的“负载均衡” 下,选择 “负载均衡器” 。
3.选中负载均衡器的复选框,选择 操作 ,然后选择删除 。
4.当系统提示确认时,选择“是,删除” 。