步骤 4.1:添加负载均衡器 - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

步骤 4.1:添加负载均衡器

重要

AWS OpsWorks Stacks 不再接受新客户。在 2024 年 5 月 26 日之前,现有客户将能够正常使用 OpsWorks 控制台、API、CLI 和 CloudFormation 资源,届时它们将停产。为准备此过渡,我们建议您尽快将堆栈过渡到AWS Systems Manager。有关更多信息,请参阅 AWS OpsWorks Stacks 生命周期终止常见问题解答将 AWS OpsWorks Stacks 应用程序迁移到 AWS Systems Manager Application Manager

Elastic Load Balancing 是一种 Amazon Web Service,将传入的应用程序流量自动分配到多个 Amazon EC2 实例。除了分发流量之外,Elastic Load Balancing 还执行以下操作:

  • 检测运行状况不佳的 Amazon EC2 实例。

    它将流量重新路由至其余运行正常的实例,直至运行不正常的实例恢复。

  • 自动扩展请求处理容量以响应传入流量

注意

负载均衡器有两种用途。一个显而易见的用途是使应用程序服务器上的负载达到均衡。此外,许多站点倾向于将其应用程序服务器和数据库与直接用户访问隔离开。借助 AWS OpsWorks Stacks,您可以通过运行包含公有子网和私有子网的 Virtual Private Cloud (VPC) 中的堆栈来执行此操作,如下所示。

  • 将应用程序服务器和数据库置于私有子网中,VPC 中的其他实例可以访问该私有子网,但用户不能访问。

  • 将用户流量定向到公有子网中的负载均衡器,然后由负载均衡器将流量转发到私有子网中的应用程序服务器,并向用户返回响应。

有关更多信息,请参阅 在 VPC 中运行堆栈。有关要在 VPC 中运行的扩展此演练中示例的 AWS CloudFormation 模板,请下载 OpsWorksVPCtemplates.zip 文件

尽管 Elastic Load Balancing 通常称为层,但其工作方式与其他内置层略有不同。您使用 Amazon EC2 控制台创建 Elastic Load Balancing 负载均衡器,然后将其挂载到您的某个现有层(通常是应用程序服务器层),而不是创建层并向其添加实例。AWS OpsWorks随后, Stacks 将向服务注册层的现有实例,并自动添加任何新实例。以下过程介绍如何将负载均衡器添加到 MyStack的 PHP App Server 层。

注意

AWS OpsWorks 堆栈不支持 Application Load Balancer。您只能将 Classic Load Balancer 与 AWS OpsWorks Stacks 配合使用。

将负载均衡器附加到 PHP App Server 层
  1. 使用 Amazon EC2 控制台为创建新的负载均衡器 MyStack。详细信息取决于您的账户是否支持 EC2 Classic。有关更多信息,请参阅 Elastic Load Balancing 入门。在运行 Create Load Balancer 向导时,按如下所示配置负载均衡器:

    定义负载均衡器

    为负载均衡器分配一个易于识别的名称(如 PHP-LB),以便在 AWS OpsWorks Stacks 控制台中轻松找到它。然后选择 Continue 以接受其余设置的默认值。

    如果您从 Create LB Inside 菜单中选择包含一个或多个子网的 VPC,则必须为要使用负载均衡器路由流量的每个可用区选择一个子网。

    分配安全组

    如果您的账户支持默认 VPC,则该向导将显示此页以确定负载均衡器的安全组。它不会为 EC2 Classic 显示此页。

    对于本演练,请选择 default VPC security group

    配置安全设置

    如果您在 Define Load Balancer 页面上选择 HTTPS 作为 Load Balancer Protocol,请在此页面上配置证书、密码和 SSL 协议设置。对于本演练,请接受默认值并选择 Configure Health Check

    配置运行状况检查

    将 Ping 路径设置为 / 并接受其余设置的默认值。

    添加 EC2 实例

    选择 Continue (继续);AWS OpsWorks Stacks 将自动向负载均衡器注册实例。

    添加标签

    添加标签,以帮助您查找。每个标签都是一个键值对;例如,为了进行本演练,您可以将 Description 指定为键,将 Test LB 指定为值。

    审核

    检查您的选择,选择 Create,然后选择 Close,这将启动负载均衡器。

  2. 如果在启动负载均衡器后您的账户支持默认 VPC,则必须确保其安全组具有合适的传入规则。默认规则不接受任何入站流量。

    1. 在 Amazon EC2 导航窗格中,选择 Security Groups

    2. 选择 default VPC security group

    3. Inbound 选项卡上,选择 Edit

    4. 在本演练中,将 Source 设置为 Anywhere,这将指示负载均衡器接受来自任何 IP 地址的传入流量。

  3. 返回到 AWS OpsWorks Stacks 控制台。在 Layers 页面上,选择层的 Network 链接,然后选择 Edit

  4. Elastic Load Balancing 下,选择您在步骤 1 中创建的负载均衡器,然后选择 Save

    当您将负载均衡器附加到层后,AWS OpsWorks Stacks 将自动注册该层的当前实例并在它们联机后添加新实例。

  5. Layers 页面上,单击负载均衡器的名称以打开其详细信息页面。当注册完成且此实例通过运行状况检查后,AWS OpsWorks Stacks 会在负载均衡器页面上的该实例旁显示绿色复选标记。

现在,您可以通过向负载均衡器发送请求的方法来运行 SimplePHPApp。

通过负载均衡器运行 SimplePHPApp
  1. 再次打开负载均衡器的详细信息页面 (如果尚未打开的话)。

  2. 在属性页面上,验证实例的运行状况检查状态,然后单击负载均衡器的 DNS 名称以运行 SimplePHPApp。负载均衡器会将请求转发到 PHP App Server 实例并返回响应,响应应与单击 PHP App Server 实例的公有 IP 地址时获得的响应完全相同。

注意

AWS OpsWorks Stacks 还支持 HAProxy 负载均衡器,对于某些应用程序可能具有优势。有关更多信息,请参阅 HAProxy AWS OpsWorks 堆栈层