Amazon Web Services中的高级负载平衡和集群

张贴 Zevenet | 24年2020月XNUMX日

介绍

以下文章描述了如何使用ZEVENET负载平衡器设置高级负载平衡服务,以实现以下目的的高可用性: Amazon Web Services EC2基础架构。 我们将描述配置一个 ZEVENET集群 并为3个Web后端服务器配置HTTP负载平衡配置文件以实现HTTP服务的负载平衡。

AWS和ZEVENET基础架构

下图描述了我们要在AWS中使用ZEVENET Application Delivery Controller实现Web负载平衡的架构。

需要部署两个ZEVENET Application Delivery Controller,该模板在Amazon Web Services市场中可用,并且每个ZEVENET Application Delivery Controller在与Web后端服务器相同的VPC中进行配置,如上图所示,该子网带有子网。 17.32.16.0./20.

每个ZEVENET ADC实例都配置有一个接口 eth0,并且每个实例都分配给一个 弹性IP,另外一个弹性IP也通过 eth0ZLB1产品 实例,该实例将用于负载均衡,如下所述:

ZLB1产品 被分配给 172.31.20.89 在eth0中,该实例将由一个实例直接访问 弹性IP 34.225.30.206
ZLB2产品 被分配给 172.31.26.237 在eth0中,该实例将由一个实例直接访问 弹性IP 54.161.240.226

一个额外的IP被分配给 ZLB1产品 并在负载均衡器中配置名称 eth0:vip1 和IP 172.31.26.47,此IP用于在此处配置一个负载平衡服务,并且是 集群服务,因此该IP一次只能在一个ZEVENET实例中工作,该实例可以管理 ACTIVE 在集群中的角色。 该内部IP被分配给一个弹性IP,客户端可以访问该弹性IP以连接到已发布的实际Web服务。

终于 后端01, 后端02后端03 是具有基于Linux的Web服务器的EC2实例,这些实例是负载平衡服务的一部分,客户端在请求时会连接到该负载 http://54.144.190.17/ .

在AWS Marketplace中部署两个ZEVENET实例

让我们部署两个ZEVENET负载均衡器并按照前面所述配置它们。

转到EC2实例部分,然后按 启动实例.

1. 搜索所需的ZEVENET负载均衡器企业版AMI。 这个 AMI基于BYOL许可证 模型。 评估阶段是免费的,并且在一个月内提供了帮助,在这段时间之后,需要最终许可才能工作。

2. 选择一个 实例类型。 根据您要进行负载平衡的资源在此处选择所需的实例。 一个 t2。小 实例是很好的开始 L4个人资料,但如果您想使用 HTTP配置文件 那么我们建议至少 t2.中 实例。 但是, t2.micro 实例足以进行测试。

3. 配置 实例详细信息。 在此处选择运行新ZEVENET实例的VPC,在此配置示例中,我们将在与已配置的实际Web后端服务器相同的VPC中引入ZEVENET EC2实例。

4. 添加存储。 默认情况下,ZEVENET EC2实例至少需要12Gb的存储空间,如果您想默认激活日志,那么我们建议将此大小至少增加到20Gb。 ZEVENET不需要访问磁盘,只需保存日志即可,因此 卷类型 一般而言,这是一个不错的选择。

5. 添加标签。 如果需要,在此处配置一些描述标签。

6. 配置 安全组。 默认情况下,ZEVENET使用TCP端口444进行HTTPS Web GUI管理,并使用SSH中的TCP端口22进行命令行管理和群集。 另外,每个 虚拟端口 要求将在负载平衡器虚拟服务中使用的安全性包括在内。 我们已经配置了一个安全组,该安全组以较少限制的方式用于那些ZEVENET EC2实例,如下所示:

TYPE = All traffic
Protocol = ALL 
Port Range = All
Source = 0.0.0.0/0
Description = Allow all from all to all

创建此安全组是出于测试目的,您可以选择阻止所有端口,并且仅允许将其用于负载平衡和管理。

一旦配置助手返回到EC2实例列表,新设备便将开始部署,并且 发起 状态将显示。 然后,现在在字段中配置一个描述性名称 名称:,在我们的例子中,我们在EC2中部署的负载均衡器被命名为 ZLB1产品ZLB2产品.

为ZEVENET EC2实例配置网络

ZEVENET虚拟设备部署完成后, 实例状态 正在显示 运行 模式,我们可以继续配置网络。

点击上方的右键 ZLB1产品 电器并选择 联网>管理IP地址管理IP地址 弹出窗口按入 分配新的IP 然后按下按钮 是的,更新,系统将为 eth0 在同一VPC中。 记住这个新IP,在我们的示例中,这个新IP将是 172.31.26.47。 系统分配了一个新IP,该IP将在将来的群集服务中用于负载平衡。

前往部分 弹性IP 并为每个ZEVENET实例分配一个新的 弹性IP。 这些将用于管理目的,而不是用于负载平衡。

在相同的 弹性IP 部分,将新IP分配给 ZLB1产品,但在这种情况下,请选择 私人IP 地址 172.31.26.47。 配置完成后 ZLB1产品 可以使用IP通过Web和SSH访问 34.225.30.206,但 ZLB2产品 可通过与IP相同的服务进行访问 54.161.240.226弹性IP 54.144.190.17 分配给IP 172.31.26.47.

使用临时许可证启用ZEVENET EC2实例

一旦配置了弹性IP,就可以按以下方式访问虚拟负载均衡器:

ZLB1-prod将通过https://34.225.30.206:444用户root用户和实例ID的密码访问。
ZLB1-prod将通过IP 34.225.30.226中的ssh通过带有用户admin和私有证书文件的ssh访问,该文件是在EC2部署时配置的。
ZLB2-prod将通过https://54.161.240.226:444用户root用户和实例ID的密码访问。
ZLB2-prod将通过IP 54.161.240.226中的ssh通过带有用户admin和私有证书文件的ssh访问,该文件是在EC2部署时配置的。

如果考虑在继续之前更改主机名,请重新引导EC2实例以应用更改。

成功完成对Web GUI的访问后,您将看到两个重要值,主机名和证书密钥,这两个信息对于每个Load Balancer都是唯一的,并且与激活许可证相关,请按照以下说明在以下URL中使用此信息: https://www.zevenet.com/activate-enterprise-edition-cloud-evaluation/

填写表格后,系统会自动将许可证发送到指定的电子邮件。 请通过每个负载均衡器中的Web GUI上传收到的PEM激活许可证,完成后,Web GUI将被解锁并且所有功能均已完全启用并可以运行。

在两个节点ZLB1-prod和ZLB2-prod中执行相同的激活过程。

配置虚拟IP进行负载平衡

在上一点中,我们已经为eth0分配了另一个IP 172.31.26.47 在实例ZLB1-pro中,并且该IP已分配给一个弹性IP 54.144.190.17,现在等待在ZBL1-pro负载均衡器中进行此配置。

使用其Elastic IP通过Web界面转到ZLB1-pro负载均衡器 https://34.225.30.206:444,一旦登录,请进入导航菜单 网络>虚拟接口>创建虚拟接口,并进行以下配置:

Parent Interface = eth0 172.31.26.47

*由于EC2实例对弹性IP一无所知,因此我们需要在此处配置EC2实例的物理IP,该物理IP链接到用于负载均衡目的的公共弹性IP 54.144.190.17

Virtual Interface name = vip1
IP Address = 172.31.26.47

新闻 创建 按钮以应用配置。

现在是新的IP 172.31.26.47 有名字 eth0:vip1 已在ZLB1-pro EC2 ZEVENET负载均衡器中配置,并且可以从此VPC中的任何EC2实例ping通。

在Amazon Web Services中配置ZEVENET Cluster Service

ZEVENET负载均衡器集群适用于 有状态的主动-被动 模式,这意味着在两个节点中都配置了群集资源,但仅在 ACTIVE 节点。 当此类节点发生故障并且在其他成员中启动此角色时,需要再次访问群集资源。 由于虚拟IP也是集群资源,因此需要以某种方式宣布Amazon Web Service,即将虚拟IP配置为进行负载平衡 172.31.26.47 将通过ZLB2-prod工作。

为此,ZEVENET Cluster服务使用需要在EC2模块中配置权限的AWS客户端来管理接口,因此在启动ZEVENET Cluster服务之前,我们需要进行准备。 因此,让我们配置一个 AWS密钥 您的帐户中具有管理EC2中要在AWS命令行界面中使用的IP的权限。

转到Amazon控制台 https://console.aws.amazon.com/iam/ ,然后在导航菜单上选择 用户。 单击按钮 添加用户.

Configure a descriptive User name = aws-for-zlb

In 选择AWS访问类型 选择 程序访问 然后按下按钮 下一页:权限。 现在在 设定权限 按下部分 创建组 然后在新窗口中填写字段 团队名字 例如具有描述性的名称, 亚马逊EC2,最后,在现场 筛选政策 搜索并选择名为的策略 AmazonEC2完全访问 授予在其他EC2实例之间更改分配的IP的权限。

按下 下一页:标签下一篇:复习。 最后按下 创建用户,最后一个窗口将显示 访问密钥ID秘密访问密钥 对于该用户,请保存它们以备将来使用。

现在我们准备配置ZEVENET Cluster服务,因此通过分配的公共IP https://1:34.225.30.206的部分转到ZLB444-pro中的Web面板。 系统>集群 并按照示例填写表格:

AWS凭证:访问密钥和秘密密钥是前几行中已经生成的值。 区域,在此处选择ZEVENET Application Delivery控制器所部署的区域。

配置集群:

本地IP:选择eth0的IP和NIC。
远程IP:在节点ZLB0-pro中输入eth2的IP。
远程节点密码确认密码:在此处输入另一个节点中ssh的根密码,默认情况下为ZLB2-pro的实例ID。

点击 产生 按钮并等待几秒钟,与此同时,运行配置的节点将采用 ACTIVE 角色(ZLB1-pro)和其他角色(ZLB2-pro)将承担 被动 作用。

至此,ZEVENET Cluster已在AWS中配置,并且可以使用了,让我们配置我们的第一个集群负载均衡服务。

为Web服务配置简单的L4负载平衡

在MyCAD中点击 软件更新 LSLB>农场>创建农场 具有以下参数。

考虑到使用的虚拟IP 172.31.26.47 是先前配置的虚拟IP,并且群集资源始终可以从 ACTIVE 节点。 按 创建 并继续。

现在在新窗口中配置 全球部分 如下图所示:

最后,配置该部分 服务内容 如所述:

使用方法 IP持续存在超时 以防您需要保证60秒的时间,以防万一您需要确保在一定时间内将相同的客户端IP连接到相同的后端。 使用以下命令配置高级运行状况检查 FarmGuardian。 使用 check_tcp 作为简单的运行状况检查,以验证每个后端都打开了TCP后端端口80。 然后,添加后端服务器的内部IP和运行真实Web服务的端口。

现在测试与 弹性IP http://54.144.190.17/ assigned to the internal IP 172.31.26.47, the connection will pass through the load balancer using the eth0:vip1 并转发到可用的后端之一。

现在是改变 ACTIVE 例如,在群集中扮演角色,则以该角色重新启动节点,几秒钟后,另一个将使用虚拟服务并再次连接到公共IP。 当前和新的客户端连接将针对相同的后端建立,但这一次是通过新的 ACTIVE 没有任何客户端中断的节点。

向负载均衡器添加新接口

出于平衡目的或任何您需要的目的,可以为负载平衡器配置更多接口。 为此,只需按照 AWS 概述的步骤向 EC2 实例添加新接口即可。 请查看 AWS 提供的文章,以更好地了解这方面的最佳实践。 https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/best-practices-for-configuring-network-interfaces.html. 在向 EC2 实例添加新接口时,ZEVENET 会自动检测这些新接口,因此您现在可以使用它来根据需要进行配置。

 

借助ZEVENET在AWS中享受高级负载平衡和集群功能!

分享到:

根据GNU自由文档许可条款的文档。

本文是否有帮助?

相关文章