Перейти к основному содержимому
Перейти к основному содержимому

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 без выставления трафика в общественный Интернет. Этот документ описывает шаги для подключения к ClickHouse Cloud с использованием AWS PrivateLink.

Чтобы ограничить доступ к вашим сервисам ClickHouse Cloud исключительно через адреса AWS PrivateLink, следуйте инструкциям, предоставленным ClickHouse Cloud IP Access Lists.

примечание

ClickHouse Cloud в настоящее время поддерживает кросс-региональный PrivateLink в бета-версии.

Пожалуйста, выполните следующее для включения AWS PrivateLink:

  1. Получите "Имя сервиса" для конечной точки.
  2. Создайте конечную точку AWS.
  3. Добавьте "Идентификатор конечной точки" в организацию ClickHouse Cloud.
  4. Добавьте "Идентификатор конечной точки" в список разрешений сервиса ClickHouse.

Найдите примеры Terraform здесь.

Внимание

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

Предварительные условия

Прежде чем начать, вам понадобится:

  1. Ваш аккаунт AWS.
  2. Ключ 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 и используйте Имя сервисаконсоль или endpointServiceIdAPI, который вы получили на шаге Получить "Имя сервиса" для конечной точки, в поле Имя сервиса. Нажмите Проверить сервис:

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

Если вы получите ошибку "Имя сервиса не может быть проверено", пожалуйста, свяжитесь с поддержкой клиентов, чтобы запросить добавление новых регионов в список поддерживаемых регионов.

Затем выберите ваш VPC и подсети:

В качестве необязательного шага назначьте группы безопасности/теги:

примечание

Убедитесь, что порты 443, 8443, 9440, 3306 разрешены в группе безопасности.

После создания VPC конечной точки запишите значение Идентификатора конечной точки; оно понадобится вам для следующего шага.

Вариант 2: AWS CloudFormation

Затем вы должны создать VPC конечную точку, используя Имя сервисаконсоль или endpointServiceIdAPI, который вы получили на шаге Получить "Имя сервиса" для конечной точки. Убедитесь, что вы используете правильные ID подсетей, группы безопасности и ID VPC.

После создания VPC конечной точки запишите значение Идентификатора конечной точки; оно понадобится вам для следующего шага.

Вариант 3: Terraform

service_name ниже это Имя сервисаконсоль или endpointServiceIdAPI, который вы получили на шаге Получить "Имя сервиса" для конечной точки.

После создания VPC конечной точки запишите значение Идентификатора конечной точки; оно понадобится вам для следующего шага.

Установите частное DNS имя для конечной точки

примечание

Существует несколько способов конфигурации DNS. Пожалуйста, настройте DNS в соответствии с вашим конкретным случаем использования.

Вам нужно указывать "DNS имя", взятое на шаге Получить "Имя сервиса" для конечной точки, на сетевые интерфейсы конечной точки AWS. Это обеспечит, что сервисы/компоненты в вашем VPC/Сети смогут разрешить его корректно.

Добавьте Идентификатор конечной точки в организацию ClickHouse Cloud

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

Чтобы добавить конечную точку в организацию, перейдите к шагу Добавить идентификатор конечной точки в список разрешенных сервисов. Добавление Идентификатора конечной точки через консоль ClickHouse Cloud в список разрешенных сервисов автоматически добавляет его в организацию.

Чтобы удалить конечную точку, откройте Детали организации -> Частные конечные точки и нажмите кнопку удаления, чтобы удалить конечную точку.

Вариант 2: API

Установите следующие переменные окружения перед выполнением любых команд:

Установите переменную окружения ENDPOINT_ID, используя данные из шага Создать конечную точку AWS.

Чтобы добавить конечную точку, выполните:

Чтобы удалить конечную точку, выполните:

Добавьте "Идентификатор конечной точки" в список разрешенных сервисов ClickHouse

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

Чтобы добавить, пожалуйста, перейдите к консоли ClickHouse Cloud, откройте сервис, который вы хотите подключить через PrivateLink, а затем перейдите в Настройки. Введите Идентификатор конечной точки, полученный на шаге Создать конечную точку AWS. Нажмите "Создать конечную точку".

примечание

Если вы хотите разрешить доступ из существующего соединения PrivateLink, используйте выпадающее меню существующей конечной точки.

Чтобы удалить, пожалуйста, перейдите в консоль ClickHouse Cloud, найдите сервис, а затем перейдите в Настройки сервиса, найдите конечную точку, которую вы хотите удалить. Удалите её из списка конечных точек.

Вариант 2: API

Вам нужно добавить Идентификатор конечной точки в разрешенный список для каждого экземпляра, который должен быть доступен через PrivateLink.

Установите переменную окружения ENDPOINT_ID, используя данные из шага Создать конечную точку AWS.

Установите следующие переменные окружения перед выполнением любых команд:

Чтобы добавить идентификатор конечной точки в разрешенный список:

Чтобы удалить идентификатор конечной точки из разрешенного списка:

Каждый сервис с включённым Private Link имеет публичную и частную конечную точку. Чтобы подключиться с помощью Private Link, вам нужно использовать частную конечную точку, которая будет privateDnsHostnameAPI или DNS имяконсоль, взятое из Получить "Имя сервиса" для конечной точки.

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

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

В консоли ClickHouse Cloud перейдите к Настройки. Нажмите на кнопку Настроить частную конечную точку. В открывшемся боковом меню скопируйте DNS имя.

Вариант 2: API

Установите следующие переменные окружения перед выполнением любых команд:

Вы можете получить INSTANCE_ID из шага.

Это должно выводить что-то вроде:

В этом примере соединение через значение имени хоста privateDnsHostname будет маршрутизироваться в PrivateLink, но соединение через имя хоста endpointServiceId будет проходить через Интернет.

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

В большинстве случаев вам нужно создать единую конечную точку сервиса для каждого 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-адреса.