ClickHouse BYOC on Azure поддерживает два варианта частного подключения: пиринг виртуальных сетей Azure и Azure Private Link. Оба варианта обеспечивают передачу трафика по магистральной сети Azure без выхода в публичный интернет.
Предварительные требования
Общие шаги, необходимые как для пиринга VNet, так и для Private Link.
Включите частный балансировщик нагрузки для ClickHouse BYOC
В консоли ClickHouse Cloud включите Частный балансировщик нагрузки для инфраструктуры BYOC. Оба варианта подключения проходят через этот внутренний load balancer, поэтому ни один из них не будет работать, пока он не включен.

Запишите Spoken name инфраструктуры. ClickHouse развертывает инфраструктуру BYOC в вашей собственной подписке Azure, в управляемой группе ресурсов с именем clickhouse-cloud-<spoken-name>-default. В этой группе ресурсов вы найдете VNet BYOC на следующих шагах.
Настройка пиринга VNet
Перед началом ознакомьтесь с пирингом виртуальных сетей Azure и его требованиями и ограничениями. ClickHouse BYOC использует частный балансировщик нагрузки для обеспечения сетевого подключения к сервисам ClickHouse через пиринг.
Дополнительные требования для настройки пиринга
Неперекрывающиеся адресные пространства. Виртуальные сети, объединяемые пирингом, не могут иметь перекрывающиеся диапазоны IP-адресов. Сравните адресное пространство вашей VNet с адресным пространством VNet BYOC, указанным на странице Overview VNet BYOC на портале Azure. Если они перекрываются, используйте Private Link.
Разрешения. Для создания пиринга необходимы разрешения Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write и Microsoft.Network/virtualNetworks/peer/action для обеих виртуальных сетей. Встроенная роль Network Contributor включает эти разрешения. См. разрешения для пиринга виртуальных сетей.
Создайте пиринг из виртуальной сети BYOC
- Войдите на портал Azure и переключитесь на подписку BYOC.
- Найдите Virtual networks и выберите VNet BYOC в группе ресурсов
clickhouse-cloud-<spoken-name>-default. - В разделе Settings выберите Peerings, затем + Add.

- Заполните обе части настройки пиринга:

- Нажмите Add.
Создайте обратный пиринг, если он не был создан автоматически
Пиринг Azure состоит из двух частей — по одной в каждом направлении, — и трафик не передаётся, пока не созданы обе. Если на предыдущем шаге портал создал обе части, пропустите этот шаг.
Если была создана только часть со стороны BYOC — поскольку ваша VNet находится в другой подписке или тенанте, — её состояние будет Initiated. Создайте соответствующую часть из своей VNet:
- Переключитесь на подписку, которой принадлежит ваша VNet, и войдите под аккаунтом с ролью Network Contributor для этой VNet.
- Выберите свою VNet, затем Peerings → + Add.
- Выберите I know my resource ID, вставьте Resource ID VNet BYOC и выберите Directory, которому принадлежит подписка BYOC. При появлении запроса выберите Authenticate.
- Выберите Add.
Убедитесь, что обе части подключены
Откройте Peerings в любой из виртуальных сетей. В поле Peering status с обеих сторон должно отображаться Connected. Если часть остаётся в состоянии Initiated, значит соответствующая ей часть отсутствует; если отображается Disconnected, значит соответствующая часть была удалена.
Изменять таблицы маршрутизации не требуется. Azure автоматически устанавливает системные маршруты для адресного пространства пиринговых сетей с обеих сторон. Это можно проверить на любом сетевом интерфейсе в вашей VNet в разделе Effective routes: адресное пространство BYOC отображается с типом следующего перехода VNet peering.

Разрешите доступ из пиринговой VNet через группу безопасности сети
Подсети BYOC защищены управляемой ClickHouse группой безопасности сети, которая по умолчанию запрещает внутренний трафик VNet. Поскольку тег службы VirtualNetwork охватывает адресное пространство пиринговых VNet, трафик, поступающий через пиринг, отбрасывается, пока не будет добавлено входящее разрешающее правило.
Обратитесь в ClickHouse Support, чтобы запросить добавление входящих правил для диапазонов CIDR вашей пиринговой VNet. Без этого шага пиринг будет отображаться как Connected, но при подключении будет возникать тайм-аут.
Получите доступ к сервису ClickHouse через пиринг
Для частного доступа к ClickHouse предоставляются частный балансировщик нагрузки и конечная точка, обеспечивающие защищённое подключение из вашей пиринговой VNet. Формат частной конечной точки соответствует формату публичной конечной точки с суффиксом -private. Например:
- Публичная конечная точка:
h5ju65kv87.mhp0y4dmph.westus3.azure.clickhouse-byoc.com - Частная конечная точка:
h5ju65kv87-private.mhp0y4dmph.westus3.azure.clickhouse-byoc.com
Ограничения
Пиринг не транзитивен. Доступ к вашим сервисам имеет только VNet, напрямую связанная пирингом с VNet BYOC. Клиенты в VNet-спице за хабом, а также клиенты в собственной инфраструктуре, подключающиеся через ExpressRoute или VPN-шлюз, не получают доступ через один пиринг. Для таких топологий требуется дополнительная настройка, например Разрешить перенаправленный трафик и транзит через шлюз — см. шлюзы и подключение к локальной инфраструктуре — либо используйте Private Link.
Межрегиональный пиринг работает, но стоит дороже. Пиринг между VNet в разных регионах является глобальным пирингом. Доступ к ClickHouse через него работает как обычно: частный балансировщик нагрузки BYOC — это внутренний балансировщик нагрузки Standard SKU, а ограничение Azure на доступ к внешним интерфейсам балансировщика нагрузки через глобальный пиринг распространяется только на балансировщики нагрузки Basic SKU. Однако при этом увеличиваются задержка кругового пути и расходы на межрегиональную передачу данных. Для рабочих нагрузок, чувствительных к задержкам, предпочтителен пиринг в одном регионе. Если межрегиональный пиринг отображается как Connected, но подключения по-прежнему не устанавливаются, причина не в регионе — чаще всего отсутствует правило входящей группы безопасности сети для вашего адресного пространства. В этом случае обратитесь в ClickHouse Support.
Изменения адресного пространства требуют повторной синхронизации. Если после создания пиринга вы изменили размер адресного пространства VNet, синхронизируйте пиринг, чтобы объявить новые диапазоны, и обратитесь в ClickHouse Support, чтобы расширить правило входящей группы безопасности сети и включить их.
Трафик через пиринг тарифицируется. Azure взимает плату за входящий и исходящий трафик через пиринг. См. цены на виртуальные сети.
Удаление пиринга
Удалите пиринг с любой стороны. Удаление одной из его частей разрывает соединение, а другая остаётся в состоянии Disconnected, поэтому для полной очистки удалите обе части. См. удаление пиринга.
Настройка Azure Private Link
Azure Private Link обеспечивает безопасное частное подключение к вашим сервисам ClickHouse BYOC. Весь трафик передаётся внутри сети Azure и не проходит через публичный интернет.
Включите Private Link в консоли ClickHouse

[object Object]
- В консоли ClickHouse Cloud перейдите на страницу Settings сервиса, к которому вы хотите подключиться через Private Link.
- Нажмите «Set up private endpoint».
- В открывшейся выдвижной панели скопируйте значения
Service name(псевдоним сервиса Private Link) иDNS-имя— они понадобятся на следующих шагах. (После включения Private Link генерация этих значений может занять некоторое время.)
Создайте частную конечную точку в вашей сети
- Откройте свой Azure Portal (то есть подписку Azure, в которой размещено ваше клиентское приложение) → Network Foundation → Private endpoints → Create.
- На вкладке Basics выберите подписку, группу ресурсов, имя и регион для частной конечной точки. Регион должен совпадать с регионом VNet, из которой подключается ваше клиентское приложение.

- На вкладке Resource выберите Connect to an Azure resource by resource ID or alias и введите
Service name, полученное на предыдущем шаге.
- На вкладке Virtual Network выберите виртуальную сеть и подсеть, в которых будет создана частная конечная точка. При необходимости добавьте группу безопасности приложений, чтобы фильтровать трафик к частной конечной точке.

- Перейдите по оставшимся вкладкам и нажмите Create. Connection status созданной частной конечной точки будет иметь значение Pending, пока на следующих шагах вы не добавите её
Resource IDв список разрешённых для сервиса ClickHouse. - Откройте сетевой интерфейс, связанный с частной конечной точкой, и скопируйте Private IPv4 address — он понадобится на этапе настройки DNS.

[object Object]
Чтобы получить Resource ID частной конечной точки, откройте созданную ранее частную конечную точку в Azure Portal, нажмите JSON View и скопируйте поле id верхнего уровня (Resource ID, отображаемый в верхней части представления, в формате /subscriptions/.../providers/Microsoft.Network/privateEndpoints/<name>). Не используйте вложенные поля id внутри объекта properties:

- В консоли ClickHouse Cloud перейдите на страницу Settings сервиса, к которому требуется подключиться через Private Link.
- Нажмите "Set up private endpoint".
- В открывшейся выдвижной панели укажите полученный выше
Resource IDв полеEndpoint IDи при необходимости добавьте описание. - Нажмите "Create endpoint".

Задайте частное DNS-имя для конечной точки
Необходимо направить все поддомены (wildcard) "DNS-имени" (всё, что следует после ID сервиса, например privatelink.mhp0y4dmph.westus3.azure.clickhouse-byoc.com) на IP-адрес частной конечной точки. Это гарантирует, что сервисы и компоненты в вашей VNet смогут корректно разрешать это имя. Типичная настройка с использованием Azure Private DNS:
- Создайте зону Private DNS с именем, соответствующим "DNS-имени" без начального ID сервиса, например
privatelink.mhp0y4dmph.westus3.azure.clickhouse-byoc.com. - В зоне создайте набор записей с wildcard: для Name укажите
*, а в поле IP Address введите ранее скопированный IP-адрес частной конечной точки. - Свяжите зону Private DNS с вашей виртуальной сетью, чтобы клиенты в VNet могли разрешать имена в этой зоне.
Проверьте настройку DNS с хоста в вашей VNet: "DNS-имя" должно разрешаться в IP-адрес частной конечной точки:
nslookup h5ju65kv87.privatelink.mhp0y4dmph.westus3.azure.clickhouse-byoc.comДоступ к экземпляру через Private Link
- В консоли ClickHouse Cloud перейдите на страницу Settings сервиса.
- Нажмите "Set up private endpoint".
- В открывшейся выдвижной панели скопируйте
DNS-имя.