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

Запомните Имя сервиса
и имя DNS
, затем перейдите к следующему шагу.
Вариант 2: API
Сначала установите следующие переменные окружения перед выполнением любых команд:
Получите INSTANCE_ID
вашего ClickHouse, отфильтровав по региону, провайдеру и имени сервиса:
Получите endpointServiceId
и privateDnsHostname
для вашей конфигурации PrivateLink:
Эта команда должна вернуть что-то вроде:
Запомните endpointServiceId
и privateDnsHostname
, затем перейдите к следующему шагу.
Создайте конечную точку AWS
Этот раздел охватывает специфические детали ClickHouse для настройки ClickHouse через AWS PrivateLink. Специфические шаги AWS предоставляются в качестве справки, чтобы направить вас, куда смотреть, но они могут измениться без предупреждения от поставщика облака AWS. Пожалуйста, рассмотрите конфигурацию AWS в зависимости от вашего конкретного случая использования.
Пожалуйста, обратите внимание, что ClickHouse не отвечает за настройку необходимых AWS VPC конечных точек, правил групп безопасности или DNS записей.
Если вы ранее включили "частные имена DNS" при настройке PrivateLink и испытываете трудности с настройкой новых сервисов через PrivateLink, пожалуйста, свяжитесь с поддержкой ClickHouse. По любым другим вопросам, связанным с задачами конфигурации AWS, обращайтесь непосредственно в поддержку AWS.
Вариант 1: Консоль AWS
Откройте консоль AWS и перейдите в VPC → Конечные точки → Создать конечные точки.
Выберите Сервисы конечных точек, использующие NLB и GWLB и используйте Имя сервиса
консоль или endpointServiceId
API, который вы получили на шаге Получите "Имя сервиса" конечной точки в поле Имя сервиса. Нажмите Проверить сервис:

Если вы хотите установить кросс-региональное соединение через PrivateLink, включите флажок "Конечная точка кросс-регионального типа" и укажите регион сервиса. Регион сервиса — это тот, в котором работает экземпляр ClickHouse.
Если вы получите ошибку "Имя сервиса не удалось проверить.", обратитесь в службу поддержки клиентов, чтобы запросить добавление новых регионов в список поддерживаемых регионов.
Далее выберите свой VPC и подсети:

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

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

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

Вариант 2: API
Установите следующие переменные окружения перед выполнением любых команд:
Вы можете получить INSTANCE_ID
из шага.
Это должно вывести что-то вроде:
В этом примере подключение через значение частного имени privateDnsHostname
будет направлено на PrivateLink, но подключение через имя конечной точки endpointServiceId
будет направлено через интернет.
Устранение неполадок
Несколько PrivateLink в одном регионе
В большинстве случаев вам нужно создать единую конечную точку сервиса для каждого VPC. Эта конечная точка может направлять запросы из VPC к нескольким ClickHouse Cloud сервисам. Пожалуйста, смотрите здесь
Истекло время ожидания подключения к частной конечной точке
- Пожалуйста, прикрепите группу безопасности к VPC конечной точке.
- Пожалуйста, проверьте правила
inbound
в группе безопасности, прикрепленной к конечной точке, и разрешите порты ClickHouse. - Пожалуйста, проверьте правила
outbound
в группе безопасности, прикрепленной к виртуальной машине, которая используется для тестирования соединяемости, и разрешите соединения с портами ClickHouse.
Частное имя хоста: адрес хоста не найден
- Пожалуйста, проверьте вашу DNS конфигурацию
Соединение сброслено пиком
- Скорее всего, ID конечной точки не был добавлен в список разрешённых услуг, пожалуйста, посетите шаг
Проверка фильтров конечной точки
Установите следующие переменные окружения перед выполнением любых команд:
Вы можете получить 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-адресами.