创建由 Amazon PrivateLink 提供支持的服务
您可以创建由 Amazon PrivateLink(称为端点服务)支持的您自己的服务。您是服务提供商,而创建与您的服务之间的连接的 Amazon 主体是服务使用者。
端点服务需要网络负载均衡器或网关负载均衡器。负载均衡器接收来自服务使用者的请求并将请求路由到您的服务。在这种情况下,您将使用网络负载均衡器创建端点服务。有关使用网关负载均衡器创建端点服务的更多信息,请参阅 访问虚拟设备。
注意事项
-
端点服务在您创建端点服务的区域可用。您可以使用 VPC 对等连接从其他区域访问端点服务。
-
端点服务仅支持通过 TCP 的流量。
-
当服务使用者检索有关端点服务的信息时,他们只能看到与服务提供商共有的可用区。当服务提供商与服务使用者处于不同的账户中时,
us-east-1a
等可用区名称可能会映射到每个 Amazon Web Services 账户 中不同的实际可用区。您可以使用可用区 ID 一致地标识服务的可用区。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的可用区 ID。 -
当服务使用者通过接口端点将流量发送至服务时,向应用程序提供的源 IP 地址是负载均衡器节点的私有 IP 地址而不是服务使用者的 IP 地址。如果您在负载均衡器上启用代理协议,则可从代理协议标头中获取服务使用者的地址和接口端点的 ID。有关更多信息,请参阅 Network Load Balancer 用户指南 中的代理协议。
-
如果一个端点服务与多个网络负载均衡器相关联,则每个端点网络接口都与一个负载均衡器相关联。当来自端点网络接口的第一个连接启动时,我们会随机选择端点网络接口所在的同一可用区中的一个网络负载均衡器。来自此端点网络接口的所有后续连接请求都使用所选的负载均衡器。我们建议您为端点服务的所有负载均衡器使用相同的侦听器和目标组配置,这样无论选择哪个负载均衡器,使用者都可以成功使用端点服务。
-
您的 Amazon PrivateLink 资源上有配额。有关更多信息,请参阅 Amazon PrivateLink 配额。
先决条件
-
在每个提供服务的可用区中,为端点服务创建具有至少一个子网的 VPC。
-
要使服务使用者能够为您的端点服务创建 IPv6 接口 VPC 端点,VPC 和子网必须具有关联的 IPv6 CIDR 块。
-
在 VPC 中创建网络负载均衡器。为每个可用区选择一个子网,在该子网中,服务应可供服务使用者使用。为实现低延迟和容错能力,建议您在该区域的至少两个可用区中提供服务。
-
要使您的端点服务能够接受 IPv6 请求,其网络负载均衡器必须使用双堆栈 IP 地址类型。目标无需支持 IPv6 流量。有关更多信息,请参阅《网络负载均衡器用户指南》中的 IP 地址类型。
如果您处理来自代理协议版本 2 标头的源 IP 地址,请验证您是否可以处理 IPv6 地址。
-
在每个提供服务的可用区中启动实例,并将其注册到负载均衡器目标组。如果您未在所有已启用的可用区中启动实例,则可启用跨区域负载均衡,以支持使用分区 DNS 主机名访问服务的服务使用者。启用跨区域负载均衡后,可能收取区域数据传输费用。有关更多信息,请参阅《网络负载均衡器用户指南》中的跨区域负载均衡
创建端点服务
按照以下步骤,使用网络负载均衡器创建端点服务。
使用控制台创建端点服务
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择 Endpoint services(端点服务)。
-
选择 Create endpoint service(创建端点服务)。
-
对于 Load balancer type(负载均衡器类型),选择 Network(网络)。
-
对于 Available load balancers(可用负载均衡器),选择要与端点服务关联的 Network Load Balancer。
-
在 Require acceptance for endpoint(需要接受以使用端点)选项中,选择 Acceptance required(需要接受)以要求手动接受对端点服务的连接请求。否则将自动接受这些请求。
-
对于 Enable private DNS name(启用私有 DNS 名称),选择 Associate a private DNS name with the service(将私有 DNS 名称与服务关联)以关联服务使用者可用于访问您服务的私有 DNS 名称,然后输入私有 DNS 名称。否则,服务使用者可以使用 Amazon 提供的特定于端点的 DNS 名称。服务提供商必须先验证服务使用者拥有该域,然后服务使用者才能使用私有 DNS 名称。有关更多信息,请参阅管理 DNS 名称。
-
对于 Supported IP address types(支持的 IP 地址类型),执行以下任一操作:
-
选择 IPv4 – 启用端点服务以接受 IPv4 请求。
-
选择 IPv6 – 启用端点服务以接受 IPv6 请求。
-
选择 IPv4 和 IPv6 – 启用端点服务以接受 IPv4 和 IPv6 请求。
-
-
(可选)若要添加标签,请选择 Add new tag(添加新标签),然后输入该标签的键和值。
-
选择 Create(创建)。
使用命令行创建端点服务
-
create-vpc-endpoint-service-configuration (Amazon CLI)
-
New-EC2VpcEndpointServiceConfiguration (Tools for Windows PowerShell)
使端点服务可供服务使用者使用
Amazon 主体可通过创建接口 VPC 端点来私密地连接到您的端点服务。服务提供商必须执行以下操作才能向服务使用者提供服务。
作为服务使用者连接到端点服务
服务使用者可通过以下步骤创建接口端点以连接到端点服务。
使用控制台创建接口端点
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择 Endpoints(端点)。
-
选择 Create endpoint(创建端点)。
-
在 Service category(服务类别)选项中,选择 Other endpoint services(其他端点服务)。
-
对于 Service name(服务名称),请输入服务的名称(例如
com.amazonaws.vpce.us-east-1.vpce-svc-0e123abc123198abc
)然后选择 Verify service(验证服务)。 -
对于 VPC,选择要在其中创建端点的 VPC。
-
对于 Subnets(子网),选择您将从中访问端点服务的子网(可用区)。
-
对于 IP address type(IP 地址类型),可从以下选项中进行选择:
-
IPv4 – 将 IPv4 地址分配给端点网络接口。仅当所有选定子网都具有 IPv4 地址范围且端点服务接受 IPv4 请求时,才支持此选项。
-
IPv6 – 将 IPv6 地址分配给端点网络接口。仅当所有选定子网均为仅限 IPv6 的子网且端点服务接受 IPv6 请求时,才支持此选项。
-
Dualstack(双堆栈)– 将 IPv4 和 IPv6 地址分配给端点网络接口。仅当所有选定子网都具有 IPv4 和 IPv6 地址范围且端点服务接受 IPv4 和 IPv6 请求时,才支持此选项。
-
-
对于 DNS record IP type(DNS 记录 IP 类型),可从以下选项中进行选择:
-
IPv4 – 为私有、区域和分区 DNS 名称创建 A 记录。IP 地址类型必须为 IPv4 或 Dualstack(双堆栈)。
-
IPv6 – 为私有、区域和分区 DNS 名称创建 AAAA 记录。IP 地址类型必须为 IPv6 或 Dualstack(双堆栈)。
-
Dualstack(双堆栈)– 为私有、区域和分区 DNS 名称创建 A 和 AAAA 记录。IP 地址类型必须为 Dualstack(双堆栈)。
-
Service defined(已定义服务)– 为私有、区域和分区 DNS 名称创建 A 记录,为区域和分区 DNS 名称创建 AAAA 记录。IP 地址类型必须为 Dualstack(双堆栈)。
-
-
对于 Security group(安全组),选择要与端点网络接口关联的安全组。
-
选择 Create endpoint(创建端点)。
使用命令行创建接口端点
-
create-vpc-endpoint (Amazon CLI)
-
New-EC2VpcEndpoint (Tools for Windows PowerShell)