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

AWS PrivateLink для ClickPipes

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

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

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

Функциональность reverse private endpoint в ClickPipes поддерживается только для следующих типов источников данных:

  • Kafka
  • Postgres
  • MySQL
  • MongoDB

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

Ресурс VPC

Справочные материалы

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

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

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

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

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

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

Создайте шлюз ресурсов

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

Примечание

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

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

Вы можете создать шлюз ресурсов через консоль AWS или с помощью следующей команды:

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

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

Прежде чем продолжить, дождитесь, пока шлюз ресурса перейдёт в состояние Active. Текущее состояние можно проверить с помощью следующей команды:

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

Создайте 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>

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

Например, чтобы настроить ресурс по 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.

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

Создайте Resource-Share

Чтобы предоставить общий доступ к ресурсу, требуется Resource-Share. Это осуществляется с помощью Resource Access Manager (RAM).

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

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

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

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

  • Установить VPC endpoint type в значение VPC Resource.
  • Установить Resource configuration ID в значение 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 для 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.

ClickPipes service

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

Select imports

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

Select data source

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

Select reverse private endpoint

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

Справочные материалы

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

Для доступа в пределах одного региона рекомендуется создавать ресурс VPC.

Select reverse private endpoint

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

Select reverse private endpoint
- For VPC resource, provide the configuration share ARN and configuration ID.
- For MSK multi-VPC, provide the cluster ARN and authentication method used with a created endpoint.
- For VPC endpoint service, provide the service name.

Нажмите Create и дождитесь, пока обратная приватная конечная точка станет готова.

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

Выберите обратную приватную конечную точку

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

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

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

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

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

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

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

Настройки ClickHouse Cloud

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

Настройки ClickHouse Cloud

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

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

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

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

Ограничения

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

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

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