使用AWS ELB进行负载平衡

大家好!AWS for Developers课程今天开始,因此,我们举办了相应的主题网络研讨会,专门讨论ELB。我们研究了平衡器的类型,并使用平衡器创建了多个EC2实例。并且还研究了其他使用示例。




听完网络研讨会后,您将:

  • 了解什么是AWS Load Balancing;
  • 了解弹性负载均衡器的类型及其组件;
  • 在您的实践中使用AWS ELB。

为什么能够做到这一点:

  • 如果您计划参加AWS认证考试,则非常有用;
  • 这是在服务器之间进行负载平衡的简单方法。
  • 这是将Lambda添加到服务(ALB)的简便方法。

营销公司的系统工程师Rishat Teregulov 主持了一个公开课程,以开发和支持站点。

介绍


下图显示了一个简单的示例,它是什么弹性负载均衡器:



负载均衡器接受请求并在实例之间分配它们。我们有一个单独的实例,有Lambda函数,并且有一个AutoScaling组(服务器组)。

AWS ELB类型


1.考虑主要类型

经典负载均衡器。 AWS的第一个平衡器可在OSI的第4级和第7级上运行,支持HTTP,HTTPS,TCP和SSL。它提供了跨多个Amazon EC2实例的基本负载平衡,并且可以在请求级别和连接级别上工作。让我们打开它(以灰色突出显示):



该平衡器已过时,因此建议仅在某些情况下使用。例如,对于基于EC2-经典网络构建的应用程序。原则上,没有人打扰我们创建它:



2.网络负载平衡器。适用于高负载,可在OSI 4级上使用(可在EKS和ECS中使用),支持TCP,UDP和TLS。

网络负载平衡器将流量定向到Amazon VPC中的目标,并能够以超低延迟每秒处理数百万个请求。此外,它还经过优化,可以处理工作负载突然变化的流量模式。

3.应用程序负载平衡器。它在第七层工作,具有Lambda支持,在标头和路径层支持规则,支持HTTP和HTTPS。
提供高级查询路由,专注于交付基于现代体系结构构建的应用程序,包括微服务和容器。根据请求的内容将流量定向到Amazon VPC中的目标。

对于许多用户而言,应用程序负载平衡器首先取代了经典负载平衡器,因为TCP与HTTP相比并不常见。

让我们也创建它,因此,我们将已经有两个负载均衡器:



负载均衡组件


负载均衡的通用组件(所有均衡器通用):

  • 访问记录策略
-您的ELB访问日志。要进行设置,您可以转到描述并选择“编辑属性”按钮:



然后我们指定S3Bucket-Amazon对象存储:



  • 方案
-内部或外部平衡器。关键是您的LoadBalancer是否需要获取外部地址以便可以从外部访问它,或者它可以是您的内部平衡器;

  • 安全组
-对平衡器的访问控制。这本质上是一个高级防火墙。





  • 子网路
-VPC内部的子网(分别位于可用区)。在创建时指定子网。如果VPC受地区限制,则子网受可用性区域限制。创建负载均衡器时,最好在至少两个子网中创建负载均衡器(如果一个可用区出现问题,它会有所帮助)。

  • 听众
-您的平衡器协议。如前所述,对于Classic Load Balancer,它可以是HTTP,HTTPS,TCP和SSL;对于Network Load Balancer,它可以是TCP,UDP和TLS;对于Application Load Balancer,它可以是HTTP和HTTPS。

经典负载均衡器的示例:



但是在应用程序负载均衡器中,我们看到一个略有不同的界面,并且逻辑也大体不同:



负载均衡器v2的组件(ALB和NLB)


现在,让我们仔细看一下第二版应用程序负载平衡器和网络负载平衡器的平衡器。这些平衡器具有自己的组件功能。例如,出现了诸如“目标组-实例(和功能)”的概念。多亏了此组件,我们才有机会指出我们要将流量定向到哪些目标组。





简而言之,在目标组中,我们指定流量将到达的实例。如果在同一经典负载均衡器中,您立即将强度连接到均衡器,那么首先在应用程序负载均衡器中:

  • 创建一个负载均衡器
  • 建立目标群体;
  • 将必要的Balancer端口或规则发送到所需的目标组;
  • 在目标组中,分配实例。

这种工作逻辑似乎更复杂,但实际上更方便。

下一个组件是侦听器规则。这仅适用于应用程序负载平衡器。如果仅在Network Load Balancer中创建一个侦听器,然后将流量发送到特定的目标组,则在Application Load Balancer中,一切都将变得更加有趣和便捷



现在让我们谈谈下一个组件- 弹性IP(NLB的静态地址)。如果用于路由的侦听器规则仅适用于应用程序负载平衡器,则弹性IP仅适用于网络负载平衡器。

让我们创建一个网络负载均衡器:





在创建过程中,我们将看到我们有机会选择Elastic IP:



弹性IP提供了一个IP地址,该地址可以随时间与不同的EC2实例关联。如果EC2实例具有弹性IP地址并且该实例已完成或已停止,则可以立即将新的EC2实例与弹性IP地址关联。但是,即使实际的EC2已更改,您的当前应用程序也不会停止运行,因为应用程序会看到相同的IP地址。

是另一个用户案例,说明为什么需要弹性IP。瞧,我们看到了3个IP地址,但它们不会永远留在这里:



亚马逊会随着时间的推移对其进行更改,可以每60秒执行一次(当然,实际上,这种情况很少见)。因此,IP地址可以更改。对于网络负载平衡器,您只需绑定IP并在规则,策略等中指定它即可。



得出结论


ELB自动将传入流量分配到多个目标(容器,Amazon EC2实例,IP地址和Lambda功能)。 ELB能够在一个可用性区域内以及多个可用性区域之间以变化的负载分配流量。用户可以从三种类型的平衡器中进行选择,这些平衡器提供高可用性,自动缩放和良好的保护。所有这些对于确保应用程序的弹性非常重要。

主要优点:

  • . 99,99 % . , , . , , ;
  • . ELB Amazon VPC, — , , SSL/TLS. TLS;
  • . ELB . Auto Scaling , , ;
  • . IP‑ . , . , , , , ;
  • 监督和审计您可以使用Amazon CloudWatch功能实时监视应用程序。我们正在谈论指标,日志,查询跟踪。简而言之,您可以发现问题并相当准确地确定性能瓶颈。
  • 混合负载平衡使用同一个均衡器在本地资源和AWS之间平衡工作负载的能力使您可以轻松地将本地应用程序迁移或扩展到云中。云故障也得到了简化。

如果您对这些细节感兴趣,这里有来自亚马逊官方网站的几个有用链接:

  1. 弹性负载平衡
  2. 弹性负载平衡的功能。

All Articles