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

AWS PrivateLink для ClickPipes

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

В этом документе описывается функциональность обратной частной конечной точки ClickPipes, которая позволяет настроить конечную точку VPC AWS PrivateLink.

Поддерживаемые источники данных ClickPipes

Функциональность обратных приватных конечных точек (endpoint) ClickPipes ограничена следующими типами источников данных:

  • Kafka
  • Postgres
  • MySQL
  • MongoDB

Обратную приватную конечную точку для ClickPipes можно настроить с использованием одного из следующих вариантов AWS PrivateLink:

Ресурс VPC

Ссылки

Межрегиональные подключения не поддерживаются.

К ресурсам вашей VPC можно получить доступ в ClickPipes с использованием PrivateLink. Этот подход не требует настройки балансировщика нагрузки перед источником данных.

Конфигурацию ресурса можно настроить для конкретного хоста или ARN кластера RDS.

Это предпочтительный вариант для CDC в Postgres при приёме данных из кластера RDS.

Чтобы настроить PrivateLink с ресурсом VPC:

  1. Создайте шлюз ресурса
  2. Создайте конфигурацию ресурса
  3. Создайте общий доступ к ресурсу

Создайте resource gateway

Resource gateway — это точка, которая принимает трафик для указанных ресурсов в вашей VPC.

Примечание

Рекомендуется, чтобы подсети, к которым подключён ваш resource gateway, имели достаточно доступных IP-адресов. Желательно использовать маску подсети не менее /26 для каждой подсети.

Для каждого VPC endpoint (каждого Reverse Private Endpoint) AWS требует последовательный блок из 16 IP-адресов на подсеть (маска подсети /28). Если это требование не выполняется, Reverse Private Endpoint перейдёт в состояние ошибки.

Вы можете создать resource gateway из консоли AWS или с помощью следующей команды:

aws vpc-lattice create-resource-gateway \
    --vpc-identifier <VPC_ID> \
    --subnet-ids <SUBNET_IDS> \
    --security-group-ids <SG_IDs> \
    --name <RESOURCE_GATEWAY_NAME>

Результат выполнения команды будет содержать идентификатор resource gateway, который понадобится вам на следующем шаге.

Прежде чем продолжить, необходимо дождаться, пока resource gateway не перейдёт в состояние Active. Вы можете проверить состояние, выполнив следующую команду:

aws vpc-lattice get-resource-gateway \
    --resource-gateway-identifier <RESOURCE_GATEWAY_ID>

Создайте VPC Resource-Configuration

Resource-Configuration ассоциируется с resource gateway, чтобы сделать ваш ресурс доступным.

Вы можете создать Resource-Configuration из консоли AWS или с помощью следующей команды:

aws vpc-lattice create-resource-configuration \
    --resource-gateway-identifier <RESOURCE_GATEWAY_ID> \
    --type <RESOURCE_CONFIGURATION_TYPE> \
    --resource-configuration-definition <RESOURCE_CONFIGURATION_DEFINITION> \
    --name <RESOURCE_CONFIGURATION_NAME>

Самый простой тип конфигурации ресурса — одиночная Resource-Configuration. Вы можете задать её напрямую через ARN или указать IP-адрес либо доменное имя, которое публично резолвится.

Например, чтобы настроить конфигурацию по ARN кластера RDS:

aws vpc-lattice create-resource-configuration \
    --name my-rds-cluster-config \
    --type ARN \
    --resource-gateway-identifier rgw-0bba03f3d56060135 \
    --resource-configuration-definition 'arnResource={arn=arn:aws:rds:us-east-1:123456789012:cluster:my-rds-cluster}'
Примечание

Вы не можете создать конфигурацию ресурса для кластера с публичным доступом. Если ваш кластер доступен публично, вы должны изменить настройки кластера, чтобы сделать его приватным перед созданием конфигурации ресурса или вместо этого использовать список разрешённых IP. Дополнительные сведения см. в документации AWS.

Результат выполнения команды будет содержать ARN Resource-Configuration, который понадобится вам на следующем шаге. Он также будет содержать идентификатор Resource-Configuration, который потребуется для настройки подключения ClickPipe к ресурсу VPC.

Создайте Resource-Share

Для общего доступа к ресурсу требуется Resource-Share. Это реализуется через Resource Access Manager (RAM).

Вы можете добавить Resource-Configuration в Resource-Share через консоль AWS или выполнив следующую команду с использованием идентификатора аккаунта ClickPipes 072088201116 (arn:aws:iam::072088201116:root):

aws ram create-resource-share \
    --principals 072088201116 \
    --resource-arns <RESOURCE_CONFIGURATION_ARN> \
    --name <RESOURCE_SHARE_NAME>

Результат выполнения команды будет содержать ARN Resource-Share, который потребуется для настройки подключения ClickPipe к ресурсу VPC.

Теперь вы готовы создать ClickPipe с Reverse private endpoint, используя ресурс VPC. Вам нужно:

  • Установить VPC endpoint type в значение VPC Resource.
  • Установить Resource configuration ID в идентификатор Resource-Configuration, созданной на шаге 2.
  • Установить Resource share ARN в ARN Resource-Share, созданного на шаге 3.

Для получения дополнительной информации о PrivateLink с ресурсом VPC см. документацию AWS.

Мульти-VPC-подключение MSK

Мульти-VPC-подключение — это встроенная возможность AWS MSK, которая позволяет подключать несколько VPC к одному кластеру MSK. Поддержка частного DNS доступна по умолчанию и не требует дополнительной конфигурации. Подключение между регионами (cross-region) не поддерживается.

Это рекомендованный вариант для ClickPipes for MSK. См. руководство по началу работы для получения дополнительной информации.

Ссылки

Обновите политику вашего кластера MSK и добавьте 072088201116 в список разрешённых principals для вашего кластера MSK. См. руководство AWS по прикреплению политики кластера для получения дополнительной информации.

Следуйте нашему руководству по настройке MSK для ClickPipes, чтобы узнать, как настроить подключение.

Служба конечной точки VPC

Служба конечной точки VPC — это альтернативный способ предоставить доступ к вашему источнику данных для ClickPipes. Для этого требуется настроить NLB (Network Load Balancer) перед вашим источником данных и настроить службу конечной точки VPC на использование этого NLB.

Службу конечной точки VPC можно настроить с использованием приватного DNS, который будет доступен в VPC ClickPipes.

Это предпочтительный вариант для:

  • Любого on-premises-развертывания Kafka, которому требуется поддержка приватного DNS
  • Межрегионального подключения для Postgres CDC
  • Межрегионального подключения для кластера MSK. Пожалуйста, свяжитесь с командой поддержки ClickHouse за помощью.

См. руководство по началу работы (getting started) для получения дополнительной информации.

Ссылки

Добавьте идентификатор учетной записи ClickPipes 072088201116 в список разрешённых principals вашей службы конечной точки VPC. См. руководство AWS по управлению правами доступа для получения дополнительной информации.

Ссылки

Межрегиональный доступ можно настроить для ClickPipes. Добавьте ваш регион ClickPipe в список разрешённых регионов в вашей службе конечной точки VPC.

Создание ClickPipe с reverse private endpoint

Откройте SQL Console для вашего ClickHouse Cloud Service.

Сервис ClickPipes

В левом меню выберите кнопку Data Sources и нажмите Set up a ClickPipe.

Выбор импортов

Выберите Kafka или Postgres в качестве источника данных.

Выбор источника данных

Выберите опцию Reverse private endpoint.

Выбор reverse private endpoint

Выберите один из существующих reverse private endpoint или создайте новый.

Ссылки

Если для RDS требуется доступ между регионами (cross-region), вам нужно создать VPC endpoint service, и это руководство станет хорошей отправной точкой для его настройки.

Для доступа в пределах одного региона (same-region) рекомендуется создавать VPC Resource.

Выбор reverse private endpoint

Укажите необходимые параметры для выбранного типа endpoint.

Выбор reverse private endpoint
  • Для VPC resource укажите configuration share ARN и configuration ID.
  • Для MSK multi-VPC укажите cluster ARN и метод аутентификации, используемый с созданным endpoint.
  • Для VPC endpoint service укажите service name.

Нажмите Create и дождитесь, пока reverse private endpoint будет готов.

Если вы создаёте новый endpoint, его настройка займёт некоторое время. Страница обновится автоматически, как только endpoint будет готов. Для VPC endpoint service может потребоваться принять запрос на соединение в консоли AWS.

Выбор reverse private endpoint

После того как endpoint будет готов, вы можете использовать DNS-имя для подключения к источнику данных.

В списке endpoints вы можете увидеть DNS-имя доступного endpoint. Это может быть либо внутреннее DNS-имя, подготовленное ClickPipes, либо private DNS-имя, предоставленное PrivateLink-сервисом. DNS-имя не является полным сетевым адресом. Добавьте порт в соответствии с источником данных.

Строку подключения MSK можно получить в консоли AWS.

Чтобы увидеть полный список DNS-имён, откройте настройки облачного сервиса.

Управление существующими обратными приватными конечными точками

Вы можете управлять существующими обратными приватными конечными точками в настройках сервиса ClickHouse Cloud:

В боковой панели найдите кнопку Settings и нажмите на нее.

Настройки ClickHouse Cloud

Нажмите на Reverse private endpoints в разделе ClickPipe reverse private endpoints.

Настройки ClickHouse Cloud

Расширенная информация об обратной приватной конечной точке отображается в выезжающей панели.

Отсюда вы можете удалить конечную точку. Это повлияет на все ClickPipes, которые используют эту конечную точку.

Поддержка AWS PrivateLink для ClickPipes ограничена отдельными регионами AWS. См. список регионов ClickPipes, чтобы узнать доступные регионы.

Это ограничение не применяется к службе конечной точки VPC PrivateLink с включённым подключением между регионами.

Ограничения

Конечные точки AWS PrivateLink для ClickPipes, создаваемые в ClickHouse Cloud, не гарантируется создавать в том же регионе AWS, что и сервис ClickHouse Cloud.

В настоящее время только служба конечных точек VPC поддерживает межрегиональное подключение.

Частные конечные точки привязаны к конкретному сервису ClickHouse и не могут быть перенесены между сервисами. Несколько ClickPipes для одного сервиса ClickHouse могут повторно использовать одну и ту же конечную точку.

AWS MSK поддерживает только один PrivateLink (конечную точку VPC) на кластер MSK для каждого типа аутентификации (SASL_IAM или SASL_SCRAM). В результате несколько сервисов или организаций ClickHouse Cloud не могут создавать отдельные подключения PrivateLink к одному и тому же кластеру MSK, используя один и тот же тип аутентификации.