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

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, используйте IP Access Lists ClickHouse Cloud.

примечание

ClickHouse Cloud в настоящее время не поддерживает cross-region PrivateLink. Тем не менее, вы можете подключиться к PrivateLink с помощью VPC peering. Для получения дополнительной информации и рекомендаций по настройке обратитесь к документации AWS.

Пожалуйста, выполните следующие шаги, чтобы включить AWS Private Link:

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

Полный пример Terraform для AWS Private Link можно найти здесь.

Prerequisites

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

  1. Учетная запись AWS.
  2. Ключ API с необходимыми правами для создания и управления приватными ссылками.

Steps

Следуйте этим шагам, чтобы подключить ваш ClickHouse Cloud к AWS PrivateLink.

Obtain Endpoint Service name

Option 1: ClickHouse Cloud console

В консоли ClickHouse Cloud откройте сервис, к которому вы хотите подключиться через PrivateLink, затем откройте меню Настройки. Нажмите кнопку Настроить приватную конечную точку. Скопируйте Имя сервиса, которое будет использоваться для настройки Private Link.

Приватные конечные точки

Option 2: API

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

Получите желаемый ID экземпляра, фильтруя по региону, провайдеру и имени сервиса:

Получите AWS Service Name для вашей конфигурации Private Link:

Эта команда должна вернуть что-то вроде:

Запомните endpointServiceId и перейдите к шагу 2.

Create a service endpoint

Далее вам нужно создать конечную точку сервиса, используя endpointServiceId из предыдущего шага.

Option 1: AWS console

Откройте консоль AWS и перейдите в VPCКонечные точкиСоздать конечные точки.

Выберите Другие конечные сервисы и используйте endpointServiceId, который вы получили на предыдущем шаге. Когда закончите, нажмите Проверить сервис:

Настройки конечной точки AWS PrivateLink

Далее выберите ваш VPC и подсети:

Выбор VPC и подсетей

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

Порты

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

После создания VPC Endpoint запомните значение Endpoint ID; оно понадобится вам в следующем шаге.

ID конечной точки VPC

Option 2: AWS CloudFormation

Убедитесь, что вы используете правильные ID подсетей, группы безопасности и ID VPC.

Option 3: Terraform

Modify Private DNS Name for Endpoint

Этот шаг добавляет конфигурацию частной DNS зоны <код региона>.vpce.aws.clickhouse.cloud в AWS VPC.

DNS-резолвер

Если вы используете собственный DNS-резолвер, создайте DNS-зону <код региона>.vpce.aws.clickhouse.cloud и укажите запись *.<код региона>.vpce.aws.clickhouse.cloud на IP-адреса ID конечной точки.

Option 1: AWS Console

Перейдите в VPC Endpoints, щелкните правой кнопкой мыши на VPC Endpoint, затем выберите Изменить частное DNS имя:

Меню конечных точек AWS PrivateLink

На открывшейся странице выберите Включить частные DNS имена:

Изменить DNS имена

Option 2: AWS CloudFormation

Обновите шаблон CloudFormation и установите PrivateDnsEnabled в true:

Примените изменения.

Option 3: Terraform

  • Измените ресурс aws_vpc_endpoint в коде Terraform и установите private_dns_enabled в true:

Примените изменения.

Add Endpoint ID to ClickHouse Cloud organization

Option 1: ClickHouse Cloud console

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

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

Удалить приватную конечную точку

Option 2: API

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

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

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

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

Add Endpoint ID to service(s) allow list

Option 1: ClickHouse Cloud console

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

примечание

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

Фильтр приватных конечных точек

Option 2: API

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

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

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

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

Каждый экземпляр с настроенным фильтром Private Link имеет публичную и частную конечные точки. Для подключения к вашему сервису с использованием PrivateLink вы должны использовать частную конечную точку privateDnsHostname.

примечание

Частное DNS имя доступно только из вашего AWS VPC. Не пытайтесь разрешить DNS хост из локальной машины.

Getting Private DNS Hostname

Option 1: ClickHouse Cloud console

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

DNS имя приватной конечной точки
Option 2: API

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

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

В этом примере подключение к хосту xxxxxxx.yy-xxxx-N.vpce.aws.clickhouse.cloud будет направлено на PrivateLink, но xxxxxxx.yy-xxxx-N.aws.clickhouse.cloud будет направлено через интернет.

Troubleshooting

В большинстве случаев вам нужно создать только одну конечную точку сервиса для каждого VPC. Эта конечная точка может направлять запросы из VPC к нескольким услугам ClickHouse Cloud.

Connection to private endpoint timed out

  • Пожалуйста, прикрепите группу безопасности к VPC Endpoint.
  • Пожалуйста, проверьте входящие правила на группе безопасности, прикрепленной к конечной точке, и разрешите порты ClickHouse.
  • Пожалуйста, проверьте исходящие правила на группе безопасности, прикрепленной к ВМ, которая используется для тестирования подключения, и разрешите соединения с портами ClickHouse.

Private Hostname: Not found address of host

  • Пожалуйста, проверьте, что опция "Частные DNS имена" включена, посетите шаг для получения подробностей

Connection reset by peer

  • Скорее всего, ID конечной точки не был добавлен в список разрешенных сервисов, пожалуйста, посетите шаг

Checking Endpoint filters

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

Connecting to a remote database

Предположим, вы пытаетесь использовать функции таблиц 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-адреса.