亚马逊AWS官方博客

AWS Gateway Load Balancer 简介 – 合作伙伴设备的轻松部署、可扩展性和高可用性

去年,我们启动了 Virtual Private Cloud (VPC) 入口路由,以允许将往返于互联网网关 (IGW) 或虚拟私有网关 (VGW) 的所有传入和传出流量路由至特定 Amazon Elastic Compute Cloud (EC2) 实例的弹性网络接口。借助 VPC 入口路由,您现在可以配置 VPC 将所有流量发送到一个 EC2 实例,通常来说,该实例运行网络安全工具来检测或阻止可疑网络流量,或者在将流量中继到其他 EC2 实例之前执行任何其他网络流量检测。

虽然这使设备更易于添加到网络,但确保高可用性和可扩展性仍然是一个难题。客户必须过度配置设备以应对峰值负载和高可用性,或者必须根据流量手动扩展和缩减设备,或者使用其他辅助工具,所有这些方法都会增加运营开销和成本。

今天,我们正式发布 AWS Gateway Load Balancer (GWLB),这项服务使部署、扩展和管理第三方虚拟设备(如防火墙入侵检测和防御系统、云中的深度数据包检测系统)的可用性变得简单且经济高效。除了安全设备之外,GWLB 还为数据分析、电信、物联网 (IoT) 和自定义设备提供同样的好处。AWS 合作伙伴网络AWS Marketplace 合作伙伴还可以为 AWS 客户提供虚拟设备即服务,而无需解决规模、可用性和服务交付等复杂问题。

Gateway Load Balancer – 工作原理
Gateway Load Balancer 将透明的网络网关(即所有流量都使用单个入口和出口点)与负载均衡器相结合,该负载均衡器可分发流量并根据需求扩展虚拟设备。

您可以通过在 VPC 路由表中进行简单的配置更新来将流量发送到 GWLB。借助 GWLB,客户可以在一组虚拟设备之间实现流量负载均衡,从而弹性扩展其虚拟设备。GWLB 通过在正常运行的虚拟设备之间路由数据流来提高可用性,并在设备运行状况不佳时重新路由流量。

借助 GWLB,您可以在 AWS 中使用自己选择的设备,并依靠 GWLB 来管理其扩展和可用性需求,同时保留技能集和现有流程。您还可以在一组虚拟设备之间实现流量负载均衡,从而弹性扩展您的虚拟设备。扩展和缩减设备可降低成本。GWLB 将两个方向的数据流发送到同一个设备,从而允许设备执行有状态的流量处理。

GWLB 和虚拟设备使用 GENEVE 封装相互交换应用程序流量,该封装允许 GWLB 保留原始流量的内容。GWLB 使用 Gateway Load Balancer 终端节点(GWLBe),这是一种由 AWS PrivateLink 提供支持的新型 VPC 终端节点,可以作为路由表中的下一次跳跃。这简化了跨 VPC 边界插入设备服务的过程。

例如,您可以创建容纳客户工作负载的客户 VPC,GWLB 终端节点将部署到该 VPC。AWS 合作伙伴的设备将部署在合作伙伴 VPC 中。

设备提供商和消费者可以驻留在不同的 AWS 账户和 VPC 中。GWLBe 实现了设备整合、安全策略的一致性、减少操作员错误以及无缝检查流量,而无需更改流量源或目的地,也不需要 NAT 转换。

为确保高可用性,您可以使用 GWLB 的高级路由功能将流量仅传送到运行良好的设备,并在设备因故障而变得运行状况不佳时重新路由流量。GWLB 跨 VPC 和用户账户工作,让您可以选择集中虚拟设备机组。能够跨用户账户使用 GWLB,使合作伙伴能够将其虚拟设备作为客户从 VPC 访问的 AWS 托管服务提供。这样可降低复杂性并提高安全性。

Gateway Load Balancer – 入门
要创建 GWLB,请在 EC2 控制台的 Load Balancing(负载均衡)菜单的 Load Balancer Wizard(Load Balancer 向导)中,选择 Gateway Load Balancer 的 Create(创建)按钮。

要配置 GWLB,请提供名称并确认您的 VPC 和子网选择,然后指定要为负载均衡器启用的可用区。选择 Next: Configure Routing(下一步: 配置路由)

GWLB 默认使用 GENEVE 协议和 6081 端口将请求路由到此目标组中的目标。选择 Next: Register Targets(下一步: 注册目标)

注册位于合作伙伴 VPC 中的 EC2 实例,然后在下一步中选择 Next: Review(下一步: 审核)Create(创建)

当使用虚拟设备软件配置 EC2 实例的安全组时,您可以添加 GENEVE 端口 – 6081 以从 GWLB 获取流量,并添加 HTTP 端口 – 80 以进行运行状况检查。

为了将流量传入客户端以及从客户端向 GWLB 后的设备传送流量,您可以设置 GWLB 终端节点 (GWLBe)。每个可用区至少需要两个子网,GWLBe 和应用程序子网各使用一个,至少两个路由表,GWLBe 和应用程序子网各使用一个,以及至少一个与 VPC 中 IGW 关联的入口路由表。

要通过 AWS 命令行界面 (CLI) 创建 Gateway Load Balancer 终端节点,请使用 create-vpc-endpoint-service-configuration 命令通过 Gateway Load Balancer 创建终端节点服务配置。

$ aws ec2-gwlb create-vpc-endpoint-service-configuration \
               --gateway-load-balancer-arns <provider_gwlb_arn> \
               --no-acceptance-required

使用 create-vpc-endpoint 命令为您的服务创建 Gateway Load Balancer 终端节点。

$ aws ec2-gwlb create-vpc-endpoint \
               --vpc-endpoint-type GatewayLoadBalancer \
	       --vpc-id <consumer-vpc-id> \
	       --subnet-ids <consumer-gwlbe-subnet-id>

接下来,编辑应用程序/实例和互联网网关中的路由表 customer-client-rtbconsumer-igw-rtb,将 GWLBe 添加为它们的下一次跳跃。对每个可用区的各个应用程序子网路由表重复此操作。

$ aws ec2 create-route --route-table-id <customer-instance-rtb> \
          --destination-cidr-block 0.0.0.0/0 --vpc-endpoint-id <vpce-id>
$ aws ec2 create-route --route-table-id <consumer-gwlbe-rtb-id> \
          --destination-cidr-block 10.0.0.32/28 --vpc-endpoint-id <vpce-id>
$ aws ec2 create-route --route-table-id <consumer-gwlbe-rtb-id> \ 
          --destination-cidr-block 10.0.0.64/28 --vpc-endpoint-id <vpce-id>

有关设置的更多信息,请观看包含以下完整步骤的演示视频

  1. 在 AWS Marketplace 中找到合作伙伴的虚拟设备软件
  2. 在您的 VPC 中启动设备实例
  3. 使用设备实例创建 GWLB 和目标组
  4. 创建需要检查流量的 GWLB 终端节点
  5. 更新路由表,使 GWLB 终端节点成为下一次跳跃

GWLB 合作伙伴
本次发布的 AWS GWLB 与诸多业界领先的合作伙伴集成,包括 Aviatrix、Check Point、Cisco、cPacket、Glasnostic、Fortinet、Hashicorp、Netscout、Palo Alto Networks、Radware、Trend Micro 和 Valtix。他们为我们提供了大量有帮助的反馈。以下是他们为分享其经验而撰写的部分博客文章(我将在有新文章发布时更新本文及链接)

通过 GWLB,AWS 合作伙伴可以提供几项托管服务,使用虚拟设备向 AWS 客户提供软件即服务 (SaaS),无需分别解决客户解决方案的可用性、负载均衡和云扩展问题。您可以通过在设备中支持 GENEVE 协议、实施软件来解码/编码 GWLB 元数据以及在 AWS 环境下对设备执行互操作性测试来集成到 GWLB。有关更多信息,请联系您的 AWS 合作伙伴团队。

现已推出
AWS Gateway Load Balancer 在以下区域提供:美国东部(弗吉尼亚北部)美国西部(俄勒冈)欧洲(爱尔兰)南美洲(圣保罗)以及亚太地区(悉尼),您可以在 AWS Marketplace 中查找合作伙伴的虚拟设备。请发送反馈给 Amazon EC2 的 AWS 论坛或通过您通常的 AWS 支持联系人发送反馈。要了解更多信息,请访问文档

Channy