跳到主要内容
跳到主要内容

AWS PrivateLink

Scale plan feature

AWS PrivateLink is available in the Scale and Enterprise plans. To upgrade, visit the Plans page in the cloud console.

您可以使用 AWS PrivateLink 在 VPC、AWS 服务、您的本地系统与 ClickHouse Cloud 之间提供连接,而无需让您的流量跨越互联网。本文件描述了如何使用 AWS PrivateLink 连接到 ClickHouse Cloud。 要禁用来自除 AWS PrivateLink 地址以外的地址对您的 ClickHouse Cloud 服务的访问,请使用 ClickHouse Cloud IP 访问列表

备注

ClickHouse Cloud 当前不支持 跨区域 PrivateLink。但是,您可以 通过 VPC 对等连接连接到 PrivateLink。有关更多信息和配置指南,请参考 AWS 文档。

请完成以下步骤以启用 AWS Private Link:

  1. 获取端点服务名称。
  2. 创建服务端点。
  3. 将端点 ID 添加到 ClickHouse Cloud 组织。
  4. 将端点 ID 添加到服务允许列表。

在这里找到完整的 Terraform 示例以供参考 here

先决条件

在开始之前,您需要:

  1. 一个 AWS 账户。
  2. 一个具有创建和管理私有链接所需权限的 API 密钥。

步骤

按照以下步骤将您的 ClickHouse Cloud 连接到 AWS PrivateLink。

获取端点服务名称

选项 1:ClickHouse Cloud 控制台

在 ClickHouse Cloud 控制台中,打开您希望通过 PrivateLink 连接的服务,然后打开 设置 菜单。单击 设置私有端点 按钮。复制用于设置 Private Link 的 服务名称

私有端点

选项 2:API

首先,在运行任何命令之前,设置以下环境变量:

通过根据区域、提供商和服务名称进行筛选,获取所需的实例 ID:

获取您的 Private Link 配置的 AWS 服务名称:

此命令应返回类似如下内容:

记下 endpointServiceId继续到步骤 2

创建服务端点

接下来,您需要使用上一步中的 endpointServiceId 创建服务端点。

选项 1:AWS 控制台

打开 AWS 控制台,转到 VPC端点创建端点

选择 其他端点服务,并使用您从上一步获得的 endpointServiceId。完成后,单击 验证服务

AWS PrivateLink 端点设置

接下来,选择您的 VPC 和子网:

选择 VPC 和子网

作为可选步骤,分配安全组/标签:

端口

确保安全组允许端口 84439440

创建 VPC 端点后,记下 端点 ID 值;您将在后续步骤中使用到它。

VPC 端点 ID

选项 2:AWS CloudFormation

确保使用正确的子网 ID、安全组和 VPC ID。

选项 3:Terraform

修改端点的私有 DNS 名称

此步骤将 <区域代码>.vpce.aws.clickhouse.cloud 配置注入到 AWS VPC 中。

DNS 解析器

如果您使用自己的 DNS 解析器,创建 <区域代码>.vpce.aws.clickhouse.cloud DNS 区域,并将通配符记录 *.<区域代码>.vpce.aws.clickhouse.cloud 指向端点 ID IP 地址。

选项 1:AWS 控制台

导航至 VPC 端点,右键点击 VPC 端点,然后选择 修改私有 DNS 名称

AWS PrivateLink 端点菜单

在打开的页面上,选择 启用私有 DNS 名称

修改 DNS 名称

选项 2:AWS CloudFormation

更新 CloudFormation 模板并将 PrivateDnsEnabled 设置为 true

应用更改。

选项 3:Terraform

  • 更改 Terraform 代码中的 aws_vpc_endpoint 资源,并将 private_dns_enabled 设置为 true

应用更改。

将端点 ID 添加到 ClickHouse Cloud 组织

选项 1:ClickHouse Cloud 控制台

要将端点添加到组织,请继续执行 将端点 ID 添加到服务允许列表 步骤。通过 ClickHouse Cloud 控制台将 端点 ID 添加到服务允许列表将自动将其添加到组织。

要删除端点,请打开 组织详情 -> 私有端点,单击删除按钮以移除端点。

删除私有端点

选项 2:API

在运行任何命令之前,设置以下环境变量:

使用上一步的数据设置 VPC_ENDPOINT 环境变量。

要添加端点,请运行:

要删除端点,请运行:

将端点 ID 添加到服务允许列表

选项 1:ClickHouse Cloud 控制台

在 ClickHouse Cloud 控制台中,打开您希望通过 PrivateLink 连接的服务,然后导航至 设置。输入从 上一步 获得的 端点 ID

备注

如果您希望从现有的 PrivateLink 连接中允许访问,请使用现有的端点下拉菜单。

私有端点过滤器

选项 2:API

您需要将端点 ID 添加到每个应该可以通过 PrivateLink 访问的实例的允许列表中。

在运行任何命令之前,设置以下环境变量:

要将端点 ID 添加到允许列表:

要从允许列表中移除端点 ID:

每个配置有 Private Link 过滤器的实例都有一个公共和私有端点。要使用 PrivateLink 连接到您的服务,您需要使用私有端点 privateDnsHostname

备注

私有 DNS 主机名仅在您的 AWS VPC 中可用。请勿尝试从本地机器解析 DNS 主机。

获取私有 DNS 主机名

选项 1:ClickHouse Cloud 控制台

在 ClickHouse Cloud 控制台中,导航至 设置。单击 设置私有端点 按钮。在弹出的菜单中,复制 DNS 名称

私有端点 DNS 名称
选项 2:API

在运行任何命令之前,设置以下环境变量:

这应该输出类似如下内容:

在此示例中,连接到 xxxxxxx.yy-xxxx-N.vpce.aws.clickhouse.cloud 主机名将被路由到 PrivateLink,但 xxxxxxx.yy-xxxx-N.aws.clickhouse.cloud 将通过互联网路由。

故障排除

在大多数情况下,您只需要为每个 VPC 创建一个端点服务。该端点可以将请求从 VPC 路由到多个 ClickHouse Cloud 服务。

连接到私有端点超时

  • 请将安全组附加到 VPC 端点。
  • 请验证附加到端点的安全组上的 入境 规则并允许 ClickHouse 端口。
  • 请验证用于连接测试的 VM 上附加安全组的 出境 规则,并允许连接到 ClickHouse 端口。

私有主机名:未找到主机地址

  • 请检查是否启用了“私有 DNS 名称”选项,访问 步骤 以获取详细信息

连接被对等方重置

  • 很可能是端点 ID 未被添加到服务允许列表中,请访问 步骤

检查端点过滤器

在运行任何命令之前,设置以下环境变量:

连接到远程数据库

假设您正在尝试在 ClickHouse Cloud 中使用 MySQLPostgreSQL 表函数,并连接到托管在 Amazon Web Services (AWS) VPC 中的数据库。 AWS PrivateLink 不能用于安全地启用这一连接。PrivateLink 是单向的、单向的连接。它允许您的内部网络或 Amazon VPC 安全地连接到 ClickHouse Cloud,但不允许 ClickHouse Cloud 连接到您的内部网络。

根据 AWS PrivateLink 文档

当您有一个客户端/服务器设置时,如果您希望允许一个或多个消费者 VPC 单向访问服务提供者 VPC 中的特定服务或一组实例,请使用 AWS PrivateLink。只有消费者 VPC 中的客户端可以发起到服务提供者 VPC 中服务的连接。

要做到这一点,请配置您的 AWS 安全组以允许 ClickHouse Cloud 连接到您的内部/私有数据库服务。检查 ClickHouse Cloud 区域的默认出境 IP 地址 以及 可用静态 IP 地址