

# AWS Global Accelerator 中的标准加速器的端点
<a name="about-endpoints"></a>

AWS Global Accelerator 中的标准加速器的端点可以是网络负载均衡器、应用程序负载均衡器、Amazon EC2 实例或弹性 IP 地址。在 AWS Global Accelerator 中，静态 IP 地址充当客户端的单一接触点，并且 Global Accelerator 会通过标准加速器，将传入流量分配到各个运行状况良好的端点。Global Accelerator 通过您为侦听器指定的端口（或端口范围），将流量引导至端点所属的端点组中的端点。

每个端点组可以有多个端点。您可以将每个端点添加到多个端点组，但这些端点组必须与不同的侦听器相关联。当您将资源添加为端点时，资源必须是有效且活动的。

**重要**  
您配置为双堆栈的加速器（即要支持 IPv4 和 IPv6 的加速器）要求仅添加同样支持双堆栈的端点。网络负载均衡器、应用程序负载均衡器、Amazon EC2 实例可添加为双堆栈端点。

Global Accelerator 会持续监控标准端点组中包含的所有端点的运行状况。它仅将流量路由到运行状况良好的活动端点。如果 Global Accelerator 没有可将流量路由到其中的运行状况良好的端点，则会将流量路由到 AWS 区域 中的所有端点。

**Topics**
+ [对可添加为加速器端点的资源的要求](about-endpoints-caveats.md)
+ [添加标准端点](about-endpoints-adding-endpoints.md)
+ [编辑标准端点](about-endpoints-adding-endpoints-edit.md)
+ [移除标准端点](about-endpoints-adding-endpoints-remove.md)
+ [如何通过端点权重管理流量](about-endpoints-endpoint-weights.md)
+ [运行状况不佳的端点的失效转移的工作原理](about-endpoints-endpoint-weights.unhealthy-endpoints.md)
+ [如何避免导致 TCP 连接时间延迟的连接冲突](about-endpoints.avoid-connection-collisions.md)

# 对可添加为加速器端点的资源的要求
<a name="about-endpoints-caveats"></a>

对于可以添加为 AWS Global Accelerator 中标准加速器的端点的不同类型的资源，请注意以下要求和限制。

如果您计划为端点启用客户端 IP 地址保留，则还需要记住其它要求。有关更多信息，请参阅 [具有客户端 IP 地址保留功能的转换端点](about-endpoints.sipp.md)。

注意：在终止或删除已添加为加速器后端端点的资源之前，建议您将该端点从 Global Accelerator 端点组中移除。

**应用程序负载均衡器端点**  
+ 应用程序负载均衡器端点可以是面向互联网的端点，也可以是内部的端点。
+ 可以将双堆栈应用程序负载均衡器添加为端点。
+ Global Accelerator 仅支持在 AWS 区域 内运行的应用程序负载均衡器。Global Accelerator 不支持在本地区域中作为端点运行的应用程序负载均衡器。

**网络负载均衡器端点**  
+ 网络负载均衡器端点可以是面向互联网的端点，也可以是内部的端点。
+ 可以将双堆栈网络负载均衡器添加为端点，但需遵循一些限制：
  + 对于双堆栈加速器，当您添加双堆栈网络负载均衡器时，网络负载均衡器不能有目标类型为 `ip` 的目标组，也不能有目标类型为 `instance` 和 IP 地址类型为 `ipv6` 的目标组。
  + 对于 IPv4 加速器，当您添加双堆栈网络负载均衡器时，您无法在 Global Accelerator 中为端点启用客户端 IP 地址保留。
+ Global Accelerator 仅支持在 AWS 区域 内运行的网络负载均衡器。Global Accelerator 不支持在本地区域中作为端点运行的网络负载均衡器。
+ 对于网络负载均衡器端点，建议禁用负载均衡器的跨区域流量，以避免连接冲突，这可能会导致 TCP 连接时间延长。有关更多信息，请参阅 [如何避免导致 TCP 连接时间延迟的连接冲突](about-endpoints.avoid-connection-collisions.md)。

**Amazon EC2 实例端点**  
+ EC2 实例端点不能是以下类型之一：C1、CC1、CC2、CG1、CG2、CR1、CS1、G1、G2、HI1、HS1、M1、M2、M3 或 T1。
+ 支持 EC2 实例作为特定 AWS 区域中的端点。有关更多信息，请参阅 [AWS Global Accelerator 支持的 AWS 区域](preserve-client-ip-address.regions.md)。

  Global Accelerator 仅支持 AWS 区域内的 EC2 实例。Global Accelerator 不支持路由到作为本地区域中端点的弹性 IP 地址。
+ 建议您在终止某个 EC2 实例之前，先将其从 Global Accelerator 端点组中移除。如果您在将某个 EC2 实例从 Global Accelerator 的端点组中移除之前将其终止，然后在同一 VPC 中使用相同的私有 IP 地址创建另一实例，并且运行状况检查通过，则 Global Accelerator 会将流量路由到该新端点。
+ 可以将双堆栈 EC2 实例添加为端点。但是，这些实例必须附带主 IPv6 弹性网络接口（ENI）。有关更多信息，请参阅《Amazon Elastic Compute Cloud 用户指南》中的[使用网络接口](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#working-with-enis)。

**弹性 IP 地址**  
+ 不能将双堆栈弹性 IP 地址添加为端点。

对于所有端点，如果您将资源配置为 Global Accelerator 后端端点，建议您不要通过互联网将流量直接发送到相同的端点。发送直接流量可能会导致连接冲突问题。

此外，请注意，除非配置跨账户支持，否则您添加为加速器的端点的资源以及加速器本身必须归同一个账户所有。但是，负载均衡器端点后端的目标实例可归不同的账户所有。在这种情况下，必须向拥有目标实例的账户授予权限，以便其访问拥有负载均衡器和加速器的账户所拥有的子网。有关更多信息，请参阅 [在 Global Accelerator 中配置跨账户访问](cross-account-resources.md)。

# 添加标准端点
<a name="about-endpoints-adding-endpoints"></a>

您可以向端点组添加端点，以便将流量引导至您的资源。您可以编辑标准端点以更改端点的权重。您也可以将某个端点从端点组中移除，以将其从加速器中移除。移除端点不会影响端点本身，但 Global Accelerator 无法再将流量引导至该资源。

您必须先创建资源，然后才能将其添加为 Global Accelerator 中的端点。当您将资源添加为端点时，资源必须是有效且活动的。有关 Global Accelerator 支持的端点类型和配置的详细信息，请参阅[对可添加为加速器端点的资源的要求](about-endpoints-caveats.md)。

根据使用情况，您可能会在端点组中添加或移除端点。例如，如果对应用程序的需求增加，则可以创建更多资源。然后，您可以向一个或多个端点组添加更多端点来处理增加的流量。在您添加端点，并且端点通过初始运行状况检查后，Global Accelerator 就会开始将请求路由到端点。

您可以通过调整端点的权重来管理流向端点的流量，从而按比例向端点发送更多或更少的流量。有关更多信息，请参阅 [如何通过端点权重管理流量](about-endpoints-endpoint-weights.md)。

注意：如果您正在考虑添加具有客户端 IP 地址保留功能的端点，请先查看[在 AWS Global Accelerator 中保留客户端 IP 地址](preserve-client-ip-address.md)中的信息。

本节介绍如何在 AWS Global Accelerator 控制台上添加端点。要将 API 操作与 AWS Global Accelerator 结合使用，请参阅 [AWS Global Accelerator API 参考](https://docs.aws.amazon.com/global-accelerator/latest/api/Welcome.html)。

# 添加标准端点的步骤


1. 通过以下网址打开 Global Accelerator 控制台：[https://us-west-2.console.aws.amazon.com/globalaccelerator/home\$1GlobalAcceleratorHome:](https://us-west-2.console.aws.amazon.com/globalaccelerator/home#GlobalAcceleratorHome:)。

1. 在**加速器**页面上，选择一个加速器。

1. 在**侦听器**部分的**侦听器 ID** 中，选择一个侦听器的 ID。

1. 在**端点组**部分的**端点组 ID** 中，选择您要向其添加端点的端点组的 ID。

1. 选择**编辑**。

1. 在**端点**部分中，选择**添加端点**。

1. 在**添加端点**页面上，从下拉列表中选择资源。

   如果您没有任何 AWS 资源，则该列表中将没有任何项。要继续操作，请创建诸如负载均衡器、Amazon EC2 实例或弹性 IP 地址之类的 AWS 资源。然后返回此处的步骤，并从列表中选择一种资源。
**注意**  
如果您有双堆栈加速器，则必须添加双堆栈端点。网络负载均衡器、应用程序负载均衡器、Amazon EC2 实例可添加为双堆栈端点。

1. 或者，在**权重**中，输入 0 到 255 之间的数字，以设置将流量路由到此端点的权重。向端点添加权重时，您可以配置 Global Accelerator，以便根据您指定的比例路由流量。默认情况下，所有端点的权重均为 128。有关更多信息，请参阅 [如何通过端点权重管理流量](about-endpoints-endpoint-weights.md)。

1. 或者，为端点启用客户端 IP 地址保留。在**保留客户端 IP 地址**下，选择**保留地址**。有关更多信息，请参阅 [在 AWS Global Accelerator 中保留客户端 IP 地址](preserve-client-ip-address.md)。
**注意**  
在您添加流量并开始将流量路由到保留客户端 IP 地址的端点之前，请确保更新所有必需的安全配置（例如安全组），以便在允许列表中包含用户客户端 IP 地址。

1. 选择 **Add endpoint** (添加终端节点)。

# 编辑标准端点
<a name="about-endpoints-adding-endpoints-edit"></a>

本节介绍如何在 AWS Global Accelerator 控制台上编辑端点。要将 API 操作与 AWS Global Accelerator 结合使用，请参阅 [AWS Global Accelerator API 参考](https://docs.aws.amazon.com/global-accelerator/latest/api/Welcome.html)。

# 编辑标准端点的步骤


您可以编辑端点配置以更改权重。有关更多信息，请参阅 [如何通过端点权重管理流量](about-endpoints-endpoint-weights.md)。

1. 通过以下网址打开 Global Accelerator 控制台：[https://us-west-2.console.aws.amazon.com/globalaccelerator/home\$1GlobalAcceleratorHome:](https://us-west-2.console.aws.amazon.com/globalaccelerator/home#GlobalAcceleratorHome:)。

1. 在**加速器**页面上，选择一个加速器。

1. 在**侦听器**部分的**侦听器 ID** 中，选择一个侦听器的 ID。

1. 在**端点组**部分的**端点组 ID** 中，选择端点组的 ID。

1. 选择**编辑终端节点**。

1. 在**编辑端点**页面上，进行更新，然后选择**保存**。

# 移除标准端点
<a name="about-endpoints-adding-endpoints-remove"></a>

本节介绍如何在 AWS Global Accelerator 控制台上移除端点。要将 API 操作与 AWS Global Accelerator 结合使用，请参阅 [AWS Global Accelerator API 参考](https://docs.aws.amazon.com/global-accelerator/latest/api/Welcome.html)。

例如，如果您需要为端点提供服务，可以从端点组中移除端点。移除端点会将端点从端点组中移除，但不会对端点产生其它影响。从端点组中移除某个端点后，Global Accelerator 会立即停止将流量引导至该端点。该端点会进入一种等待所有当前请求完成的状态，这样正在进行的客户端流量就不会中断。当您准备好让该端点恢复接收请求时，可以将该端点重新添加到端点组。

注意：在终止或删除已添加为加速器后端端点的资源之前，建议您将该端点从 Global Accelerator 端点组中移除。

# 删除终端节点


1. 通过以下网址打开 Global Accelerator 控制台：[https://us-west-2.console.aws.amazon.com/globalaccelerator/home\$1GlobalAcceleratorHome:](https://us-west-2.console.aws.amazon.com/globalaccelerator/home#GlobalAcceleratorHome:)。

1. 在**加速器**页面上，选择一个加速器。

1. 在**侦听器**部分的**侦听器 ID** 中，选择一个侦听器的 ID。

1. 在**端点组**部分的**端点组 ID** 中，选择端点组的 ID。

1. 选择**移除端点**。

1. 在确认对话框中，选择**移除**。

# 如何通过端点权重管理流量
<a name="about-endpoints-endpoint-weights"></a>

通过加权路由，您可以选择将多少流量路由到端点组中的特定资源（端点）。这可以通过多种方式发挥作用，包括用于负载均衡和测试应用程序的新版本。

权重是可以设置的值，用于确定 Global Accelerator 向标准加速器中的端点引导的流量比例。端点可以是网络负载均衡器、应用程序负载均衡器、Amazon EC2 实例或弹性 IP 地址。Global Accelerator 会计算端点组中端点的权重总和，然后根据每个端点的权重与总权重的比率将流量引导至这些端点。默认情况下，端点的权重设置为 128，即最大值 255 的一半。

## 端点权重的工作原理
<a name="about-endpoints-endpoint-weights.how-it-works"></a>

要使用权重，您可以为端点组中的每个端点分配相对权重，该权重与您希望向端点发送的流量数量相对应。默认情况下，端点的权重为 128，即权重最大值 255 的一半。Global Accelerator 将根据您分配给端点的权重（占该组中所有端点总权重的比例）向端点发送流量：

![\[Global Accelerator 中端点的相对权重的工作原理\]](http://docs.aws.amazon.com/zh_cn/global-accelerator/latest/dg/images/WRR_calculation.png)


例如，如果您想要将极少的一部分流量发送到一个端点，并将其余流量发送到另一个端点，则可以分别指定权重为 1 和 255。权重为 1 的端点将获得 1/256（1/1\$1255）的流量，另一个端点将获得 255/256（255/1\$1255）的流量。通过更改权重，可以逐渐更改每个端点的流量平衡。如果您希望 Global Accelerator 停止向某个端点发送流量，可以将该资源的权重更改为 0。

请注意，即使在加速器中设置了端点权重，在特定的有限场景中，Global Accelerator 也会覆盖这些权重，以帮助确保可用性。也就是说，当 Global Accelerator 对端点组中的端点之间的流量进行负载均衡时，在某些情况下，必须在保持客户端流量的可用性和遵守端点权重之间做出选择。例如，对于保留客户端 IP 地址的加速器，Global Accelerator 可能需要覆盖端点权重设置以帮助避免连接冲突。

# 运行状况不佳的端点的失效转移的工作原理
<a name="about-endpoints-endpoint-weights.unhealthy-endpoints"></a>

如果一个端点组中没有权重大于零的运行状况良好的端点，Global Accelerator 会尝试失效转移到另一个端点组中权重大于零的运行状况良好的端点。请注意，对于此失效转移，Global Accelerator 会忽略流量拨号设置。因此，例如，如果某个端点组的流量拨号设置为零，则 Global Accelerator 仍将该端点组包含在失效转移尝试中。

如果 Global Accelerator 在尝试了三个最近的端点组（即 AWS 区域）后未找到权重大于零的运行状况良好的端点，则会将流量路由到离客户端最近的端点组中的随机端点。也就是说，它处于*故障打开*状态。

请注意以下几点：
+ 为失效转移选择的端点组可能是流量拨号设置为零的端点组。
+ 最近的端点组可能不是原始端点组。这是因为 Global Accelerator 在选择原始端点组时会考虑账户流量拨号设置。

例如，假设您的配置有两个端点，一个运行状况良好，一个运行状况不佳，并且您已将每个端点的权重设置为大于零。在这种情况下，Global Accelerator 会将流量路由到运行状况良好的端点。但是，现在假设您将唯一运行状况良好的端点的权重设置为零。然后，Global Accelerator 会尝试另外三个端点组来查找权重大于零的运行状况良好的端点。如果找不到，Global Accelerator 会将流量路由到离客户端最近的端点组中的随机端点。

当恢复发生（即区域恢复正常运行）时，Global Accelerator 会恢复到正常的路由行为。这意味着通常情况下，路由将在约 30 秒左右后开始返回到运行状况良好的端点，前提是相应端点的流量拨号未设置为零。但请注意，已建立的活动连接不会移动。这些活动连接会继续路由到零权重区域，直到客户端或服务器重置连接，或者直到客户端建立新的连接。

# 如何避免导致 TCP 连接时间延迟的连接冲突
<a name="about-endpoints.avoid-connection-collisions"></a>

间歇性连接问题可能是由 AWS Global Accelerator 中的连接冲突引起。当用户在特定场景下通过相同的源 IP 和源端口访问 Global Accelerator 中的资源时，可能会发生这些情况。冲突可能导致通过加速器的流量出现 TCP 连接时间延迟。

您可以通过为加速器配置*端口覆盖*来避免这些延迟，端口覆盖是 Global Accelerator 中的一项功能，使您可以将传入流量路由到加速器端点上的其它目标端口。按照本节中的指导，了解如何使用端口覆盖来防止连接冲突并避免潜在的 TCP 连接时间延迟。

## 可能导致连接冲突的情况
<a name="about-endpoints.avoid-connection-collisions.scenarios"></a>

Global Accelerator 中有三种情况可能导致连接冲突，从而导致 TCP 连接时间延迟：
+ 您将相同的资源配置为具有多个加速器的端点。
+ 您将资源配置为 Global Accelerator 后端端点，还直接通过互联网将流量从最终用户发送到相同的资源。
+ 您为跨区域流量配置网络负载均衡器端点。

对于网络负载均衡器端点，建议禁用负载均衡器的跨区域流量，以避免连接冲突。有关更多信息，请参阅《网络负载均衡器用户指南》**中的 [TCP 连接延迟](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-troubleshooting.html#tcp-delays)。

对于其它情况，建议在端点组中使用端口覆盖功能以防止冲突。通过使用端口覆盖，您可以将 Global Accelerator 侦听器端口映射到端点资源上的不同目标端口号。默认情况下，侦听器端口使用端点资源上的相同端口号。通过使用端口覆盖，加速器可以将来自相同用户（具有源 IP 和源端口）的流量路由到相同的端点，但使用不同的目标端口号，从而避免冲突。

下一节将为每种情况提供具体示例，说明如何配置端口覆盖以避免连接冲突。有关配置端口覆盖的更多信息，请参阅[为受限端口或连接冲突覆盖侦听器端口](about-endpoint-groups-port-override.md)。

## 如何通过使用端口覆盖来防止连接冲突
<a name="about-endpoints.avoid-connection-collisions.how-to-prevent"></a>

默认情况下，加速器使用在创建侦听器时指定的相同协议和相同目标端口范围将用户流量路由到 AWS 区域中的端点。但是，您可以选择覆盖侦听器端口的端口号映射。也就是说，您可以映射侦听器端口号，以将流量路由到端点上的其它目标端口号。

例如，如果您定义了一个接受端口 80 和 443 上的 TCP 流量的侦听器，默认情况下，加速器会将流量路由到端点上的相同端口 80 和 443。但是，通过使用端口覆盖功能，加速器可以将这些端口上传入的流量路由到端点上的不同端口，例如 8080 和 8443。

通过为两个（或更多）加速器中的侦听器创建不同的端口映射，并在其后配置相同的资源，可以为每个加速器使用不同的目标端口号，从而避免冲突。

例如，假设有加速器 A 和加速器 B，并且每个加速器都有一个为 TCP 和端口 443 配置的侦听器。您可以为加速器 A 的侦听器设置端口覆盖，将端口 443 映射到 8443，并为加速器 B 的侦听器设置端口覆盖，将端口 443 映射到 9443。现在，将应用程序负载均衡器端点（例如 ALB-1234）配置为同时侦听端口 8443 和 9443。然后，从同一个用户 IP 地址进入端口 443（两个加速器的侦听器）的流量将到达 ALB-1234，而不会出现连接冲突或 TCP 连接时间延迟。

您可以看到此示例的流量路径，如下所示：

`Accelerator-A [listener: tcp,443] → Endpoint-Group [port-override: 443→8443] → ALB-1234 (listener: HTTPS,8443)`

`Accelerator-B [listener: tcp,443] → Endpoint-Group [port-override: 443→9443] → ALB-1234 (listener: HTTPS,9443) `

您可以通过类似的方式使用端口覆盖，通过覆盖加速器的侦听器端口号的默认映射，防止资源在被直接用户访问和通过加速器访问时产生连接冲突。在这种情况下，要防止发生冲突，请执行以下操作：

1. 确定希望资源侦听直接流量的端口。

1. 为加速器配置侦听器以覆盖默认端口，并将资源上的侦听器配置为在该端口上侦听加速器流量。

例如，您可以为加速器的侦听器设置端口覆盖，以将端口 443 映射到端口 8443。例如，现在可以配置一个应用程序负载均衡器端点，以侦听端口 8443 上的加速器流量和端口 443 上的直接流量。使用此配置，可以避免来自同一用户 IP 地址的流量在应用程序负载均衡器上发生连接冲突。