Skip to main content

Управляемая клиентом VPC (BYO-VPC) для AWS

Если вы хотите использовать существующую VPC для развертывания ClickHouse BYOC, а не поручать ClickHouse Cloud создание новой VPC, выполните приведенные ниже шаги. Такой подход дает больше контроля над конфигурацией сети и позволяет интегрировать ClickHouse BYOC в вашу существующую сетевую инфраструктуру.
1

Настройте существующую VPC

  1. Пометьте VPC тегом clickhouse-byoc="true".
  2. Выделите ровно 3 приватные подсети в 3 разных зонах доступности, которые будет использовать ClickHouse Cloud.
  3. Убедитесь, что каждая подсеть имеет минимальный CIDR-диапазон /25 (например, 10.0.0.0/25). /25 поддерживает примерно 10 серверных узлов ClickHouse на зону доступности; для большинства развертываний рекомендуется /24, а для развертываний, которые вы предполагаете масштабировать, — более крупные подсети. IP-адреса подов выделяются из самой подсети, поэтому каждая реплика потребляет адреса подсети.
  4. Добавьте в каждую подсеть теги kubernetes.io/role/internal-elb=1 и clickhouse-byoc="true", чтобы обеспечить корректную настройку балансировщика нагрузки.
2

Настройте конечную точку шлюза S3

Если в вашей VPC еще не настроена конечная точка шлюза S3, ее нужно создать, чтобы обеспечить безопасное приватное взаимодействие между вашей VPC и Amazon S3. Эта конечная точка позволяет сервисам ClickHouse обращаться к S3 без выхода в публичный интернет. Пример конфигурации приведен на снимке экрана ниже.
3

Убедитесь в наличии сетевой связности

Исходящий доступ в интернет Ваша VPC должна как минимум разрешать исходящий доступ в интернет — напрямую или через NAT gateway. От этого зависят две вещи:
  • Tailscale. Компоненты ClickHouse BYOC регистрируются в Tailscale control plane, которая обеспечивает безопасную zero-trust-сеть для приватных операций управления без необходимости входящего публичного доступа. Для первоначальной регистрации и настройки требуется доступ к публичному интернету.
  • Образы контейнеров. Некоторые образы, используемые развертыванием, не зеркалируются в реестр BYOC, в том числе образы сообщества, и загружаются из их upstream-реестров.
VPC без исходящего маршрута не сможет завершить подготовку инфраструктуры. Единого опубликованного списка конечных точек нет; если ваша сетевая политика требует явного перечня, обратитесь в службу поддержки для проверки вашей конфигурации.Разрешение DNS Убедитесь, что в вашей VPC работает разрешение DNS и что стандартные DNS-имена не блокируются, не перехватываются и не переопределяются. ClickHouse BYOC использует DNS для разрешения адресов серверов управления Tailscale и конечных точек сервисов ClickHouse. Если DNS недоступен или настроен неправильно, сервисы BYOC могут не подключаться или работать некорректно.
4

Настройте учетную запись AWS

При первоначальной настройке BYOC создается привилегированная роль IAM (ClickHouseManagementRole), которая позволяет контроллерам BYOC из ClickHouse Cloud управлять вашей инфраструктурой. Это можно сделать с помощью шаблона CloudFormation или модуля Terraform (см. ниже).
Имя роли IAM является обязательным требованием. Роль должна сохранять имя по умолчанию ClickHouseManagementRole — без префиксов, суффиксов или переименования для соответствия принятым в организации правилам именования — если только ClickHouse заранее явно не согласовал другое имя (входной параметр Terraform role_name следует изменять только по согласованию с ClickHouse). Переименованная роль успешно применяется, но затем подготовка инфраструктуры завершается ошибкой, поскольку ClickHouse не может принять ожидаемую роль. В целом не изменяйте ничего в предоставленном шаблоне или модуле без явного одобрения ClickHouse; поддерживаемые настройки доступны в виде параметров.
При развертывании в конфигурации BYO-VPC установите параметр IncludeVPCWritePermissions в значение false, чтобы ClickHouse Cloud не получил разрешения на изменение вашей управляемой клиентом VPC.
Бакеты хранилища, Kubernetes-кластер и вычислительные ресурсы, необходимые для запуска ClickHouse, не входят в эту первоначальную настройку. Они будут подготовлены на следующем шаге. Хотя вы управляете своей VPC, ClickHouse Cloud по-прежнему нужны разрешения IAM для создания и управления Kubernetes-кластером, ролями IAM для service accounts, S3 бакетами и другими важными ресурсами в вашей учетной записи AWS.

Модуль Terraform

Если вы предпочитаете использовать Terraform вместо CloudFormation, используйте модуль terraform-byoc-onboarding:
Замените <version> на последний тег со страницы релизов модуля — всегда используйте последний релиз.Модуль выводит clickhouse_management_role_arn. В стандартном сценарии с ним не нужно выполнять никаких действий — онбординг продолжается в консоли ClickHouse Cloud, — но держите его под рукой: ClickHouse запросит его, если ваша конфигурация отличается от значений по умолчанию (например, при согласованном пользовательском имени роли).Значение external_id генерируется консолью ClickHouse Cloud и используется всеми инфраструктурами BYOC в одном аккаунте AWS. Подробнее, включая устаревший заполнитель emptyid, см. в разделе Внешний ID AWS.
Ранее модуль распространялся в виде tarball по адресу https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/tf/byoc.tar.gz. Этот URL по-прежнему доступен, но устарел — используйте указанный выше модуль GitHub.
5

Настройте инфраструктуру BYOC

При нажатии Set up Infrastructure ClickHouse Cloud автоматически выполняет предварительную проверку перед подготовкой инфраструктуры. Если ваша пользовательская VPC или аккаунт не соответствуют требованиям, настройка будет остановлена с указанием конкретных проблем, которые необходимо устранить.
В консоли ClickHouse Cloud при настройке новой инфраструктуры укажите следующее:
  1. В разделе VPC configuration выберите Use existing VPC.
  2. Введите свой VPC ID (например, vpc-0bb751a5b888ad123).
  3. Введите Private subnet IDs для 3 подсетей, которые вы настроили ранее.
  4. При необходимости введите Public subnet IDs, если в вашей конфигурации требуются общедоступные балансировщики нагрузки.
  5. Нажмите Set up Infrastructure, чтобы начать подготовку инфраструктуры.
Настройка нового региона может занять до 40 минут.

Общие подсети из другого аккаунта (AWS RAM)

Вы можете запускать BYOC в spoke-аккаунте на подсетях, предоставленных из hub-аккаунта через AWS Resource Access Manager (RAM) — это позволяет сохранить централизованное управление сетью. Настройка такая же, как описано выше, за двумя исключениями, которые следуют из особенностей работы общих ресурсов RAM:
  • Назначайте теги из spoke-аккаунта. У ресурсов, предоставленных через RAM, набор видимых тегов индивидуален для каждого аккаунта, поэтому теги, назначенные в hub-аккаунте, в spoke-аккаунте не видны. Назначьте тег clickhouse-byoc="true" для VPC, а kubernetes.io/role/internal-elb=1 вместе с clickhouse-byoc="true" — для каждой общей подсети, причём из spoke-аккаунта. Иначе предварительная проверка сообщит об отсутствующих тегах и подготовка завершится с ошибкой.
  • Маршрутизация остаётся за hub-аккаунтом. Таблицы маршрутизации общих подсетей по-прежнему принадлежат hub-аккаунту, а значит, именно он отвечает за NAT и исходящую маршрутизацию, а также за конечную точку шлюза S3, поскольку это ресурс уровня VPC. Убедитесь, что общие подсети по-прежнему удовлетворяют указанному выше требованию к исходящему подключению.
Всё остальное без изменений: три частные подсети в трёх зонах доступности, CIDR не меньше /25 на подсеть и настройка ClickHouseManagementRole в spoke-аккаунте, где работает инфраструктура BYOC.

Управляемые клиентом роли IAM

Для организаций с повышенными требованиями к безопасности или строгими требованиями соответствия вы можете предоставить собственные роли IAM вместо того, чтобы ClickHouse Cloud создавал их автоматически. Такой подход дает вам полный контроль над разрешениями IAM и позволяет применять политики безопасности вашей организации.
Управляемые клиентом роли IAM находятся в стадии закрытой предварительной версии. Прежде чем выполнять приведенные ниже шаги, свяжитесь с ClickHouse Support, чтобы включить эту возможность для вашей организации.
С управляемыми клиентом ролями IAM вы:
  • Заранее создаете IAM-роли для каждой инфраструктуры, которые иначе создал бы ClickHouse Cloud
  • Убираете разрешения на запись в IAM у ClickHouseManagementRole, используемой для межаккаунтного доступа
  • Сохраняете полный контроль над разрешениями ролей и отношениями доверия
Оба приведенных ниже модуля используют external_id, сгенерированный в консоли ClickHouse Cloud; все инфраструктуры BYOC в одном аккаунте AWS используют один и тот же внешний ID. Подробнее, включая устаревший заполнитель emptyid, см. в разделе Внешний ID AWS.
1

Настройте роль управления без разрешений на запись в IAM

При выполнении первоначальной настройки BYOC отключите разрешения на запись в IAM для роли управления. В шаблоне CloudFormation установите параметр IncludeIAMWritePermissions в значение false. В модуле Terraform:
Замените <version> на последний тег со страницы релизов модуля — всегда используйте последний релиз.
2

Создайте IAM-роли для каждой инфраструктуры

Перед подготовкой каждой инфраструктуры BYOC создайте необходимые для нее IAM-роли (роли EKS Pod Identity, роль доступа ClickHouse к S3 и роль управления плоскостью данных) с помощью per-infra-модуля terraform-byoc-onboarding:
Замените <version> на последний тег со страницы релизов модуля — всегда используйте последний релиз.
3

Поддерживайте роли для каждой инфраструктуры в актуальном состоянии

ClickHouse периодически добавляет роли и разрешения, необходимые для новых возможностей платформы. Когда ClickHouse уведомит вас об обновлении, повторно примените per-infra-модуль из последнего релиза — использование устаревшей версии может привести к сбоям при подготовке и обновлении вашей инфраструктуры BYOC.
Сведения о ролях IAM, которые ClickHouse Cloud создает по умолчанию, см. в справочнике по привилегиям BYOC.
Последнее изменение 28 сентября 2026 г.