

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

# 通过以下方式共享您的服务 AWS PrivateLink
<a name="privatelink-share-your-services"></a>

您可以托管自己的 AWS PrivateLink 强化服务（称为*端点服务*），并与其他 AWS 客户共享。

**Topics**
+ [概述](#endpoint-service-overview)
+ [DNS 主机名](#endpoint-service-dns-hostnames)
+ [私有 DNS](#endpoint-service-private-dns)
+ [子网和可用区](#endpoint-service-subnets-zones)
+ [跨区域访问](#endpoint-service-cross-region)
+ [IP 地址类型](#endpoint-service-ip-address-type)
+ [创建端点服务](create-endpoint-service.md)
+ [配置端点服务](configure-endpoint-service.md)
+ [管理 DNS 名称](manage-dns-names.md)
+ [接收端点服务事件的提醒](create-notification-endpoint-service.md)
+ [删除端点服务](delete-endpoint-service.md)

## 概述
<a name="endpoint-service-overview"></a>

下图显示了您如何 AWS 与其他 AWS 客户共享托管的服务，以及这些客户如何连接到您的服务。作为服务提供商，您可在 VPC 中创建网络负载均衡器作为服务前端。然后，您可在创建 VPC 端点服务配置时选择此负载均衡器。您可向特定 AWS 主体授予权限，以便它们可以连接到您的服务。作为服务使用者，客户可创建接口 VPC 端点，该端点会在他们从其 VPC 中选择的子网和您的端点服务之间建立连接。负载均衡器接收来自服务使用者的请求并将请求路由到托管您服务的目标。

![\[服务使用者连接到由服务提供商托管的端点服务。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/privatelink/images/endpoint-services.png)


为实现低延迟和高可用性，建议您在至少两个可用区中提供服务。

## DNS 主机名
<a name="endpoint-service-dns-hostnames"></a>

当服务提供商创建 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
<a name="endpoint-service-private-dns"></a>

服务提供商还可为其端点服务关联私有 DNS 名称，以便服务使用者继续使用其现有的 DNS 名称访问该服务。如果服务提供商将私有 DNS 名称与其端点服务相关联，则服务使用者可以为其接口端点启用私有 DNS 名称。如果服务提供商未启用私有 DNS，则服务使用者可能需要更新其应用程序，以使用 VPC 端点服务的公有 DNS 名称。有关更多信息，请参阅 [管理 DNS 名称](manage-dns-names.md)。

## 子网和可用区
<a name="endpoint-service-subnets-zones"></a>

您的端点服务在为网络服务均衡器启用的可用区中提供。为获得高可用性和弹性，我们建议您在至少两个可用区中启用负载均衡器，在每个已启用的区域中部署 EC2 实例，并将这些实例注册到您的负载均衡器目标组。

您可以启用跨区域负载均衡，以替代在多个可用区中托管端点服务。但是，如果托管端点服务的区域出现故障，则使用者将无法从两个区域访问端点服务。还要考虑的是，为网络负载均衡器启用跨区域负载均衡后，将收取 EC2 数据传输费用。

使用者可以在提供端点服务的可用区中创建接口 VPC 端点。我们将在使用者为 VPC 端点配置的每个子网中创建一个端点网络接口。我们将根据 VPC 端点的 IP 地址类型，为其子网中的每个端点网络接口分配 IP 地址。当请求针对 VPC 端点服务使用区域端点时，我们会选择一个运行正常的端点网络接口，并且使用轮询算法在不同可用区中的网络接口之间切换。然后，我们会将流量解析到选定端点网络接口的 IP 地址。

如果对于其使用案例来说，最好将流量保持在同一个可用区内，则使用者可使用区域端点作为 VPC 端点。

## 跨区域访问
<a name="endpoint-service-cross-region"></a>

服务提供商可以在一个区域托管服务，并在一组受支持的区域中提供该服务。服务使用者在创建端点时选择服务区域。

**Permissions**
+ 默认情况下，IAM 实体没有在多个区域提供端点服务或跨区域访问端点服务的权限。要授予跨区域访问所需的权限，IAM 管理员可以创建允许仅限 `vpce:AllowMultiRegion` 权限操作的 IAM 策略。
+ 要控制 IAM 实体在创建端点服务时可以指定为支持区域的区域，请使用 `ec2:VpceSupportedRegion` 条件键。
+ 要控制 IAM 实体在创建 VPC 端点时可以指定为服务区域的区域，请使用 `ec2:VpceServiceRegion` 条件键。

**注意事项**
+ 服务提供商必须先选择加入一个选择加入区域，然后才能将其添加为端点服务的支持区域。
+ 您的端点服务必须可以从其主机区域进行访问。您无法将主机区域从支持的区域集中移除。为实现冗余，您可以在多个区域部署端点服务，并为每个端点服务启用跨区域访问。
+ 服务使用者必须先选择加入一个选择加入区域，然后才能将其选择为端点的服务区域。我们建议服务使用者尽可能使用区域内连接而非跨区域连接来访问服务。区域内连接可提供更低的延迟和成本。
+ 如果服务提供商将某个区域从支持的区域集中移除，则服务使用者在创建新的端点时无法选择该区域作为服务区域。请注意，这不会影响从使用此区域作为服务区域的现有端点访问端点服务。
+ 为获得高可用性，提供商必须使用至少两个可用区。跨区域访问不需要提供商和使用者使用相同的可用区。
+ 以下可用区不支持跨区域访问：`use1-az3`、`usw1-az2`、`apne1-az3`、`apne2-az2` 和 `apne2-az4`。
+ 通过跨区域访问， AWS PrivateLink 管理可用区之间的故障转移。它不管理跨区域的失效转移。
+ 为 TCP 空闲超时配置自定义值的网络负载均衡器不支持跨区域访问。
+ UDP 分段不支持跨区域访问。
+ 只有您通过 AWS PrivateLink共享的服务才支持跨区域访问。

## IP 地址类型
<a name="endpoint-service-ip-address-type"></a>

服务提供商可以通过 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**或 **Dual** stack。
+ **IPv6**— 为私有、区域和区域 DNS 名称创建 AAAA 记录。IP 地址类型必须是**IPv6**或 **Dual** stack。
+ **Dualstack**（双堆栈）– 为私有、区域和分区 DNS 名称创建 A 和 AAAA 记录。IP 地址类型必须为 **Dualstack**（双堆栈）。