

# 设置 RDS 代理的网络先决条件
<a name="rds-proxy-network-prereqs"></a>

 使用 RDS 代理需要您在 RDS 数据库实例和 RDS 代理之间拥有通用的虚拟私有云（VPC）。此 VPC 应至少有两个位于不同可用区中的子网。您的账户可以拥有这些子网，或与其他账户共享它们。有关 VPC 共享的信息，请参阅[使用共享 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html)。

要支持 IPv6，需要进行额外的网络配置：
+ **IPv6 端点网络类型** - 您的 VPC 和子网必须配置为支持 IPv6。这包括将 IPv6 CIDR 数据块分配给 VPC 和子网。
+ **双栈端点网络类型** – 您的 VPC 和子网必须支持 IPv4 和 IPv6 寻址。
+ **IPv6 目标连接网络类型** – 必须将数据库配置为双栈模式，才能支持来自代理的 IPv6 连接。

您的客户端应用程序资源（例如 Amazon EC2、Lambda 或 Amazon ECS）可以与代理位于同一 VPC 中。它们也可以位于与代理不同的 VPC 中。如果已成功连接到任何 RDS 数据库实例，则您已拥有所需的网络资源。

**Topics**
+ [获取有关您的子网的信息](#rds-proxy-network-prereqs.subnet-info)
+ [计划 IP 地址容量](#rds-proxy-network-prereqs.plan-ip-address)

## 获取有关您的子网的信息
<a name="rds-proxy-network-prereqs.subnet-info"></a>

要创建代理，必须提供代理在其中运行的子网和 VPC。以下 Linux 示例展示了检查 AWS 账户 拥有的 VPC 和子网的 AWS CLI 命令。尤其是，在使用 CLI 创建代理时，您可以将子网 ID 作为参数传递。

```
aws ec2 describe-vpcs
aws ec2 describe-internet-gateways
aws ec2 describe-subnets --query '*[].[VpcId,SubnetId]' --output text | sort
```

以下 Linux 示例展示了用于确定与特定 RDS 数据库实例对应的子网 ID 的 AWS CLI 命令。找到数据库实例的 VPC ID。检查 VPC 以查找其子网。以下 Linux 示例展示了操作步骤。

```
$ #From the DB instance, trace through the DBSubnetGroup and Subnets to find the subnet IDs.
$ aws rds describe-db-instances --db-instance-identifier my_instance_id --query '*[].[DBSubnetGroup]|[0]|[0]|[Subnets]|[0]|[*].SubnetIdentifier' --output text
```

```
subnet_id_1
subnet_id_2
subnet_id_3
...
```

```
$ #From the DB instance, find the VPC.
$ aws rds describe-db-instances --db-instance-identifier my_instance_id --query '*[].[DBSubnetGroup]|[0]|[0].VpcId' --output text
```

```
my_vpc_id
```

```
$ aws ec2 describe-subnets --filters Name=vpc-id,Values=my_vpc_id --query '*[].[SubnetId]' --output text
```

```
subnet_id_1
subnet_id_2
subnet_id_3
subnet_id_4
subnet_id_5
subnet_id_6
```

## 计划 IP 地址容量
<a name="rds-proxy-network-prereqs.plan-ip-address"></a>

RDS 代理会根据向它注册的数据库实例的大小和数量，视需要自动调整其容量。某些操作可能还需要更多代理容量，例如增加注册数据库的大小或内部 RDS 代理维护操作。在这些操作期间，您的代理可能需要更多 IP 地址来预调配额外的容量。这些额外的地址使您的代理可以在不影响工作负载的情况下进行扩展。您的子网中缺少可用的 IP 地址会阻止代理纵向扩展。这可能导致查询延迟更长或客户端连接故障。当您的子网中没有足够的可用 IP 地址时，RDS 会通过事件 `RDS-EVENT-0243` 通知您。有关此事件的信息，请参阅 [使用 RDS 代理事件使用 RDS Proxy 事件](rds-proxy.events.md)。

**注意**  
在 VPC 中，每个 RDS 代理消耗的 IP 地址不会超过 215 个。

根据数据库实例类大小，您应在子网中为代理保留以下最少可用的 IP 地址数。


|  数据库实例类  |  最少可用 IP 地址数  | 
| --- | --- | 
|  db.\$1.xlarge 或更小   |  10  | 
|  db.\$1.2xlarge   |  15  | 
|  db.\$1.4xlarge   |  25  | 
|  db.\$1.8xlarge   |  45  | 
|  db.\$1.12xlarge   |  60  | 
|  db.\$1.16xlarge   |  75  | 
|  db.\$1.24xlarge   |  110  | 

这些建议的 IP 地址数是针对仅具有默认端点的代理的估计数。具有更多端点或只读副本的代理可能需要更多可用的 IP 地址。对于每个其他端点，建议您另外预留三个 IP 地址。对于每个只读副本，建议您根据该只读副本的大小，保留表中指定的额外 IP 地址。