AWS 中的弹性负载平衡

已发表: 2022-08-10

Elastic Load Balancing 是 AWS 中应用程序的核心。 在这篇文章中了解有关 ELB、其类型和功能的所有信息。

如今,大多数组织都需要管理和提高其应用程序的可扩展性、可用性和容错性。 AWS 为此提供了出色的解决方案,即 Elastic Load Balancing 服务。 该服务由一个负载均衡器组成,它可以跨许多计算资源(如虚拟服务器)分配工作负载。

负载均衡

负载平衡服务允许我们配置健康检查来监控计算资源的健康状况。 它还允许我们将加密和解密工作卸载到您的负载均衡器,以便计算资源可以专注于它们的主要工作。

弹性负载平衡 (ELB):概述

ELB 是一项服务,可在多个 EC2 实例之间自动分配传入流量。 这通过提供负载平衡能力来分配应用程序流量,有助于在您的应用程序中实现更高的容错级别。

弹性负载平衡
资料来源:AWS

此外,Elastic Load Balancing 可以检测不健康的 EC2 实例,一旦发现 EC2 实例不健康,ELB 就会停止向它发送流量,直到它再次恢复健康。 客户可以在单个或多个可用区内轻松启用 Elastic Load Balancing,以获得更一致的应用程序性能。

弹性负载平衡功能

安全

您可以在 Amazon Virtual Private Cloud (VPC) 中管理和创建与 Elastic Load Balancing 关联的安全组,为 Application Load Balancer 和 Classic Load Balancer 提供额外的网络和安全选项。

高可用性

弹性负载均衡器具有高可用性。 您可以将传入应用程序的流量分配到单个可用区或多个可用区中的 EC2 实例。

高吞吐量

弹性负载均衡器旨在处理增长的流量,并且可以每秒加载和平衡数百万个请求。 它还可以处理突然的流量高峰。

健康检查

使用 Elastic Load Balancing,您可以检查 EC2 实例的运行状况,而不会冒险将流量发送到运行状况不佳的实例。

操作监控和记录

Amazon CloudWatch 报告应用程序和 Classic Load Balancer 指标,例如错误计数、错误类型、请求延迟、请求计数等。

删除保护

您可以在弹性负载均衡器上启用删除保护,以防止它被意外删除。

Youtube 视频

弹性负载均衡器的组件

听众

您必须为负载均衡器配置一个或多个侦听器。 这是一个检查连接请求的过程。 它设置了一个协议和一个用于前端连接(客户端到负载均衡器)的连接端口和一个用于后端连接(负载均衡器到后端实例)的协议。

支持的弹性负载均衡协议包括:

  • HTTPS(安全 HTTP)
  • TCP
  • SSL(安全 TCP)

负载均衡器

负载均衡器充当服务器前的“交通警察”,将客户端请求分发到所有能够处理这些请求的服务器上,从而最大限度地提高速度和容量利用率,并确保没有服务器过度工作,从而导致性能下降。

负载均衡器将流量路由到活动服务器,以防一台服务器脱机。 负载均衡器在添加到服务器组时向新服务器发起请求。

目标群体

使用每个目标组将请求路由到一个或多个注册目标。 在创建每个侦听器规则时定义目标组和条件。 当满足规则条件时,流量被路由到适当的目标组。

对于各种类型的请求,您可以创建单独的目标组。 例如,为应用程序的微服务请求和通用请求创建不同的目标组。

负载均衡器的类型

应用程序负载均衡器

Application Load Balancer 使开发人员能够设置传入的最终用户流量并将其引导到在 AWS 公共云上运行的应用程序。

负载平衡在具有众多 Web 应用程序的云环境中至关重要。 负载均衡器通过在多个服务器之间划分网络流量和信息流来确保没有单个服务器过载。 这可以提升用户体验、提高应用程序响应能力和可用性,并且可以防御分布式拒绝服务 (DDoS) 攻击。

Youtube 视频

近年来,对 Web 应用程序的访问显着增长。 但是,意外的流量增加可能会减慢在线服务并降低可用性。 Application Load Balancer 在公共云中有效地分配网络负载以提高稳定性和可用性。

如果有问题的应用程序到达第 7 层,Application Load Balancer 只会将流量引导到云资源内的健康目标。WebSocket 是 Application Load Balancer 支持的另一种协议,用于增加与底层服务器的连接。

在容器或 AWS EC2 实例上运行的网站和移动应用程序从应用程序负载均衡器的使用中获益最多。 在微服务架构中,Application Load Balancer 可以用作 EC2 实例或实现特定服务的 Docker 容器前面的内部负载均衡器。 此外,它可以在 RESTful API 应用程序之前使用。

许多 AWS 服务与应用程序负载均衡器兼容,包括:

  • AWS 自动扩展
  • 亚马逊弹性容器服务
  • AWS CloudFormation
  • AWS 代码部署
  • AWS 证书管理器

经典负载均衡器

来自传入应用程序的流量使用经典负载均衡器跨多个 EC2 实例拆分到各个可用区。 经典的负载均衡器充当客户端的唯一联系点。 这使您的应用程序更易于访问。 在不影响应用程序的一般请求流的情况下,您可以根据需求的变化从经典负载均衡器中添加/删除实例。

侦听器使用您设置的协议和端口来监控客户端连接请求。 然后侦听器使用配置的协议和端口将请求传输到一个或多个注册实例。 您可以通过添加一个或多个侦听器来修改负载均衡器。

为确保负载均衡器仅将请求路由到健康的实例,您可以配置健康检查,用于密切关注已注册实例的状况。

默认情况下,经典负载均衡器会在您为负载均衡器启用的可用区之间平均分配流量。 在负载均衡器上启用跨区域负载均衡,以在所有激活的可用区中的所有注册实例之间分配流量。

负载均衡

经典负载均衡器的类型:

  • 面向 Internet 的传统负载均衡器:由于其可公开解析的 DNS 域,面向 Internet 的负载均衡器可以将来自客户端的请求路由到通过 Internet 向负载均衡器注册的 EC2 实例。 您的负载均衡器在构建时会获得一个公共 DNS 名称,客户端可以使用该名称发出请求。 DNS 服务器将负载均衡器的 DNS 名称转换为负载均衡器节点的公共 IP 地址。 私有 IP 地址将每个负载平衡节点连接到后端实例。
  • 内部经典负载均衡器:内部负载均衡器的节点只有个人 IP 地址。 内部负载均衡器的 DNS 名称可以公开解析为节点的 IP 地址。 因此,请求只能由内部负载均衡器从有权访问负载均衡器 VPC 的客户端路由。

网络负载均衡器

网络负载均衡器工作在 OSI 模型的第四层。 它每秒可以处理数百万个请求。

负载均衡器在收到连接请求后,从目标组中选择一个目标作为默认规则。 它尝试在侦听器设置中指示的端口上建立到选定目标的 TCP 连接。

Youtube 视频

为了提高应用程序的容错能力,您可以启用多个可用区,这是 AWS 中为网络负载均衡器提供的一项付费服务​​。 如果一个可用区出现故障,您的应用程序将不会停止工作。

对于 TCP 流量,使用基于协议、源端口、源 IP 地址、目标端口、目标 IP 地址和 TCP 序列号的流哈希算法选择目标。

客户端的 TCP 连接具有不同的序列号和源端口,因此这些连接被路由到其他目标。 在连接期间,每个唯一的 TCP 连接都被路由到单个目标。

网关负载均衡器

您的第三方虚拟设备可以在 Gateway Load Balancer 的帮助下轻松部署、扩展和管理。 它提供了一个网关,用于在众多虚拟设备之间拆分流量,并根据需求扩大或缩小它们。 这消除了网络中潜在的故障点并提高了可用性。

Youtube 视频

可以通过 AWS Marketplace 直接找到、测试和购买来自独立制造商的虚拟设备。 无论您是想继续与现有供应商合作还是尝试新事物,这种集成体验都可以加快部署过程,让您可以更快地从虚拟设备中受益。

网关负载均衡器的好处:

  • 更快地部署第三方虚拟设备。
  • 在管理成本的同时扩展您的虚拟设备。
  • 提高虚拟设备的可用性

最后的话

弹性负载均衡器是在 AWS 上构建的许多基础设施的关键部分。 我们从 ELB 获得的功能使管理您的基础架构更加容易。 Elastic Load Balancing 是一种久经考验的方法,可将应用程序和 Web 流量请求分散到多个目标或实例上。

您可以使用 Elastic Load Balancer 自动扩展各种工作负载。 我们涵盖了 AWS 提供的所有类型的负载均衡器,您可以根据应用程序的需求使用它们。