创建 Application Load Balancer - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

创建 Application Load Balancer

在中创建 Application Load Balancer Amazon Web Services Management Console。有关如何使用创建应用程序负载均衡器的信息 Amazon CLI,请参阅《应用程序负载均衡器用户指南》 Amazon CLI中的教程:使用创建应用程序负载均衡器

配置目标组以进行路由

在此部分中,您将为负载均衡器创建一个目标组,并为已注册到该组的目标创建运行状况检查标准。

每个目标组均用于将请求路由到一个或多个已注册的目标。满足规则条件时,流量会转发到相应的目标组。

您的负载均衡器会在已注册到其目标组的目标之间分配流量。将目标组关联到 Amazon ECS 服务时,Amazon ECS 会自动向目标组注册和注销容器。由于 Amazon ECS 会处理目标注册,因此您此时不要将目标添加到目标组。

使用控制台创建目标组
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 LOAD BALANCING (负载均衡) 下,选择 Target Groups (目标组)

  3. 选择 Create target group (创建目标组)

  4. 对于选择目标类型,请选择要按实例 ID 注册目标的实例、要按 IP 地址注册目标的 IP 地址,或者要将 Lambda 函数注册为目标的 Lambda 函数

    重要

    如果您的服务任务定义使用 awsvpc 网络模式(Fargate 启动类型需要该网络模式),则必须选择 IP addresses(IP 地址)作为目标类型,因为使用 awsvpc 网络模式的任务与弹性网络接口关联,而不是 Amazon EC2 实例。

  5. 对于 Target group name (目标组名称),输入目标组的名称。此名称在每个区域的每个账户中必须唯一,最多可以有 32 个字符,只能包含字母数字字符或连字符,不得以连字符开头或结尾。

  6. (可选) 对于 Protocol (协议)Port (端口),根据需要修改默认值。

  7. 如果目标类型为 IP 地址,则对于 IP 地址类型选择 IPv4,否则请跳到下一步。

    请注意,仅具有选定 IP 地址类型的目标才能包括在此目标组中。在创建目标组后,无法更改 IP 地址类型。

  8. 对于 VPC,选择 Virtual Private Cloud (VPC)。请注意,对于 IP 地址目标类型,可供选择的 VPC 是支持上一步中所选 IP 地址类型 的 VPC。

  9. (可选)对于 Protocol version (协议版本),根据需要修改默认值。

  10. (可选)在 Health checks (运行状况检查) 部分中,根据需要修改默认设置。

  11. 如果目标类型为 Lambda 函数,则可以通过在 Health checks (运行状况检查) 部分中选择 Enable (启用) 来启用运行状况检查。

  12. (可选) 添加一个或多个标签,如下所示:

    1. 展开标签部分。

    2. 选择 Add tag (添加标签)

    3. 输入标签键和标签值。

  13. 选择下一步

  14. 选择创建目标组

定义您的负载均衡器

首先,为负载均衡器提供一些基本配置信息(如名称、网络和侦听器)。

侦听器是用于检查连接请求的进程。使用前端 (客户端到负载均衡器) 连接的协议和端口与后端 (负载均衡器到后端实例) 连接的协议和端口配置侦听器。在此示例中,您将配置一个侦听器,该侦听器接受端口 80 上的 HTTP 请求并使用 HTTP 将它们发送至端口 80 上的任务中的容器。

配置负载均衡器和侦听器
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中的负载平衡下,选择负载均衡器

  3. 选择 Create Load Balancer (创建负载均衡器)

  4. 应用程序负载均衡器下,选择创建

  5. Basic configuration(基本配置)下,执行以下操作:

    1. 对于Load balancer name(负载均衡器名称),输入负载均衡器的名称。例如:my-nlb

      您的 Application Load Balancer 的名称在该区域的 Application Load Balancer 和网络负载均衡器集中必须唯一。名称最多可包含 32 个字符,并且只能包含字母数字字符和连字符。它们不能以连字符或 internal- 开头或结尾。

    2. 对于 Scheme (方案),选择互联网-facing (面向互联网) 或 Internal (内部)。

      面向互联网的负载均衡器将来自客户端的请求通过互联网路由到目标。内部负载均衡器使用私有 IP 地址将请求路由到目标。

    3. 对于 IP 地址类型,请选择容器子网的 IP 地址。

  6. Network mapping(网络映射)下,请执行以下操作之一:

    1. 对于 VPC,选择您用于要在其上运行服务的容器实例的相同 VPC。

    2. 对于映射,选中要为负载均衡器使用的可用区。如果该可用区有一个子网,则将选择此子网。如果该可用区有多个子网,请选择其中一个子网。您只能为每个可用区域选择一个子网。您的负载均衡器子网配置必须包含容器实例所在的所有可用区。

  7. Security groups(安全组)下,执行以下操作:

    对于 Security groups(安全组),选择现有安全组或创建新安全组。

    您负载均衡器的安全组必须允许其通过侦听器端口和运行状况检查端口与已注册目标进行通信。控制台可代表您为负载均衡器创建一个具有允许此通信的规则的安全组。您也可以创建一个安全组,然后选择它。有关如何创建安全组的信息,请参阅 Elastic Load Balancing Application Load Balancer 中的您的 Application Load Balancer 的安全组

    (可选)要为负载均衡器创建新安全组,请选择 Create a new security group(创建新安全组)。

  8. Listeners and routing(侦听器和路由)下,执行以下操作:

    默认侦听器接收端口 80 上的 HTTP 流量。您可以保留默认协议和端口。对于 Default action(默认操作),选择您创建的目标组。

    创建负载均衡器后,您可以选择添加 HTTPS 侦听器。有关如何添加侦听器的信息,请参阅 Elastic Load Balancing 应用程序负载均衡器中的添加 HTTPS 侦听器

  9. (可选)您可以使用 Add-on services(附加服务)(例如 Amazon Global Accelerator)创建加速器并将负载均衡器与加速器关联。

    加速器名称最多可以包含 64 个字符。允许的字符为 a-z、A-Z、0-9 和 -(连字符)。加速器创建之后,可以使用 Amazon Global Accelerator 控制台来管理它。

  10. (可选)标记您的 Application Load Balancer。在 Tag and create(添加标签和创建)下,执行以下操作

    1. 展开标签部分。

    2. 选择 Add tag (添加标签)

    3. 输入标签键和标签值。

  11. 查看配置,然后选择创建负载均衡器

为您的容器实例创建安全组规则

创建 Application Load Balancer 后,您必须向容器实例安全组添加一个入站规则,该规则允许来自负载均衡器的流量到达容器。

允许来自负载均衡器的入站流量进入容器实例
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在左侧导航窗格中,选择 Security Groups

  3. 选择您的容器实例使用的安全组。如果已使用 Amazon ECS首次运行向导创建容器实例,则此安全组可有描述 ECS Allowed Ports (ECS 允许的端口)

  4. 选择 Inbound(入站)选项卡,然后选择 Edit inbound rules(编辑入站规则)。

  5. 对于类型,请选择所有流量

  6. 对于 Source(源),请选择 Custom(自定义),然后选择 Application Load Balancer 安全组。

    此规则允许来自 Application Load Balancer 的所有流量到达您向负载均衡器注册的任务中的容器。

  7. 选择 Save 以完成操作。

创建 Amazon ECS 服务

创建负载均衡器和目标组后,您可在创建服务时在服务定义中指定目标组。在启动服务的每个任务时,服务定义中指定的容器和端口组合将注册到目标组,并且负载均衡器中的流量将路由到该容器。有关更多信息,请参阅使用控制台创建服务