

# 自定义路由加速器的准则和限制
<a name="about-custom-routing-guidelines"></a>

在 AWS Global Accelerator 中创建和使用自定义路由加速器时，请牢记以下准则和限制。

**支持的端点目标**  
自定义路由加速器中的虚拟公有云（VPC）子网端点只能包含 EC2 实例。自定义路由加速器不支持其它资源（例如负载均衡器）。[AWS Global Accelerator 中的标准加速器的端点](about-endpoints.md)中列出了 Global Accelerator 支持的 EC2 实例类型。  
使用自定义路由加速器，Global Accelerator 只能将流量路由到 VPC 子网中 Amazon EC2 实例上的私有 IP 端点。但是，想要使用自定义路由的游戏客户可能需要连接到有状态会话。为此，客户在 Amazon Elastic Kubernetes Service（EKS）上运行游戏服务器，将会话托管在 Kubernetes 容器组（pod）内运行的特定容器上。  
要在此场景中使用自定义路由，您可以配置 VPC-CNI 插件，以通过弹性网络接口（ENI）将流量发送到 Kubernetes 容器组（pod），该弹性网络接口（ENI）是 Global Accelerator 为每个存在端点的子网创建的。这是一种在 EKS 中使用自定义路由加速器的方法。同样的配置也适用于在 Amazon Elastic Container Service（ECS）中使用自定义路由加速器。要了解更多信息，请参阅以下博客文章中提供的详细步骤：[AWS Global Accelerator Custom Routing with Amazon Elastic Kubernetes Service](https://aws.amazon.com/blogs/networking-and-content-delivery/deploying-multi-region-applications-in-aws-using-aws-global-accelerator/)。

**端口映射**  
添加 VPC 子网时，Global Accelerator 会创建静态端口映射，将侦听器端口范围映射到子网支持的端口范围。特定子网的端口映射永远不会改变。  
您可以通过编程方式查看自定义路由加速器的端口映射列表。有关更多信息，请参阅 [https://docs.aws.amazon.com/global-accelerator/latest/api/API_ListCustomRoutingPortMappings.html](https://docs.aws.amazon.com/global-accelerator/latest/api/API_ListCustomRoutingPortMappings.html)。

**VPC 子网大小**  
您添加到自定义路由加速器的 VPC 子网必须最小为 /28，最大为 /17。

**IP 地址类型**  
自定义路由加速器仅支持 IPv4 IP 地址类型。

**侦听器端口范围**  
您必须通过指定侦听器端口范围来指定足够的侦听器端口，以容纳您计划添加到自定义路由加速器的子网中包含的目标数量。您在创建侦听器时指定的范围决定了您可以在自定义路由加速器中使用的侦听器端口和目标 IP 地址组合的数量。为了最大限度地提高灵活性并降低因侦听器端口不足而出现错误的可能性，建议您指定较大的端口范围。  
当您向自定义路由加速器添加子网时，Global Accelerator 会按区块分配端口范围。建议您线性分配侦听器端口范围，并将范围设置得足够大，以支持您打算拥有的目标端口数量。也就是说，您应分配的端口数量，应至少等于子网大小乘以您将在子网中拥有的目标端口和协议（目标配置）的数量。  
Global Accelerator 用于分配端口映射的算法可能需要您添加更多的侦听器端口，超出此总数。
创建侦听器后，您可以对其进行编辑以添加更多端口范围和相关协议，但不能减少现有端口范围。例如，如果侦听器端口范围为 5,000-10,000，则无法将端口范围更改为 5900-10,000，也无法将端口范围更改为 5,000-9,900。  
每个侦听器端口范围必须至少包含 16 个端口。侦听器支持端口 1-65535。

**目标端口范围 **  
您可以从两个位置为自定义路由加速器指定端口范围：添加侦听器时指定的端口范围，以及为端点组指定的目标端口范围和协议。  
+ **侦听器端口范围：**您的客户端连接到的 Global Accelerator 静态 IP 地址上的侦听器端口。Global Accelerator 将每个端口映射到加速器后面 VPC 子网上的唯一目标 IP 地址和端口。
+ **目标端口范围：**您为端点组指定的目标端口范围集（也称为目标配置）是接收流量的 EC2 实例端口。要在目标端口上接收流量，与 EC2 实例关联的安全组必须允许在这些端口上接收流量。

**运行状况检查和失效转移**  
Global Accelerator 不会对自定义路由加速器执行运行状况检查，也不会失效转移到运行状况良好的端点。无论目标资源的运行状况如何，自定义路由加速器的流量都将以确定性方式进行路由。

**默认情况下，所有流量均被拒绝**  
默认情况下，通过自定义路由加速器引导的流量无法发送到子网中的所有目标。要使目标实例能够接收流量，必须特别允许所有流量流向子网，或者允许流量流向子网中的特定实例 IP 地址和端口。  
更新子网或特定目标以允许或拒绝流量这一操作需要一定时间才能在互联网上传播。要确定更改是否已传播，可以调用 `DescribeCustomRoutingAccelerator` API 操作来检查加速器状态。有关更多信息，请参阅 [DescribeCustomRoutingAccelerator](https://docs.aws.amazon.com/global-accelerator/latest/api/API_DescribeCustomRoutingAccelerator.html)。

**不支持 CloudFormation**  
自定义路由加速器不支持 CloudFormation。