Skip to main content
Вы можете использовать AWS PrivateLink, чтобы установить безопасное подключение между VPC, сервисами AWS, вашими системами в собственной инфраструктуре и ClickHouse Cloud, не передавая трафик через публичный Интернет. В этом документе описаны шаги по подключению к ClickHouse Cloud с помощью AWS PrivateLink.
AWS PrivateLink поддерживает только подключения, инициированные из вашего AWS VPC к ClickHouse Cloud. Его нельзя использовать для подключений, инициированных из ClickHouse Cloud к сервисам в вашем VPC, таким как private database.
Чтобы ограничить доступ к вашим сервисам ClickHouse Cloud только адресами AWS PrivateLink, следуйте инструкциям ClickHouse Cloud по IP Access Lists.
ClickHouse Cloud поддерживает cross-region PrivateLink из следующих регионов:
  • sa-east-1
  • il-central-1
  • me-south-1
  • mx-central-1
  • eu-central-2
  • eu-north-1
  • eu-south-2
  • eu-west-3
  • eu-south-1
  • eu-west-2
  • eu-west-1
  • eu-central-1
  • ca-west-1
  • ca-central-1
  • ap-northeast-1
  • ap-southeast-2
  • ap-southeast-1
  • ap-northeast-2
  • ap-northeast-3
  • ap-south-1
  • ap-southeast-4
  • ap-southeast-3
  • ap-south-2
  • ap-east-1
  • af-south-1
  • us-west-2
  • us-west-1
  • us-east-2
  • us-east-1 Обратите внимание на стоимость: AWS взимает плату за межрегиональную передачу данных, подробнее о тарифах здесь.
Чтобы включить AWS PrivateLink, выполните следующие действия:
  1. Получите Endpoint “Service name”.
  2. Создайте AWS Endpoint.
  3. Добавьте “Endpoint ID” в организацию ClickHouse Cloud.
  4. Добавьте “Endpoint ID” в список разрешённых для сервиса ClickHouse.
Примеры Terraform можно найти здесь.

Важные замечания

ClickHouse старается группировать ваши сервисы, чтобы повторно использовать одну и ту же опубликованную конечную точку сервиса в пределах региона AWS. Однако такая группировка не гарантируется, особенно если ваши сервисы распределены между несколькими организациями ClickHouse. Если для других сервисов в вашей организации ClickHouse PrivateLink уже настроен, благодаря такой группировке во многих случаях можно пропустить большую часть шагов и сразу перейти к последнему: добавить ClickHouse “Endpoint ID” в список разрешённых для сервиса ClickHouse.

Необходимые условия для этого процесса

Перед началом вам понадобятся:
  1. Ваша учетная запись AWS.
  2. API key ClickHouse с необходимыми разрешениями для создания частных конечных точек и управления ими на стороне ClickHouse.

Шаги

Чтобы подключить сервисы ClickHouse Cloud через AWS PrivateLink, выполните следующие шаги.

Получение значения «Service name» для конечной точки

Вариант 1: консоль ClickHouse Cloud

В консоли ClickHouse Cloud откройте сервис, к которому нужно подключиться через PrivateLink, затем перейдите в меню Settings. Запишите Service name и DNS name, затем перейдите к следующему шагу.

Вариант 2: API

Сначала задайте следующие переменные окружения, прежде чем выполнять какие-либо команды:
Получите INSTANCE_ID ClickHouse, отфильтровав по региону, провайдеру и Service name:
Получите endpointServiceId и privateDnsHostname для конфигурации PrivateLink:
Эта команда должна вернуть примерно следующее:
Запишите endpointServiceId и privateDnsHostname, затем перейдите к следующему шагу.

Создание AWS endpoint

В этом разделе описаны особенности настройки ClickHouse через AWS PrivateLink, относящиеся именно к ClickHouse. Шаги, относящиеся к AWS, приведены в качестве справочной информации, чтобы подсказать, где искать нужные параметры, однако со временем они могут измениться без предварительного уведомления со стороны AWS. Выполняйте настройку AWS с учетом вашего конкретного сценария использования.Обратите внимание, что ClickHouse не отвечает за настройку необходимых конечных точек AWS VPC, правил Security Group или DNS-записей.Если при настройке PrivateLink вы ранее включили “private DNS names” и теперь испытываете трудности с настройкой новых сервисов через PrivateLink, обратитесь в службу поддержки ClickHouse. По всем остальным вопросам, связанным с настройкой AWS, обращайтесь напрямую в AWS Support.

Вариант 1: консоль AWS

Откройте консоль AWS и перейдите в VPCEndpointsCreate endpoints. Выберите Endpoint services that use NLBs and GWLBs и в поле Service Name укажите Service nameконсоль или endpointServiceIdAPI, полученные на шаге получения значения «Service name» для конечной точки . Нажмите Verify service: Если вы хотите установить межрегиональное подключение через PrivateLink, установите флажок “Cross region endpoint” и укажите регион сервиса. Регион сервиса — это регион, в котором запущен экземпляр ClickHouse. Если возникнет ошибка “Service name couldn’t be verified.”, обратитесь в службу поддержки с запросом на добавление новых регионов в список поддерживаемых регионов. Затем выберите VPC и подсети: При необходимости назначьте группы безопасности и теги:
Убедитесь, что в группе безопасности разрешены порты 443, 8443, 9440, 3306.
После создания конечной точки VPC запишите значение Endpoint ID; оно понадобится вам на следующем шаге.

Вариант 2: AWS CloudFormation

Далее вам нужно создать конечную точку VPC, используя Service nameконсоль или endpointServiceIdAPI, полученные на шаге получения значения «Service name» для конечной точки . Убедитесь, что используете правильные идентификаторы подсетей, групп безопасности и VPC.
После создания конечной точки VPC запишите значение Endpoint ID; оно понадобится на одном из следующих шагов.

Вариант 3: Terraform

service_name ниже — это Service nameконсоль или endpointServiceIdAPI, полученные на шаге получения значения «Service name» для конечной точки
После создания VPC Endpoint запишите значение Endpoint ID; оно понадобится вам на следующем шаге.

Настройте частное DNS-имя для конечной точки

Существует несколько способов настройки DNS. Настройте DNS в соответствии с вашим сценарием использования.
Вам нужно направить “DNS name”, полученное на шаге получение значения «Service name» для конечной точки , на сетевые интерфейсы AWS Endpoint. Это гарантирует, что сервисы и компоненты внутри вашей VPC/сети смогут корректно разрешать это имя.

Добавьте «Endpoint ID» в список разрешённых для сервиса ClickHouse»

Вариант 1: консоль ClickHouse Cloud

Чтобы добавить конечную точку, перейдите в консоль ClickHouse Cloud, откройте сервис, к которому хотите подключиться через PrivateLink, затем перейдите в Settings. Нажмите Set up private endpoint, чтобы открыть настройки частных конечных точек. Введите Endpoint ID, полученный на шаге создание AWS endpoint. Нажмите “Create endpoint”.
Если вы хотите разрешить доступ через существующее подключение PrivateLink, используйте раскрывающееся меню существующей конечной точки.
Чтобы удалить конечную точку, перейдите в консоль ClickHouse Cloud, найдите сервис, затем откройте Settings этого сервиса и найдите конечную точку, которую хотите удалить. Удалите ее из списка конечных точек.

Вариант 2: API

Вам нужно добавить Endpoint ID в список разрешённых для каждого экземпляра, который должен быть доступен через PrivateLink. Задайте переменную окружения ENDPOINT_ID, используя данные из шага создание AWS endpoint. Перед выполнением каких-либо команд задайте следующие переменные окружения:
Чтобы добавить Endpoint ID в список разрешенных:
Чтобы удалить Endpoint ID из списка разрешённых:
У каждого сервиса с включённым Private Link есть публичная и частная конечная точка. Чтобы подключиться через Private Link, необходимо использовать частную конечную точку — privateDnsHostnameAPI или DNS Nameconsole из шага получение значения «Service name» для конечной точки.

Получение частного DNS-имени

Вариант 1: консоль ClickHouse Cloud
В консоли ClickHouse Cloud перейдите в раздел Настройки. Нажмите кнопку Set up private endpoint. На открывшейся выдвижной панели скопируйте DNS-имя.
Вариант 2: API
Задайте следующие переменные окружения перед выполнением команд:
Вы можете получить INSTANCE_ID на этом шаге.
В результате должно получиться примерно следующее:
В этом примере подключение по имени хоста из значения privateDnsHostname будет маршрутизироваться через PrivateLink, а подключение по имени хоста endpointServiceId — через Интернет.

Устранение неполадок

В большинстве случаев достаточно создать только один сервис конечной точки для каждой VPC. Эта конечная точка может маршрутизировать запросы из VPC к нескольким сервисам ClickHouse Cloud. См. здесь

Превышено время ожидания подключения к частной конечной точке

  • Прикрепите группу безопасности к конечной точке VPC.
  • Проверьте правила inbound в группе безопасности, прикреплённой к конечной точке, и разрешите порты ClickHouse.
  • Проверьте правила outbound в группе безопасности, прикреплённой к виртуальной машине, используемой для проверки подключения, и разрешите подключения к портам ClickHouse.

Приватное имя хоста: адрес хоста не найден

  • Проверьте конфигурацию DNS

Соединение сброшено удалённой стороной

  • Скорее всего, Endpoint ID не был добавлен в список разрешённых для сервиса, см. шаг

Проверка фильтров конечной точки

Перед выполнением любых команд задайте следующие переменные окружения:
Вы можете получить INSTANCE_ID, выполнив действия из этого шага.

Подключение к удалённой базе данных

Согласно документации AWS PrivateLink:
Используйте AWS PrivateLink, если у вас есть клиент-серверная архитектура и вы хотите предоставить одной или нескольким VPC-потребителям однонаправленный доступ к определённому сервису или набору экземпляров в VPC поставщика сервиса. Только клиенты в VPC-потребителе могут инициировать подключение к сервису в VPC поставщика сервиса.
Чтобы подключить табличные функции MySQL или PostgreSQL в ClickHouse Cloud к базе данных, размещённой в вашей AWS VPC, настройте группы безопасности AWS так, чтобы разрешить подключения из ClickHouse Cloud. См. IP-адреса egress по умолчанию для регионов ClickHouse Cloud, а также доступные статические IP-адреса.
Последнее изменение 24 июля 2026 г.