通过 AWS PrivateLink 连接 TiDB Cloud Starter 或 Essential
本文档介绍如何通过 AWS PrivateLink 连接到你的 TiDB Cloud Starter 或 TiDB Cloud Essential 集群。
TiDB Cloud 支持通过 AWS PrivateLink 实现对托管在 AWS VPC 中的 TiDB Cloud 服务的高度安全、单向访问,就像服务部署在你自己的 VPC 中一样。你的 VPC 中会暴露一个私有终端节点,你可以通过该终端节点并具备相应权限后连接到 TiDB Cloud 服务。
借助 AWS PrivateLink,终端节点连接是安全且私有的,不会将你的数据暴露在公网上。此外,终端节点连接支持 CIDR 重叠,便于网络管理。
私有终端节点的架构如下所示:
关于私有终端节点和终端节点服务的更详细定义,请参见以下 AWS 文档:
限制
- 目前,TiDB Cloud 仅在终端节点服务托管于 AWS 时支持 AWS PrivateLink 连接。如果服务托管在其他云服务商,AWS PrivateLink 连接不适用。
- 不支持跨区域的私有终端节点连接。
前提条件
请确保在 AWS VPC 设置中已启用 DNS 主机名和 DNS 解析。在 AWS 管理控制台 创建 VPC 时,这些选项默认是关闭的。
使用 AWS 设置私有终端节点
要通过私有终端节点连接到你的 TiDB Cloud Starter 或 TiDB Cloud Essential 集群,请按照以下步骤操作:
Step 1. 选择 TiDB 集群
在 Clusters 页面,点击目标 TiDB Cloud Starter 或 TiDB Cloud Essential 集群的名称,进入其概览页面。
点击右上角的 Connect。会弹出连接对话框。
在 Connection Type 下拉列表中,选择 Private Endpoint。
记录下 Service Name、Availability Zone ID 和 Region ID。
Step 2. 创建 AWS 接口终端节点
如需使用 AWS 管理控制台创建 VPC 接口终端节点,请执行以下步骤:
登录 AWS 管理控制台,并打开 Amazon VPC 控制台 https://console.aws.amazon.com/vpc/。
在导航栏点击 Endpoints,然后点击右上角的 Create Endpoint。
会显示 Create endpoint 页面。
选择 Endpoint services that use NLBs and GWLBs。
输入你在 step 1 中获取的 service name。
点击 Verify service。
在下拉列表中选择你的 VPC。展开 Additional settings 并勾选 Enable DNS name 复选框。
在 Subnets 区域,选择 TiDB 集群所在的可用区,并选择 Subnet ID。
在 Security groups 区域,正确选择你的安全组。
点击 Create endpoint。
如需使用 AWS CLI 创建 VPC 接口终端节点,请执行以下步骤:
- 要获取 VPC ID 和 Subnet ID,请前往 AWS 管理控制台,在相关区域查找。确保你填写了在 step 1 中获取的 Availability Zone ID。
- 复制下方命令,将相关参数替换为你获取的信息,然后在终端中执行。
aws ec2 create-vpc-endpoint --vpc-id ${your_vpc_id} --region ${region_id} --service-name ${service_name} --vpc-endpoint-type Interface --subnet-ids ${your_subnet_id}
然后你就可以通过私有 DNS 名称连接到终端节点服务。
Step 3: 连接到你的 TiDB 集群
创建接口终端节点后,返回 TiDB Cloud 控制台并按以下步骤操作:
- 在 Clusters 页面,点击目标集群名称,进入其概览页面。
- 点击右上角的 Connect。会弹出连接对话框。
- 在 Connection Type 下拉列表中,选择 Private Endpoint。
- 在 Connect With 下拉列表中,选择你偏好的连接方式。对话框底部会显示相应的连接字符串。
- 使用该连接字符串连接到你的集群。
故障排查
启用私有 DNS 后,无法通过私有终端节点连接 TiDB 集群,为什么?
你可能需要在 AWS 管理控制台中为 VPC 终端节点正确设置安全组。进入 VPC > Endpoints,右键你的 VPC 终端节点,选择合适的 Manage security groups。在你的 VPC 内选择允许 EC2 实例通过 4000 端口或自定义端口入站访问的安全组。