本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
莱迪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莱迪思服务收到请求时,它使用以下流程:
-
按优先级顺序评估侦听器规则以确定要应用的规则。
-
使用默认的循环算法,从规则操作的目标组中选择一个目标。每个目标组的路由都是单独进行的,即使某个目标已在多个目标组中注册。
如果目标组仅包含运行状况不良的注册目标,则会将请求路由到所有目标,而不考虑其运行状况如何。这意味着,如果所有目标同时未通过运行状况检查,则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,则仅支持的目标类型是
INSTANCE
和IP
。
IP 地址类型
当您创建目标类型为 IP
的目标组时,您可以为目标组指定 IP 地址类型。此操作指定负载均衡器使用何种类型的地址向目标发送请求,以及运行状况检查。可能的值为 IPv4
和 IPv6
。默认为 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。
-
唯一支持的目标类型是
INSTANCE
和IP
。 -
该服务解析 g RPC 请求并根据包、服务和方法将 g RPC 调用路由到相应的目标组。
-
不能将 Lambda 函数用作目标。
HTTP/2 协议版本的注意事项
-
唯一支持的监听器协议是HTTPS。您可以HTTPS为目标组协议选择HTTP或。
-
唯一支持的侦听器规则是正向和固定响应。
-
唯一支持的目标类型是
INSTANCE
和IP
。 -
服务支持来自客户端的流。服务不支持发往目标的流。