📣
TiDB Cloud Essential 开放公测中。此页面由 AI 自动翻译,英文原文请见此处。

通过 AWS PrivateLink 连接到 TiDB Cloud 专属集群

本文档介绍如何通过 AWS PrivateLink 连接到你的 TiDB Cloud 专属集群。

TiDB Cloud 支持通过 AWS PrivateLink 在 AWS VPC 中以高度安全和单向的方式访问托管在 TiDB Cloud 服务,就像服务部署在你自己的 VPC 中一样。你的 VPC 中会暴露一个私有终端节点,你可以通过该终端节点并获得权限后连接到 TiDB Cloud 服务。

借助 AWS PrivateLink,终端节点连接是安全且私有的,不会将你的数据暴露在公网上。此外,终端节点连接支持 CIDR 重叠,便于网络管理。

私有终端节点的架构如下所示:

Private endpoint architecture

关于私有终端节点和终端节点服务的更详细定义,请参见以下 AWS 文档:

限制

  • 只有拥有 Organization OwnerProject Owner 角色的用户才能创建私有终端节点。
  • 私有终端节点和你要连接的 TiDB 集群必须位于同一区域。

在大多数场景下,建议优先使用私有终端节点连接而不是 VPC 对等连接。但在以下场景下,你应使用 VPC 对等连接而不是私有终端节点连接:

  • 你正在使用 TiCDC 集群在跨区域的源 TiDB 集群和目标 TiDB 集群之间同步数据,以实现高可用。目前,私有终端节点不支持跨区域连接。
  • 你正在使用 TiCDC 集群将数据同步到下游集群(如 Amazon Aurora、MySQL 和 Kafka),但无法自行维护终端节点服务。
  • 你需要直接连接到 PD 或 TiKV 节点。

前提条件

请确保在 AWS VPC 设置中已启用 DNS 主机名和 DNS 解析。在 AWS 管理控制台 中创建 VPC 时,这些选项默认是关闭的。

设置私有终端节点连接并连接到你的集群

要通过私有终端节点连接到 TiDB Cloud 专属集群,请完成以下步骤:

  1. 选择 TiDB 集群
  2. 创建 AWS 接口终端节点
  3. 创建私有终端节点连接
  4. 启用私有 DNS
  5. 连接到你的 TiDB 集群

如果你有多个集群,需要对每个希望通过 AWS PrivateLink 连接的集群重复上述步骤。

Step 1. 选择 TiDB 集群

  1. 在项目的 Clusters 页面,点击目标 TiDB 集群的名称,进入其概览页面。
  2. 点击右上角的 Connect。会弹出连接对话框。
  3. Connection Type 下拉列表中选择 Private Endpoint,然后点击 Create Private Endpoint Connection

Step 2. 创建 AWS 接口终端节点

如果你看到 TiDB Private Link Service is ready 消息,说明对应的终端节点服务已就绪。你可以使用以下信息创建终端节点。

  1. 填写 Your VPC IDYour Subnet IDs 字段。你可以在 AWS 管理控制台 中找到这些 ID。若有多个子网,使用空格分隔各个 ID。

  2. 点击 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 接口终端节点,请执行以下步骤:

    1. 复制生成的命令并在终端中运行。
    2. 记录你刚刚创建的 VPC 终端节点 ID。

    如需使用 AWS 管理控制台创建 VPC 接口终端节点,请执行以下步骤:

    1. 登录 AWS 管理控制台,并打开 Amazon VPC 控制台 https://console.aws.amazon.com/vpc/

    2. 在导航栏点击 Endpoints,然后点击右上角的 Create Endpoint

      会显示 Create endpoint 页面。

      Verify endpoint service

    3. Endpoint settings 区域,如有需要可填写名称标签,然后选择 Endpoint services that use NLBs and GWLBs 选项。

    4. Service settings 区域,输入生成命令中的服务名 ${your_endpoint_service_name}(即 --service-name ${your_endpoint_service_name})。

    5. 点击 Verify service

    6. Network settings 区域,从下拉列表中选择你的 VPC。

    7. Subnets 区域,选择你的 TiDB 集群所在的可用区。

    8. Security groups 区域,正确选择你的安全组。

    9. 点击 Create endpoint

    Step 3. 创建私有终端节点连接

    1. 返回 TiDB Cloud 控制台。
    2. Create AWS Private Endpoint Connection 页面,输入你的 VPC 终端节点 ID。
    3. 点击 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:

      1. 进入 VPC > Endpoints

      2. 右键点击你的终端节点 ID,选择 Modify private DNS name

      3. 勾选 Enable for this endpoint 复选框。

      4. 点击 Save changes

        Enable private DNS

      Step 5. 连接到你的 TiDB 集群

      在你接受私有终端节点连接后,会自动返回到连接对话框。

      1. 等待私有终端节点连接状态从 System Checking 变为 Active(大约 5 分钟)。
      2. Connect With 下拉列表中选择你喜欢的连接方式。对应的连接字符串会显示在对话框底部。
      3. 使用该连接字符串连接到你的集群。

      私有终端节点状态参考

      当你使用私有终端节点连接时,私有终端节点和私有终端节点服务的状态会显示在以下页面:

      • 集群级 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 端口或自定义端口上的入站访问。

      Manage security groups

      文档内容是否有帮助?