通过 AWS PrivateLink 连接到 TiDB Cloud Premium
本文档介绍如何通过 AWS PrivateLink 连接到你的 TiDB Cloud Premium 实例。
TiDB Cloud 支持通过 AWS PrivateLink 以高度安全的单向方式访问托管在 AWS VPC 中的 TiDB Cloud 服务,就像该服务位于你自己的 VPC 中一样。你的 VPC 中会暴露一个私有端点,在获得权限后,你可以通过该端点创建到 TiDB Cloud 服务的连接。
借助 AWS PrivateLink,端点连接是安全且私有的,不会将你的数据暴露到公共互联网。此外,端点连接支持 CIDR 重叠,并且更便于网络管理。
私有端点的架构如下:
有关私有端点和端点服务的更详细定义,请参见以下 AWS 文档:
限制
- 只有目标实例的
Organization Owner、Project Owner或Instance Owner角色用户才能创建私有端点连接。 - 私有端点和你要连接的 TiDB Cloud Premium 实例必须位于同一区域。
前提条件
请确保在 AWS VPC 设置中同时启用了 DNS hostnames 和 DNS resolution。在 AWS Management Console 中创建 VPC 时,这两项默认是禁用的。
设置私有端点连接并连接到你的实例
要通过私有端点连接到你的 TiDB Cloud Premium 实例,请按以下步骤操作:
- 打开私有端点连接对话框
- 在 AWS 中创建 VPC endpoint
- 在 TiDB Cloud 中输入 VPC endpoint ID
- 启用 private DNS
- 连接到你的 TiDB Cloud Premium 实例
如果你有多个实例,则需要对每个希望通过 AWS PrivateLink 连接的实例重复这些步骤。
第 1 步:打开私有端点连接对话框
- 在 TiDB Cloud 控制台的 My TiDB 页面上,点击目标 TiDB Cloud Premium 实例的名称,进入其实例概览页面。
- 点击右上角的 Connect。此时会显示连接对话框。
- 在 Connection Type 下拉列表中,选择 Private Endpoint,然后点击 Create Private Endpoint Connection。
- 在 Create AWS Private Endpoint Connection 对话框中,等待直到显示
TiDB Private Link Service is ready消息。 - 复制 Endpoint Service Name。
第 2 步:在 AWS 中创建 VPC endpoint
当 endpoint service 准备就绪后,在你的 AWS 账户中创建一个 VPC interface endpoint。你既可以使用 TiDB Cloud 生成的 AWS CLI 命令,也可以在 AWS Management Console 中手动创建该 endpoint。
要在 TiDB Cloud 中生成 AWS CLI 命令,请在 Create AWS Private Endpoint Connection 对话框中展开 How to Generate VPC Endpoint ID,然后执行以下操作:
- 输入 Your VPC ID。
- 输入 Your Subnet IDs。如果有多个 subnet,请使用空格分隔各个 subnet ID。
- 确保这些 subnet 位于该对话框支持的可用区中。不要使用来自其他可用区的 subnet。
- 点击 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 创建 VPC endpoint,请执行以下步骤:
- 复制在 TiDB Cloud 中生成的命令。
- 在终端中运行该命令。
- 记录 AWS 返回的 VPC endpoint ID。VPC endpoint ID 以
vpce-开头。
要使用 AWS Management Console 创建 VPC endpoint,请执行以下步骤:
登录 AWS Management Console,并在 https://console.aws.amazon.com/vpc/ 打开 Amazon VPC 控制台。
在导航窗格中点击 Endpoints,然后点击右上角的 Create Endpoint。
此时会显示 Create endpoint 页面。
在 Endpoint settings 区域中,根据需要填写名称标签,然后选择 Endpoint services that use NLBs and GWLBs 选项。
在 Service settings 区域中,输入从 TiDB Cloud 复制的 Endpoint Service Name。
点击 Verify service。
在 Network settings 区域中,从下拉列表中选择你的 VPC。
在 Subnets 区域中,选择你的 TiDB Cloud Premium 实例所在的可用区。
在 Security groups 区域中,正确选择你的安全组。
点击 Create endpoint。
端点创建完成后,记录其 VPC endpoint ID。VPC endpoint ID 以
vpce-开头。
第 3 步:在 TiDB Cloud 中输入 VPC endpoint ID
- 返回 TiDB Cloud 控制台。
- 在 Create AWS Private Endpoint Connection 对话框中,将你在 AWS 中创建的 VPC endpoint ID 输入到 Your VPC Endpoint ID 字段中。
- 点击 Create Private Endpoint。
提示:
你可以在目标 TiDB Cloud Premium 实例的 Networking 页面查看和管理私有端点连接。要访问此页面,请在左侧导航栏中点击 Settings > Networking。
步骤 4. 启用 private DNS
在 TiDB Cloud 中创建私有端点后,需要在 AWS 中启用 private DNS 以完成私有端点连接。TiDB Cloud 会在 Create AWS Private Endpoint Connection 对话框中提供 aws ec2 modify-vpc-endpoint 命令。你也可以稍后在 Networking 页面获取该命令。
要使用 TiDB Cloud 生成的命令启用 private DNS,请执行以下步骤:
从以下任一位置复制
aws ec2 modify-vpc-endpoint命令:- 私有端点创建完成后,在 Create AWS Private Endpoint Connection 对话框中复制。
- 在实例的 Networking 页面上,在 AWS Private Endpoint 区域找到该私有端点,然后点击 ... > Enable DNS。
在 AWS CLI 中运行该命令。
aws ec2 modify-vpc-endpoint --vpc-endpoint-id ${your_vpc_endpoint_id} --region ${your_region} --private-dns-enabled命令成功执行后,返回 TiDB Cloud 对话框并点击 Done。
要在 AWS Management Console 中启用 private DNS:
前往 VPC > Endpoints。
右键点击你的 endpoint ID,然后选择 Modify private DNS name。
选中 Enable for this endpoint 复选框。
点击 Save changes。
返回 TiDB Cloud,并在 Create AWS Private Endpoint Connection 或 Enable DNS 对话框中点击 Done。
步骤 5. 连接到你的 TiDB Cloud Premium 实例
创建私有端点连接后,你会被重定向回连接对话框。
等待私有端点连接状态从 System Checking 变为 Active(大约 5 分钟)。
在 Connection Type 下拉列表中,选择 Private Endpoint。
在 Endpoint ID 下拉列表中,选择你要使用的处于活动状态的 VPC endpoint。
Endpoint ID 下拉列表中仅显示处于活动状态的端点。要添加更多端点,请前往 Networking 页面。
在 Connect With 下拉列表中,选择你偏好的连接方式。
如果实例没有 root 密码,请先点击 Set Root Password 设置密码。
从对话框中复制连接参数或连接字符串,然后连接到你的实例。
私有端点状态参考
使用私有端点连接时,私有端点和私有端点服务的状态会显示在实例级别的 Networking 页面上:
- 进入你组织的 My TiDB 页面,然后点击目标 TiDB Cloud Premium 实例的名称,进入其概览页面。
- 在左侧导航栏中点击 Settings > Networking。
私有端点的可能状态说明如下:
- Not Configured:端点服务已创建,但私有端点尚未创建。
- Pending:等待处理。
- Active:你的私有端点已可用。在此状态下,你不能编辑私有端点。
- Deleting:私有端点正在删除中。
- Failed:私有端点创建失败。你可以点击该行中的 Edit 重试创建。
私有端点服务的可能状态说明如下:
- Creating:端点服务正在创建中,耗时 3 到 5 分钟。
- Active:端点服务已创建,无论私有端点是否已创建。
- Deleting:端点服务或实例正在删除中,耗时 3 到 5 分钟。
故障排查
启用 private DNS 后,我为什么仍然无法通过私有端点连接到 TiDB Cloud Premium 实例?
你可能需要在 AWS Management Console 中正确设置 VPC endpoint 的安全组。为此,请前往 VPC > Endpoints,右键点击你的 VPC endpoint,然后选择 Manage security groups。确保所选安全组允许你的 EC2 实例通过端口 4000 或客户自定义端口进行入站访问。



