AWS PrivateLink
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 без раскрытия трафика в публичный Интернет. Этот документ описывает шаги для подключения к ClickHouse Cloud с использованием AWS PrivateLink.
Чтобы ограничить доступ к вашим услугам ClickHouse Cloud исключительно через адреса AWS PrivateLink, следуйте инструкциям, предоставленным ClickHouse Cloud IP Access Lists.
ClickHouse Cloud поддерживает cross-region PrivateLink из следующих регионов:
- sa-east-1
- il-central-1
- me-central-1
- me-south-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:
- Получите "Service name" для конечной точки.
- Создайте конечную точку AWS.
- Добавьте "Endpoint ID" в организацию ClickHouse Cloud.
- Добавьте "Endpoint ID" в список разрешённых сервисов ClickHouse.
Найдите примеры Terraform здесь.
Важные соображения
ClickHouse пытается группировать ваши сервисы, чтобы повторно использовать одну и ту же опубликованную конечную точку сервиса в пределах региона AWS. Однако такая группировка не гарантируется, особенно если вы распределяете свои сервисы по нескольким организациям ClickHouse. Если у вас уже настроен PrivateLink для других сервисов в вашей организации ClickHouse, вы часто можете пропустить большинство шагов из-за этой группировки и перейти непосредственно к последнему шагу: добавить "Endpoint ID" ClickHouse в список разрешённых сервисов ClickHouse.
Предварительные требования для этого процесса
Перед началом вам потребуется:
- Ваша учетная запись AWS.
- API-ключ ClickHouse с необходимыми разрешениями для создания и управления частными конечными точками на стороне ClickHouse.
Шаги
Следуйте этим шагам, чтобы подключить ваши сервисы ClickHouse Cloud через AWS PrivateLink.
Получите "Service name" конечной точки
Вариант 1: Консоль ClickHouse Cloud
В консоли ClickHouse Cloud откройте сервис, который вы хотите подключить через PrivateLink, затем перейдите в меню Настройки.

Запишите Service name
и DNS name
, затем перейдите к следующему шагу.
Вариант 2: API
Сначала установите следующие переменные окружения перед выполнением любых команд:
Получите INSTANCE_ID
вашего ClickHouse, отфильтровав по региону, провайдеру и имени сервиса:
Получите endpointServiceId
и privateDnsHostname
для вашей конфигурации PrivateLink:
Эта команда должна вернуть что-то вроде:
Запишите endpointServiceId
и privateDnsHostname
, перейдите к следующему шагу.
Создайте конечную точку AWS
Этот раздел охватывает специфические для ClickHouse детали конфигурации ClickHouse через AWS PrivateLink. Шаги, специфичные для AWS, предоставляются как справка, чтобы направить вас, но они могут со временем измениться без предварительного уведомления от поставщика облачных услуг AWS. Пожалуйста, учитывайте конфигурацию AWS в зависимости от вашего конкретного случая использования.
Обратите внимание, что ClickHouse не несет ответственности за настройку необходимых конечных точек VPC AWS, правил групп безопасности или DNS записей.
Если вы ранее включили "private DNS names" при настройке PrivateLink и испытываете трудности с настройкой новых сервисов через PrivateLink, пожалуйста, свяжитесь со службой поддержки ClickHouse. Для любых других проблем, связанных с задачами настройки AWS, свяжитесь непосредственно со службой поддержки AWS.
Вариант 1: Консоль AWS
Откройте консоль AWS и перейдите в VPC → Конечные точки → Создать конечные точки.
Выберите Endpoint services that use NLBs and GWLBs и используйте Service name
консоль или endpointServiceId
API, который вы получили на шаге Получите "Service name" конечной точки, в поле Service Name. Нажмите Проверить сервис:

Если вы хотите установить межрегиональное соединение через PrivateLink, включите флажок "Cross region endpoint" и укажите регион сервиса. Регион сервиса - это местонахождение экземпляра ClickHouse.
Если вы получите ошибку "Service name could not be verified.", пожалуйста, свяжитесь с поддержкой клиентов, чтобы запросить добавление новых регионов в список поддерживаемых регионов.
Далее выберите ваш VPC и подсети:

В качестве необязательного шага назначьте группы безопасности/Теги:
Убедитесь, что порты 443
, 8443
, 9440
, 3306
разрешены в группе безопасности.
После создания конечной точки VPC запишите значение Endpoint ID
; оно вам понадобится для следующего шага.

Вариант 2: AWS CloudFormation
Далее вам нужно создать конечную точку VPC, используя Service name
консоль или endpointServiceId
API, который вы получили на шаге Получите "Service name" конечной точки.
Убедитесь, что используются правильные идентификаторы подсетей, группы безопасности и идентификатор VPC.
После создания конечной точки VPC запишите значение Endpoint ID
; оно вам понадобится для следующего шага.
Вариант 3: Terraform
service_name
ниже это Service name
консоль или endpointServiceId
API, который вы получили на шаге Получите "Service name" конечной точки
После создания конечной точки VPC запишите значение Endpoint ID
; оно вам понадобится для следующего шага.
Установите приватное DNS имя для конечной точки
Существует множество способов настроить DNS. Пожалуйста, настройте DNS в зависимости от вашего конкретного случая использования.
Вам нужно указать "DNS name", полученное на шаге Получите "Service name" конечной точки, на сетевые интерфейсы конечной точки AWS. Это гарантирует, что сервисы/компоненты внутри вашего VPC/Сети могут правильно его разрешать.
Добавьте "Endpoint ID" в список разрешённых сервисов ClickHouse
Вариант 1: Консоль ClickHouse Cloud
Чтобы добавить, пожалуйста, перейдите в консоль ClickHouse Cloud, откройте сервис, который вы хотите подключить через PrivateLink, затем перейдите в Настройки. Нажмите Настроить частную конечную точку, чтобы открыть настройки частных конечных точек. Введите Endpoint ID
, полученный на шаге Создайте конечную точку AWS. Нажмите "Создать конечную точку".
Если вы хотите разрешить доступ из существующего соединения PrivateLink, используйте выпадающее меню существующей конечной точки.

Чтобы удалить, пожалуйста, перейдите в консоль ClickHouse Cloud, найдите сервис, затем перейдите в Настройки сервиса, найдите конечную точку, которую вы хотите удалить. Удалите её из списка конечных точек.
Вариант 2: API
Вам нужно добавить идентификатор конечной точки в разрешённый список для каждого экземпляра, который должен быть доступен через PrivateLink.
Установите переменную окружения ENDPOINT_ID
, используя данные из шага Создайте конечную точку AWS.
Установите следующие переменные окружения перед выполнением любых команд:
Чтобы добавить идентификатор конечной точки в разрешённый список:
Чтобы удалить идентификатор конечной точки из разрешённого списка:
Доступ к экземпляру с использованием PrivateLink
Каждая служба с включенным PrivateLink имеет общественную и частную конечные точки. Чтобы подключиться с использованием PrivateLink, вам нужно использовать частную конечную точку, которая будет privateDnsHostname
API или DNS Name
консоль, взятое из Получите "Service name".
Получение частого DNS имени
Вариант 1: Консоль ClickHouse Cloud
В консоли ClickHouse Cloud перейдите в Настройки. Нажмите на кнопку Настроить частную конечную точку. В открывшемся окне скопируйте DNS Name.

Вариант 2: API
Установите следующие переменные окружения перед выполнением любых команд:
Вы можете получить INSTANCE_ID
из шага.
Это должно вывести что-то вроде:
В этом примере соединение через значение имени хоста privateDnsHostname
будет направлено в PrivateLink, но соединение через имя хоста endpointServiceId
будет направлено через Интернет.
Устранение неполадок
Несколько PrivateLink в одном регионе
В большинстве случаев вам нужно создать только одну конечную точку сервиса для каждого VPC. Эта конечная точка может направлять запросы из VPC в несколько сервисов ClickHouse Cloud. Пожалуйста, обратитесь здесь
Тайм-аут соединения с частной конечной точкой
- Пожалуйста, прикрепите группу безопасности к конечной точке VPC.
- Пожалуйста, проверьте правила
inbound
на группе безопасности, прикрепленной к конечной точке, и разрешите порты ClickHouse. - Пожалуйста, проверьте правила
outbound
на группе безопасности, прикрепленной к виртуальной машине, используемой для проверки подключения, и разрешите подключения к портам ClickHouse.
Частное имя хоста: адрес хоста не найден
- Пожалуйста, проверьте вашу конфигурацию DNS.
Сброс соединения со стороны соперника
- Скорее всего, идентификатор конечной точки не был добавлен в список разрешённых сервисов, пожалуйста, перейдите к шагу
Проверка фильтров конечной точки
Установите следующие переменные окружения перед выполнением любых команд:
Вы можете получить INSTANCE_ID
из шага.
Подключение к удаленной базе данных
Предположим, вы пытаетесь использовать MySQL или PostgreSQL табличные функции в ClickHouse Cloud и подключиться к своей базе данных, размещённой в VPC Amazon Web Services (AWS). AWS PrivateLink не может быть использован для безопасного включения этого соединения. PrivateLink представляет собой одностороннее, унидирекционное соединение. Оно позволяет вашей внутренней сети или Amazon VPC безопасно подключаться к ClickHouse Cloud, но не позволяет ClickHouse Cloud подключаться к вашей внутренней сети.
Согласно документации AWS PrivateLink:
Используйте AWS PrivateLink, когда у вас настроена клиентская/серверная архитектура, где вы хотите разрешить один или несколько VPC потребителей односторонний доступ к конкретному сервису или набору экземпляров в VPC поставщика сервиса. Только клиенты в VPC потребителе могут инициировать соединение с сервисом в VPC поставщика сервиса.
Для этого настройте ваши группы безопасности AWS, чтобы разрешить соединения от ClickHouse Cloud к вашему внутреннему/частному сервису базы данных. Проверьте стандартные IP-адреса для выхода для регионов ClickHouse Cloud, а также доступные статические IP-адреса.