通过 AWS PrivateLink 连接到 TiDB Cloud 专属集群
本文档介绍如何通过 AWS PrivateLink 连接到你的 TiDB Cloud 专属集群。
TiDB Cloud 支持通过 AWS PrivateLink 在 AWS VPC 中以高度安全和单向的方式访问托管在 TiDB Cloud 服务,就像服务部署在你自己的 VPC 中一样。你的 VPC 中会暴露一个私有终端节点,你可以通过该终端节点并获得权限后连接到 TiDB Cloud 服务。
借助 AWS PrivateLink,终端节点连接是安全且私有的,不会将你的数据暴露在公网上。此外,终端节点连接支持 CIDR 重叠,便于网络管理。
私有终端节点的架构如下所示:

关于私有终端节点和终端节点服务的更详细定义,请参见以下 AWS 文档:
限制
- 只有拥有
Organization Owner或Project Owner角色的用户才能创建私有终端节点。 - 私有终端节点和你要连接的 TiDB 集群必须位于同一区域。
在大多数场景下,建议优先使用私有终端节点连接而不是 VPC 对等连接。但在以下场景下,你应使用 VPC 对等连接而不是私有终端节点连接:
- 你正在使用 TiCDC 集群在跨区域的源 TiDB 集群和目标 TiDB 集群之间同步数据,以实现高可用。目前,私有终端节点不支持跨区域连接。
- 你正在使用 TiCDC 集群将数据同步到下游集群(如 Amazon Aurora、MySQL 和 Kafka),但无法自行维护终端节点服务。
- 你需要直接连接到 PD 或 TiKV 节点。
前提条件
请确保在 AWS VPC 设置中已启用 DNS 主机名和 DNS 解析。在 AWS 管理控制台 中创建 VPC 时,这些选项默认是关闭的。
设置私有终端节点连接并连接到你的集群
要通过私有终端节点连接到 TiDB Cloud 专属集群,请完成以下步骤:
如果你有多个集群,需要对每个希望通过 AWS PrivateLink 连接的集群重复上述步骤。
Step 1. 选择 TiDB 集群
- 在项目的 Clusters 页面,点击目标 TiDB 集群的名称,进入其概览页面。
- 点击右上角的 Connect。会弹出连接对话框。
- 在 Connection Type 下拉列表中选择 Private Endpoint,然后点击 Create Private Endpoint Connection。
Step 2. 创建 AWS 接口终端节点
如果你看到 TiDB Private Link Service is ready 消息,说明对应的终端节点服务已就绪。你可以使用以下信息创建终端节点。
填写 Your VPC ID 和 Your Subnet IDs 字段。你可以在 AWS 管理控制台 中找到这些 ID。若有多个子网,使用空格分隔各个 ID。
点击 Generate Command 获取如下终端节点创建命令。
aws ec2 create-vpc-endpoint --vpc-id ${your_vpc_id} --region ${your_region} --service-name ${your_endpoint_service_name} --vpc-endpoint-type Interface --subnet-ids ${your_application_subnet_ids}
然后,你可以通过 AWS CLI 或 AWS 管理控制台 创建 AWS 接口终端节点。
如需使用 AWS CLI 创建 VPC 接口终端节点,请执行以下步骤:
- 复制生成的命令并在终端中运行。
- 记录你刚刚创建的 VPC 终端节点 ID。
如需使用 AWS 管理控制台创建 VPC 接口终端节点,请执行以下步骤:
登录 AWS 管理控制台,并打开 Amazon VPC 控制台 https://console.aws.amazon.com/vpc/。
在导航栏点击 Endpoints,然后点击右上角的 Create Endpoint。
会显示 Create endpoint 页面。

在 Endpoint settings 区域,如有需要可填写名称标签,然后选择 Endpoint services that use NLBs and GWLBs 选项。
在 Service settings 区域,输入生成命令中的服务名
${your_endpoint_service_name}(即--service-name ${your_endpoint_service_name})。点击 Verify service。
在 Network settings 区域,从下拉列表中选择你的 VPC。
在 Subnets 区域,选择你的 TiDB 集群所在的可用区。
在 Security groups 区域,正确选择你的安全组。
点击 Create endpoint。
Step 3. 创建私有终端节点连接
- 返回 TiDB Cloud 控制台。
- 在 Create AWS Private Endpoint Connection 页面,输入你的 VPC 终端节点 ID。
- 点击 Create Private Endpoint Connection。
Step 4. 启用私有 DNS
在 AWS 中启用私有 DNS。你可以使用 AWS CLI 或 AWS 管理控制台。
如需使用 AWS CLI 启用私有 DNS,请从 Create Private Endpoint Connection 页面复制以下 aws ec2 modify-vpc-endpoint 命令,并在 AWS CLI 中运行。
aws ec2 modify-vpc-endpoint --vpc-endpoint-id ${your_vpc_endpoint_id} --private-dns-enabled
或者,你也可以在集群的 Networking 页面找到该命令。定位到私有终端节点,在 Action 列点击 ... > Enable DNS。
如需在 AWS 管理控制台中启用私有 DNS:
进入 VPC > Endpoints。
右键点击你的终端节点 ID,选择 Modify private DNS name。
勾选 Enable for this endpoint 复选框。
点击 Save changes。

Step 5. 连接到你的 TiDB 集群
在你接受私有终端节点连接后,会自动返回到连接对话框。
- 等待私有终端节点连接状态从 System Checking 变为 Active(大约 5 分钟)。
- 在 Connect With 下拉列表中选择你喜欢的连接方式。对应的连接字符串会显示在对话框底部。
- 使用该连接字符串连接到你的集群。
私有终端节点状态参考
当你使用私有终端节点连接时,私有终端节点和私有终端节点服务的状态会显示在以下页面:
- 集群级 Networking 页面:通过左上角的下拉框切换到目标集群,然后点击左侧导航栏的 Settings > Networking。
- 项目级 Network Access 页面:通过左上角的下拉框切换到目标项目,然后点击左侧导航栏的 Project Settings > Network Access。
私有终端节点可能的状态说明如下:
- Not Configured:已创建终端节点服务,但尚未创建私有终端节点。
- Pending:等待处理。
- Active:你的私有终端节点已准备就绪。此状态下无法编辑该私有终端节点。
- Deleting:私有终端节点正在删除中。
- Failed:私有终端节点创建失败。你可以点击该行的 Edit 重试创建。
私有终端节点服务可能的状态说明如下:
- Creating:终端节点服务正在创建中,通常需要 3 到 5 分钟。
- Active:终端节点服务已创建,无论私有终端节点是否已创建。
- Deleting:终端节点服务或集群正在删除中,通常需要 3 到 5 分钟。
故障排查
启用私有 DNS 后无法通过私有终端节点连接到 TiDB 集群,怎么办?
你可能需要在 AWS 管理控制台中正确设置 VPC 终端节点的安全组。进入 VPC > Endpoints。具体操作为:进入 VPC > Endpoints,右键点击你的 VPC 终端节点,选择 Manage security groups。确保所选安全组允许你的 EC2 实例在 4000 端口或自定义端口上的入站访问。
