莱迪VPC思的目标群体 - Amazon VPC Lattice

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

莱迪VPC思的目标群体

VPC莱迪思目标组是运行您的应用程序或服务的目标或计算资源的集合。目标可以是EC2实例、IP 地址、Lambda 函数、应用程序负载均衡器或 Kubernetes Pod。您还可以将现有服务附加到目标组。有关在VPC莱迪思中使用Kubernetes的更多信息,请参阅AWS 网关API控制器用户指南。

每个目标组均用于将请求路由到一个或多个已注册的目标。在创建侦听器规则时,您可以指定目标组和条件。满足规则条件时,流量会转发到相应的目标组。您可以为不同类型的请求创建不同的目标组。例如,为一般请求创建一个目标组,为包含特定规则条件(如路径或标头值)的请求创建其他目标组。

具有侦听器、侦听器规则和两个目标组的服务。

您可以根据目标组来定义服务的运行状况检查设置。每个目标组均使用默认运行状况检查设置,除非您在创建目标组时将其覆盖或稍后对其进行修改。在侦听器的规则中指定目标组后,服务将持续监控向该目标组注册的所有目标的运行状况。服务将请求路由到运行正常的已注册目标。

要在规则中为服务侦听器指定目标组,目标组必须与服务位于同一账户中。

VPC莱迪思的目标群体与 Elastic Load Balancing 提供的目标群体类似,但它们不可互换。

路由配置

默认情况下,服务会使用您在创建目标组时指定的协议和端口号,将请求路由到目标。此外,您可以覆盖在将目标注册到目标组时用于将流量路由到目标的端口。

目标组支持以下协议和端口:

  • 协议:HTTP,HTTPS,TCP

  • 端口:1-65535

如果目标组配置了HTTPS协议或使用了运行HTTPS状况检查,则与目标的TLS连接将使用来自监听器的安全策略。VPC莱迪思使用您在目标上安装的证书与目标建立TLS连接。VPC莱迪思不验证这些证书。因此,您可以使用自签名证书或已过期的证书。VPC莱迪思与目标之间的流量在数据包级别进行身份验证,因此即使目标上的证书无效,也不会面临 man-in-the-middle攻击或欺骗的风险。

TCP只有TLS听众才支持目标组。

路由算法

默认情况下,使用循环路由算法将请求路由到运行状况良好的目标。

当VPC莱迪思服务收到请求时,它使用以下流程:

  1. 按优先级顺序评估侦听器规则以确定要应用的规则。

  2. 使用默认的循环算法,从规则操作的目标组中选择一个目标。每个目标组的路由都是单独进行的,即使某个目标已在多个目标组中注册。

如果目标组仅包含运行状况不良的注册目标,则会将请求路由到所有目标,而不考虑其运行状况如何。这意味着,如果所有目标同时未通过运行状况检查,则VPC莱迪思服务将无法打开。故障打开的作用是根据轮循算法,允许流量进入所有目标,无论其运行状况如何。

Target type

创建目标组时,指定其目标类型,此类型将确定您在向此目标组注册目标时指定的目标的类型。创建目标组后,您无法更改其目标类型。

以下是可能的目标类型:

INSTANCE

这些目标通过实例 ID 指定。

IP

目标是 IP 地址。

LAMBDA

目标是 Lambda 函数。

ALB

目标是 Application Load Balancer。

注意事项
  • 当目标类型为时IP,必须VPC为目标组指定子网中的 IP 地址。如果您需要从外部注册 IP 地址VPC,请创建一个类型的目标组ALB并向 Application Load Balancer 注册这些 IP 地址。

  • 当目标类型为时IP,您无法注册VPC端点或可公开路由的 IP 地址。

  • 如果目标类型为 LAMBDA,则可以注册单个 Lambda 函数。当服务收到对 Lambda 函数的请求时,将会调用 Lambda 函数。如果要向服务注册多个 lambda 函数,则需要使用多个目标组。

  • 当目标类型为时ALB,您可以将单个内部Application Load Balancer注册为最多两个VPC莱迪思服务的目标。为此,请将Application Load Balancer注册到两个不同的目标组,由两个不同的VPC莱迪思服务使用。此外,目标应用程序负载均衡器必须至少有一个侦听器,其端口与目标组端口匹配。

  • 要将ECS任务注册为目标,请使用ALB目标类型并为您的 Amazon ECS 服务注册 Application Load Balancer。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的服务负载均衡

  • 要将 EKS Pod 注册为目标,请使用AWS 网关API控制器,该控制器从 Kubernetes 服务获取 IP 地址。

  • 如果目标组协议是TCP,则仅支持的目标类型是INSTANCEIP

IP 地址类型

当您创建目标类型为 IP 的目标组时,您可以为目标组指定 IP 地址类型。此操作指定负载均衡器使用何种类型的地址向目标发送请求,以及运行状况检查。可能的值为 IPv4IPv6。默认为 IPV4

注意事项
  • 如果您创建的 IP 地址类型为的目标组IPv6,则为VPC该目标组指定的目标组必须具有IPv6地址范围。

  • 向目标组注册的 IP 地址必须与目标组的 IP 地址类型匹配。例如,如果目标组的 IP IPv6 地址类型为,则无法在目标组中注册该地址IPv4

  • 您在目标组中注册的 IP 地址必须位于您为目标组指定的 IP 地址范围内。VPC

协议版本

默认情况下,服务使用 HTTP /1.1 向目标发送请求。您可以使用协议版本通过 HTTP /2 或 g RPC 向目标发送请求。

下表汇总了请求协议和目标组协议版本组合的结果。

请求协议 协议版本 结果
HTTP/1.1 HTTP/1.1 成功
HTTP/2 HTTP/1.1 成功
g RPC HTTP/1.1 错误
HTTP/1.1 HTTP/2 错误
HTTP/2 HTTP/2 成功
g RPC HTTP/2 如果目标支持 g 则成功 RPC
HTTP/1.1 g RPC 错误
HTTP/2 g RPC 如果有POST请求则成功
g RPC g RPC 成功
g RPC 协议版本的注意事项
  • 唯一支持的监听器协议是HTTPS。

  • 唯一支持的目标类型是 INSTANCEIP

  • 该服务解析 g RPC 请求并根据包、服务和方法将 g RPC 调用路由到相应的目标组。

  • 不能将 Lambda 函数用作目标。

HTTP/2 协议版本的注意事项
  • 唯一支持的监听器协议是HTTPS。您可以HTTPS为目标组协议选择HTTP或。

  • 唯一支持的侦听器规则是正向和固定响应。

  • 唯一支持的目标类型是 INSTANCEIP

  • 服务支持来自客户端的流。服务不支持发往目标的流。