本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过以下方式共享您的服务 AWS PrivateLink
您可以托管自己的 AWS PrivateLink 强化服务(称为端点服务),并与其他 AWS 客户共享。
概述
下图显示了您如何 AWS 与其他 AWS 客户共享托管的服务,以及这些客户如何连接到您的服务。作为服务提供商,您可在 VPC 中创建网络负载均衡器作为服务前端。然后,您可在创建 VPC 端点服务配置时选择此负载均衡器。您可向特定 AWS 主体授予权限,以便它们可以连接到您的服务。作为服务使用者,客户可创建接口 VPC 端点,该端点会在他们从其 VPC 中选择的子网和您的端点服务之间建立连接。负载均衡器接收来自服务使用者的请求并将请求路由到托管您服务的目标。
为实现低延迟和高可用性,建议您在至少两个可用区中提供服务。
DNS 主机名
当服务提供商创建 VPC 终端节点服务时, AWS 会为该服务生成终端节点特定的 DNS 主机名。这些名称的语法如下:
endpoint_service_id.region.vpce.amazonaws.com
以下是 us-east-2 区域中 VPC 端点服务的 DNS 主机名示例:
vpce-svc-071afff70666e61e0.us-east-2.vpce.amazonaws.com
当服务使用者创建接口 VPC 端点时,我们会创建区域和分区 DNS 名称,供服务使用者用于与端点服务进行通信。区域名称的语法如下:
endpoint_id.endpoint_service_id.service_region.vpce.amazonaws.com
分区名称的语法如下:
endpoint_id-endpoint_zone.endpoint_service_id.service_region.vpce.amazonaws.com
私有 DNS
服务提供商还可为其端点服务关联私有 DNS 名称,以便服务使用者继续使用其现有的 DNS 名称访问该服务。如果服务提供商将私有 DNS 名称与其端点服务相关联,则服务使用者可以为其接口端点启用私有 DNS 名称。如果服务提供商未启用私有 DNS,则服务使用者可能需要更新其应用程序,以使用 VPC 端点服务的公有 DNS 名称。有关更多信息,请参阅 管理 DNS 名称。
子网和可用区
您的端点服务在为网络服务均衡器启用的可用区中提供。为获得高可用性和弹性,我们建议您在至少两个可用区中启用负载均衡器,在每个已启用的区域中部署 EC2 实例,并将这些实例注册到您的负载均衡器目标组。
您可以启用跨区域负载均衡,以替代在多个可用区中托管端点服务。但是,如果托管端点服务的区域出现故障,则使用者将无法从两个区域访问端点服务。还要考虑的是,为网络负载均衡器启用跨区域负载均衡后,将收取 EC2 数据传输费用。
使用者可以在提供端点服务的可用区中创建接口 VPC 端点。我们将在使用者为 VPC 端点配置的每个子网中创建一个端点网络接口。我们将根据 VPC 端点的 IP 地址类型,为其子网中的每个端点网络接口分配 IP 地址。当请求针对 VPC 端点服务使用区域端点时,我们会选择一个运行正常的端点网络接口,并且使用轮询算法在不同可用区中的网络接口之间切换。然后,我们会将流量解析到选定端点网络接口的 IP 地址。
如果对于其使用案例来说,最好将流量保持在同一个可用区内,则使用者可使用区域端点作为 VPC 端点。
Cross-Region 访问
服务提供商可以在一个区域托管服务,并在一组受支持的区域中提供该服务。服务使用者在创建端点时选择服务区域。
Permissions
-
默认情况下,IAM 实体没有在多个区域提供端点服务或跨区域访问端点服务的权限。要授予跨区域访问所需的权限,IAM 管理员可以创建允许仅限
vpce:AllowMultiRegion权限操作的 IAM 策略。 -
要控制 IAM 实体在创建端点服务时可以指定为支持区域的区域,请使用
ec2:VpceSupportedRegion条件键。 -
要控制 IAM 实体在创建 VPC 端点时可以指定为服务区域的区域,请使用
ec2:VpceServiceRegion条件键。
注意事项
-
服务提供商必须先选择加入一个选择加入区域,然后才能将其添加为端点服务的支持区域。
-
您的端点服务必须可以从其主机区域进行访问。您无法将主机区域从支持的区域集中移除。为实现冗余,您可以在多个区域部署端点服务,并为每个端点服务启用跨区域访问。
-
服务使用者必须先选择加入一个选择加入区域,然后才能将其选择为端点的服务区域。只要有可能,我们建议服务使用者使用区域内连接而不是跨区域连接来访问服务。 Intra-Region 连接可提供更低的延迟和更低的成本。
-
如果服务提供商将某个区域从支持的区域集中移除,则服务使用者在创建新的端点时无法选择该区域作为服务区域。请注意,这不会影响从使用此区域作为服务区域的现有端点访问端点服务。
-
为了获得高可用性,提供商必须使用至少两个可用区。 Cross-Region 访问不需要提供商和消费者使用相同的可用区。
-
Cross-Region 以下可用区不支持访问:
use1-az3、usw1-az2、apne1-az3apne2-az2、和apne2-az4。 -
通过跨区域访问,可以 AWS PrivateLink 管理可用区之间的故障转移。它不管理跨区域的失效转移。
-
Cross-Region 为 TCP 空闲超时配置了自定义值的网络负载均衡器不支持访问。
-
Cross-Region UDP 分段不支持访问。
-
Cross-Region 只有您通过共享的服务才支持访问权限 AWS PrivateLink。
IP 地址类型
服务提供商可通过 IPv4、IPv6 或 IPv4 和 IPv6 向服务使用者提供其服务端点,即使其后端服务器仅支持 IPv4。如果您启用双堆栈支持,则现有使用者可继续使用 IPv4 访问您的服务,并且新的使用者可选择使用 IPv6 访问您的服务。
如果接口 VPC 端点支持 IPv4,则端点网络接口具有 IPv4 地址。如果接口 VPC 端点支持 IPv6,则端点网络接口具有 IPv6 地址。无法从互联网访问端点网络接口的 IPv6 地址。如果您使用 IPv6 地址描述端点网络接口,请注意已启用 denyAllIgwTraffic。
为端点服务启用 IPv6 的要求
-
端点服务的 VPC 和子网必须具有关联的 IPv6 CIDR 块。
-
端点服务的所有网络负载均衡器必须使用双堆栈 IP 地址类型。目标无需支持 IPv6 流量。如果该服务处理来自代理协议版本 2 标头的源 IP 地址,则它必须处理 IPv6 地址。
为接口端点启用 IPv6 的要求
-
端点服务必须支持 IPv6 请求。
-
接口端点的 IP 地址类型必须与接口端点的子网兼容,如下所述:
-
IPv4 – 将 IPv4 地址分配给端点网络接口。仅当所有选定子网都具有 IPv4 地址范围时,才支持此选项。
-
IPv6 – 将 IPv6 地址分配给端点网络接口。仅当所有选定子网均为仅限 IPv6 的子网时,才支持此选项。
-
Dualstack(双堆栈)– 将 IPv4 和 IPv6 地址分配给端点网络接口。仅当所有选定子网都具有 IPv4 和 IPv6 地址范围时,才支持此选项。
-
接口端点的 DNS 记录 IP 地址类型
接口端点支持的 DNS 记录 IP 地址类型决定了我们创建的 DNS 记录。接口端点的 DNS 记录 IP 地址类型必须与接口端点的 IP 地址类型兼容,如下所述:
-
IPv4 – 为私有、区域和分区 DNS 名称创建 A 记录。IP 地址类型必须为 IPv4 或 Dualstack(双堆栈)。
-
IPv6 – 为私有、区域和分区 DNS 名称创建 AAAA 记录。IP 地址类型必须为 IPv6 或 Dualstack(双堆栈)。
-
Dualstack(双堆栈)– 为私有、区域和分区 DNS 名称创建 A 和 AAAA 记录。IP 地址类型必须为 Dualstack(双堆栈)。