使用 AWS CLI 开始使用网络负载均衡器 - Elastic Load Balancing

使用 AWS CLI 开始使用网络负载均衡器

本教程介绍通过 AWS CLI 使用 Network Load Balancer 的实践操作。

前提条件

  • 安装,AWS CLI或者如果您使用的是不支持 Network Load Balancer 的版本,则更新到最新版本的。AWS CLI有关更多信息,请参阅 AWS Command Line Interface 用户指南中的安装 AWS Command Line Interface

  • 确定将用于 EC2 实例的可用区。在每个这些可用区中配置至少带有一个公有子网的 Virtual Private Cloud (VPC)。

  • 决定是要创建 IPv4 还是双堆栈负载均衡器。如果您想要客户端仅使用 IPv4 地址与负载均衡器通信,则使用 IPv4。如果您想要客户端使用 IPv4 和 IPv6 地址与负载均衡器通信,则使用双堆栈。此外,您还可以使用双堆栈通过 IPv6 与后端目标(例如 IPv6 应用程序或双堆栈子网)进行通信。

  • 在每个可用区中至少启动一个 EC2 实例。确保这些实例的安全组允许侦听器端口上来自客户端的 TCP 访问和来自您的 VPC 的运行状况检查请求。有关更多信息,请参阅 目标安全组

步骤 1:创建网络负载均衡器并注册目标

要创建第一个负载均衡器,请完成以下步骤。

创建 IPv4 网络负载均衡器
  1. 使用 create-load-balancer 命令创建一个 IPv4 负载均衡器,并为在其中启动实例的每个可用区指定一个公有子网。每个可用区您只能指定一个子网。

    默认情况下,当使用 AWS CLI 创建网络负载均衡器时,这些均衡器不会自动使用 VPC 的默认安全组。如果在创建时没有将任何安全组与负载均衡器关联,则无法以后再将其关联。我们建议您在创建时使用 --security-groups 选项为负载均衡器指定安全组。

    aws elbv2 create-load-balancer --name my-load-balancer --type network --subnets subnet-0e3f5cac72EXAMPLE --security-groups sg-0123456789EXAMPLE

    输出包含负载均衡器的 Amazon Resource Name (ARN),格式如下:

    arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-load-balancer/1234567890123456
  2. 使用 create-target-group 命令创建一个 IPv4 目标组,并指定用于 EC2 实例的相同 VPC。IPv4 目标组支持 IP 和实例类型目标。

    aws elbv2 create-target-group --name my-targets --protocol TCP --port 80 --vpc-id vpc-0598c7d356EXAMPLE

    输出包含目标组的 ARN,格式如下:

    arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/1234567890123456
  3. 使用 register-targets 命令将您的实例注册到目标组:

    aws elbv2 register-targets --target-group-arn targetgroup-arn --targets Id=i-1234567890abcdef0 Id=i-0abcdef1234567890
  4. 使用 create-listener 命令为您的负载均衡器创建侦听器,该侦听器带有将请求转发到目标组的默认规则:

    aws elbv2 create-listener --load-balancer-arn loadbalancer-arn --protocol TCP --port 80 \ --default-actions Type=forward,TargetGroupArn=targetgroup-arn

    输出包含侦听器的 ARN,格式如下:

    arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/net/my-load-balancer/1234567890123456/1234567890123456
  5. (可选)您可以使用此 describe-target-health 命令验证目标组的已注册目标的运行状况:

    aws elbv2 describe-target-health --target-group-arn targetgroup-arn
创建双堆栈网络负载均衡器
  1. 使用 create-load-balancer 命令创建一个双堆栈负载均衡器,并为在其中启动实例的每个可用区指定一个公有子网。每个可用区您只能指定一个子网。

    aws elbv2 create-load-balancer --name my-load-balancer --type network --subnets subnet-0e3f5cac72EXAMPLE --ip-address-type dualstack

    输出包含负载均衡器的 Amazon Resource Name (ARN),格式如下:

    arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-load-balancer/1234567890123456
  2. 使用 create-target-group 命令创建一个双堆栈目标组,并指定用于 EC2 实例的相同 VPC。

    您的双堆栈负载均衡器必须与一个 TCP 或 TLS 目标组结合使用。

    您可以创建 IPv4 和 IPv6 目标组,以便关联双堆栈负载均衡器。目标组的 IP 地址类型决定了负载均衡器用于与后端目标进行通信以及检查后端目标运行状况的 IP 版本。

    IPv4 目标组支持 IP 和实例类型目标。IPv6 目标组仅支持 IP 目标。

    aws elbv2 create-target-group --name my-targets --protocol TCP --port 80 --vpc-id vpc-0598c7d356EXAMPLE --ip-address-type [ipv4 or ipv6]

    输出包含目标组的 ARN,格式如下:

    arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/1234567890123456
  3. 使用 register-targets 命令将您的实例注册到目标组:

    aws elbv2 register-targets --target-group-arn targetgroup-arn --targets Id=i-1234567890abcdef0 Id=i-0abcdef1234567890
  4. 使用 create-listener 命令为您的负载均衡器创建一个侦听器,该侦听器带有将请求转发到目标组的默认规则。双堆栈负载均衡器必须具有 TCP 或 TLS 侦听器。

    aws elbv2 create-listener --load-balancer-arn loadbalancer-arn --protocol TCP --port 80 \ --default-actions Type=forward,TargetGroupArn=targetgroup-arn

    输出包含侦听器的 ARN,格式如下:

    arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/net/my-load-balancer/1234567890123456/1234567890123456
  5. (可选)您可以使用此 describe-target-health 命令验证目标组的已注册目标的运行状况:

    aws elbv2 describe-target-health --target-group-arn targetgroup-arn

步骤 2:(可选)为网络负载均衡器定义弹性 IP 地址

在创建 Network Load Balancer 时,可以使用子网映射为每个子网指定一个弹性 IP 地址。

aws elbv2 create-load-balancer --name my-load-balancer --type network \ --subnet-mappings SubnetId=subnet-0e3f5cac72EXAMPLE,AllocationId=eipalloc-12345678

步骤 3:(可选)删除您的网络负载均衡器

当您不再需要负载均衡器和目标组时,可以将其删除,如下所示:

aws elbv2 delete-load-balancer --load-balancer-arn loadbalancer-arn aws elbv2 delete-target-group --target-group-arn targetgroup-arn