使用网关负载均衡器入门使用Amazon CLI - Elastic Load Balancing
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

使用网关负载均衡器入门使用Amazon CLI

网关负载均衡器可轻松部署、扩展和管理第三方虚拟设备(如安全设备)。

在本教程中,我们将使用网关 Load Balancer 和网关 Load Balancer 端点来实施检查系统。

Overview

网关 Load Balancer 终端节点是在服务提供商 VPC 中的虚拟设备与服务使用者 VPC 中的应用程序服务器之间提供私有连接的 VPC 终端节点。网关 Load Balancer 部署在与虚拟设备相同的 VPC 中。这些设备已注册为网关 Load Balancer 的目标组。

应用程序服务器在服务使用者 VPC 中的一个子网(目标子网)中运行,而网关 Load Balancer 终端节点位于同一 VPC 的另一个子网中。通过互联网关进入服务使用者 VPC 的所有流量首先会路由到网关 Load Balancer 终端节点进行检查,然后路由到目标子网。

同样,离开应用程序服务器(目标子网)的所有流量都会路由到网关 Load Balancer 终端节点,以便进行检查,然后再路由到 Internet。下面的网络图是如何使用网关 Load Balancer 终端节点访问端点服务的可视表示。


    使用网关负载均衡器终端节点访问终端节点服务

后面的编号项目,突出显示和解释上图中显示的元素。

从互联网到应用程序的流量(蓝色箭头):

  1. 流量通过互联网关进入服务使用者 VPC。

  2. 流量由于入口路由,会发送到网关 Load Balancer 终端节点。

  3. 流量将发送到网关 Load Balancer,以便通过安全设备进行检查。

  4. 流量在检查后会发回网关 Load Balancer 终端节点。

  5. 流量被发送到应用程序服务器(目标子网)。

从应用程序到互联网的流量(橙色箭头):

  1. 作为应用程序服务器子网上配置的默认路由的结果,流量将被发送到网关 Load Balancer 器终端节点。

  2. 流量将发送到网关 Load Balancer,以便通过安全设备进行检查。

  3. 流量在检查后会发回网关 Load Balancer 终端节点。

  4. 根据路由表配置将流量发送到 Internet 网关。

  5. 流量被路由回互联网。

Routing

Internet 网关的路由表必须包含将目的地为应用程序服务器的流量路由到网关 Load Balancer 终端节点的条目。要指定网关 Load Balancer 终端节点,请使用 VPC 终端节点的 ID。

目的地 目标
10.0.0.0/16 本地
10.0.1.0/24 vpc-endpoint-id

带有应用程序服务器的子网的路由表必须包含将所有流量 (0.0.0.0/0) 从应用程序服务器路由到网关 Load Balancer 终端节点的条目。

目的地 目标
10.0.0.0/16 本地
0.0.0.0/0 vpc-endpoint-id

具有网关 Load Balancer 终端节点的子网的路由表必须路由从检查返回的流量到最终目的地。对于来自互联网的流量,本地路由可确保到达应用程序服务器。对于来自应用程序服务器的流量,请添加将所有流量路由到 Internet 网关的条目 (0.0.0.0/0)。

目的地 目标
10.0.0.0/16 本地
0.0.0.0/0 internet-gateway-id

Prerequisites

  • 安装Amazon CLI,或更新到最新版本的Amazon CLI(如果您使用的是不支持网关负载均衡器的版本)。有关更多信息,请参阅 Amazon Command Line Interface 用户指南中的安装 Amazon Command Line Interface

  • 确保服务使用者 VPC 对于包含应用程序服务器的每个可用区至少有两个子网。一个子网用于网关 Load Balancer 终端节点,另一个子网用于应用程序服务器。

  • 确保服务提供商 VPC 在每个包含安全设备实例的可用区域中至少有两个子网。一个子网用于网关 Load Balancer,另一个子网用于实例。

  • 在服务提供商 VPC 中的每个安全设备子网中至少启动一个安全设备实例。这些实例的安全组必须允许端口 6081 上的 UDP 流量。

第 1 步:创建网关 Load Balancer 并注册目标

使用以下过程创建负载均衡器、侦听器和目标组,并将安全设备实例注册为目标。

创建网关 Load Balancer 并注册目标

  1. 使用创建负载均衡器命令创建类型为gateway。您可以为每个启动安全设备实例的可用区指定一个子网。

    aws elbv2 create-load-balancer --name my-load-balancer --type gateway --subnets provider-subnet-id

    输出包含负载均衡器的 Amazon 资源名称 (ARN),格式如以下示例所示。

    arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/gwy/my-load-balancer/1234567890123456
  2. 使用创建目标组命令创建目标组,并指定在其中启动实例的服务提供商 VPC。

    aws elbv2 create-target-group --name my-targets --protocol GENEVE --port 6081 --vpc-id provider-vpc-id

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

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

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

    aws elbv2 create-listener --load-balancer-arn loadbalancer-arn --default-actions Type=forward,TargetGroupArn=targetgroup-arn

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

    arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/gwy/my-load-balancer/1234567890123456/abc1234567890123
  5. (可选)您可以使用以下命令验证目标组的已注册目标的运行状况描述目标运行状况命令。

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

第 2 步:创建网关负载均衡器终端节点

使用以下过程创建网关 Load Balancer 终端节点。网关 Load Balancer 终端节点是分区的。我们建议您为每个区域创建一个网关 Load Balancer 终端节点。有关更多信息,请参阅 。网关 Load Balancer 终端节点 ( Amazon PrivateLink )

要创建网关负载均衡器终端节点

  1. 使用创建 vpc-endpoint-service-装置命令使用网关 Load Balancer 创建终端节点服务配置。

    aws ec2 create-vpc-endpoint-service-configuration --gateway-load-balancer-arns loadbalancer-arn --no-acceptance-required

    输出包含服务 ID(例如,vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.vpce.

  2. 使用修改 vpc-endpoint-service-service-service-service-service-service-service-vpc-.命令允许服务使用者创建与您服务连接的终端节点的终端节点。服务使用者可以是 IAM 用户、IAM 角色或Amazonaccount. 以下示例添加对指定Amazonaccount.

    aws ec2 modify-vpc-endpoint-service-permissions --service-id vpce-svc-12345678901234567 --add-allowed-principals arn:aws:iam::123456789012:root
  3. 使用创建 vPC 端点命令为您的服务创建网关 Load Balancer 终端节点。

    aws ec2 create-vpc-endpoint --vpc-endpoint-type GatewayLoadBalancer --service-name com.amazonaws.vpce.us-east-2.vpce-svc-12345678901234567 --vpc-id consumer-vpc-id --subnet-ids consumer-subnet-id

    输出包含网关 Load Balancer 终端节点的 ID(例如,vpce-034567890abcdef)。

第 3 步:配置路由

配置服务使用者 VPC 的路由表,如下所示。这样,安全设备就可以对发往应用程序服务器的入站流量执行安全检查。

配置路由

  1. 使用创建路由命令向 Internet 网关的路由表中添加一个条目,该条目将发往应用程序服务器的流量路由到网关 Load Balancer 终结点。

    aws ec2 create-route --route-table-id gateway-rtb --destination-cidr-block 10.0.1.0/24 --vpc-endpoint-id vpce-01234567890abcdef
  2. 使用创建路由命令在子网的路由表中添加一个条目,该条目应用程序服务器将所有流量从应用程序服务器路由到网关 Load Balancer 终结点。

    aws ec2 create-route --route-table-id application-rtb --destination-cidr-block 0.0.0.0/0 --vpc-endpoint-id vpce-01234567890abcdef
  3. 使用创建路由命令在子网的路由表中添加一个条目,该条目具有网关 Load Balancer 终结点,该端点将源自应用程序服务器的所有流量路由到 Internet 网关。

    aws ec2 create-route --route-table-id endpoint-rtb --destination-cidr-block 0.0.0.0/0 --gateway-id igw-01234567890abcdef
  4. 对每个区域中的每个应用程序子网路由表重复此操作。