Управляемая клиентом VPC (BYO-VPC) для AWS
1
Настройте существующую VPC
- Пометьте VPC тегом
clickhouse-byoc="true". - Выделите как минимум 3 приватные подсети в 3 разных зонах доступности, которые будет использовать ClickHouse Cloud.
- Убедитесь, что каждая подсеть имеет минимальный CIDR-диапазон
/23(например, 10.0.0.0/23), чтобы обеспечить достаточное количество IP-адресов для развертывания ClickHouse. - Добавьте в каждую подсеть теги
kubernetes.io/role/internal-elb=1иclickhouse-byoc="true", чтобы обеспечить корректную настройку балансировщика нагрузки.
2
Настройте конечную точку шлюза S3
Если в вашей VPC еще не настроена конечная точка шлюза S3, ее нужно создать, чтобы обеспечить безопасное приватное взаимодействие между вашей VPC и Amazon S3. Эта конечная точка позволяет сервисам ClickHouse обращаться к S3 без выхода в публичный интернет. Пример конфигурации приведен на снимке экрана ниже.
3
Убедитесь в наличии сетевой связности
Исходящий доступ в интернет
Ваша VPC должна как минимум разрешать исходящий доступ в интернет, чтобы компоненты ClickHouse BYOC могли взаимодействовать с Tailscale control plane. Tailscale используется для обеспечения безопасной zero-trust-сети для приватных операций управления. Для первоначальной регистрации и настройки Tailscale требуется доступ к публичному интернету — напрямую или через NAT gateway. Это подключение необходимо для сохранения как конфиденциальности, так и безопасности вашего развертывания BYOC.Разрешение DNS
Убедитесь, что в вашей VPC работает разрешение DNS и что стандартные DNS-имена не блокируются, не перехватываются и не переопределяются. ClickHouse BYOC использует DNS для разрешения адресов серверов управления Tailscale и конечных точек сервисов ClickHouse. Если DNS недоступен или настроен неправильно, сервисы BYOC могут не подключаться или работать некорректно.
4
Настройте учетную запись AWS
При первоначальной настройке BYOC создается привилегированная роль IAM (
ClickHouseManagementRole), которая позволяет контроллерам BYOC из ClickHouse Cloud управлять вашей инфраструктурой. Это можно сделать с помощью шаблона CloudFormation или модуля Terraform.При развертывании в конфигурации BYO-VPC установите параметр IncludeVPCWritePermissions в значение false, чтобы ClickHouse Cloud не получил разрешения на изменение вашей управляемой клиентом VPC.Бакеты хранилища, Kubernetes-кластер и вычислительные ресурсы, необходимые для запуска ClickHouse, не входят в эту первоначальную настройку. Они будут подготовлены на следующем шаге. Хотя вы управляете своей VPC, ClickHouse Cloud по-прежнему нужны разрешения IAM для создания и управления Kubernetes-кластером, ролями IAM для service accounts, S3 бакетами и другими важными ресурсами в вашей учетной записи AWS.
Альтернативный модуль Terraform
Если вы предпочитаете использовать Terraform вместо CloudFormation, используйте следующий модуль:5
Настройте инфраструктуру BYOC
В консоли ClickHouse Cloud при настройке новой инфраструктуры укажите следующее:
- В разделе VPC configuration выберите Use existing VPC.
- Введите свой VPC ID (например,
vpc-0bb751a5b888ad123). - Введите Private subnet IDs для 3 подсетей, которые вы настроили ранее.
- При необходимости введите Public subnet IDs, если в вашей конфигурации требуются общедоступные балансировщики нагрузки.
- Нажмите Set up Infrastructure, чтобы начать подготовку инфраструктуры.
Настройка нового региона может занять до 40 минут.
Управляемые клиентом роли IAM
Управляемые клиентом роли IAM находятся в стадии закрытой предварительной версии. Прежде чем выполнять приведенные ниже шаги, свяжитесь с ClickHouse Support, чтобы включить эту возможность для вашей организации.
- Заранее создаете IAM-роли для каждой инфраструктуры, которые иначе создал бы ClickHouse Cloud
- Убираете разрешения на запись в IAM у
ClickHouseManagementRole, используемой для межаккаунтного доступа - Сохраняете полный контроль над разрешениями ролей и отношениями доверия
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
Поддерживайте роли для каждой инфраструктуры в актуальном состоянии