BYOC (Bring Your Own Cloud) для AWS
Обзор
BYOC (Bring Your Own Cloud) позволяет вам развернуть ClickHouse Cloud на вашей собственной облачной инфраструктуре. Это полезно, если у вас есть специфические требования или ограничения, которые мешают вам использовать управляемый сервис ClickHouse Cloud.
Если вы хотите получить доступ, пожалуйста, свяжитесь с нами. Смотрите наши Условия обслуживания для получения дополнительной информации.
На данный момент BYOC поддерживается только для AWS, разработки для GCP и Microsoft Azure находятся в процессе.
BYOC предназначен специально для масштабных развертываний и требует от клиентов подписания обязательного договора.
Глоссарий
- VPC ClickHouse: VPC, принадлежащий ClickHouse Cloud.
- VPC клиента BYOC: VPC, принадлежащая облачному аккаунту клиента, развернутая и управляемая ClickHouse Cloud и выделенная для развертывания ClickHouse Cloud BYOC.
- VPC клиента: Другие VPC, принадлежащие облачному аккаунту клиента, используемые для приложений, которые должны подключаться к VPC клиента BYOC.
Архитектура
Метрики и логи хранятся в VPC клиента BYOC. Логи в настоящее время хранятся локально в EBS. В будущих обновлениях логи будут храниться в LogHouse, который является сервисом ClickHouse в VPC клиента BYOC. Метрики реализованы через стек Prometheus и Thanos, хранящиеся локально в VPC клиента BYOC.

Процесс подключения
Клиенты могут инициировать процесс подключения, связавшись с нами. Клиенты должны иметь выделенный аккаунт AWS и знать регион, который они будут использовать. В настоящее время мы разрешаем пользователям запускать сервисы BYOC только в тех регионах, которые мы поддерживаем для ClickHouse Cloud.
Подготовьте выделенный аккаунт AWS
Клиенты должны подготовить выделенный аккаунт AWS для хостинга развертывания ClickHouse BYOC, чтобы обеспечить лучшее изоляцию. С этим и начальным электронным адресом администратора вашей организации вы можете связаться с поддержкой ClickHouse.
Примените шаблон CloudFormation
Настройка BYOC запускается через стек CloudFormation, который создает только роль, позволяющую контроллерам BYOC из ClickHouse Cloud управлять инфраструктурой. Ресурсы S3, VPC и вычислительные ресурсы для запуска ClickHouse не включены в этот стек.
Настройка инфраструктуры BYOC
После создания стека CloudFormation вам будет предложено настроить инфраструктуру, включая S3, VPC и кластер EKS, из облачной консоли. Определенные конфигурации должны быть установлены на этом этапе, так как их нельзя будет изменить позже. В частности:
- Регион, который вы хотите использовать: вы можете выбрать любой из общедоступных регионов, которые у нас есть для ClickHouse Cloud.
- CIDR диапазон VPC для BYOC: По умолчанию мы используем
10.0.0.0/16
для CIDR диапазона VPC BYOC. Если вы планируете использовать VPC-пиринг с другим аккаунтом, убедитесь, что диапазоны CIDR не пересекаются. Выделите подходящий CIDR диапазон для BYOC, минимальный размер которого составляет/22
, чтобы разместить необходимые рабочие нагрузки. - Зоны доступности для VPC BYOC: Если вы планируете использовать VPC-пиринг, согласование зон доступности между исходным и BYOC аккаунтами может помочь снизить затраты на трафик между AZ. В AWS суффиксы зон доступности (
a, b, c
) могут представлять разные физические идентификаторы зон между аккаунтами. Смотрите руководство AWS для получения деталей.
Дополнительно: Настройка VPC-пиринга
Чтобы создать или удалить VPC-пиринг для ClickHouse BYOC, выполните следующие шаги:
Шаг 1 Включите частный балансировщик нагрузки для ClickHouse BYOC
Свяжитесь со службой поддержки ClickHouse для включения частного балансировщика нагрузки.
Шаг 2 Создайте соединение пиринга
- Перейдите к панели VPC в аккаунте ClickHouse BYOC.
- Выберите Пиринговые соединения.
- Нажмите Создать соединение пиринга.
- Установите запрашивающий VPC на ID VPC ClickHouse.
- Установите принимающий VPC на ID целевого VPC. (При необходимости выберите другой аккаунт.)
- Нажмите Создать соединение пиринга.

Шаг 3 Примите запрос на соединение пиринга
Перейдите в аккаунт пиринга, на странице (VPC -> Пиринговые соединения -> Действия -> Принять запрос) клиент может одобрить этот запрос на VPC пиринг.

Шаг 4 Добавьте пункт назначения в таблицы маршрутов VPC ClickHouse
В аккаунте ClickHouse BYOC:
- Выберите Таблицы маршрутов в панели VPC.
- Найдите ID VPC ClickHouse. Отредактируйте каждую таблицу маршрутов, прикрепленную к частным подсетям.
- Нажмите кнопку Редактировать на вкладке Маршруты.
- Нажмите Добавить другой маршрут.
- Введите CIDR диапазон целевого VPC для назначения.
- Выберите "Соединение пиринга" и ID соединения пиринга для цели.

Шаг 5 Добавьте пункт назначения в таблицы маршрутов целевого VPC
В аккаунте AWS пиринга:
- Выберите Таблицы маршрутов в панели VPC.
- Найдите ID целевого VPC.
- Нажмите кнопку Редактировать на вкладке Маршруты.
- Нажмите Добавить другой маршрут.
- Введите CIDR диапазон VPC ClickHouse для назначения.
- Выберите "Соединение пиринга" и ID соединения пиринга для цели.

Шаг 6 Отредактируйте группу безопасности, чтобы разрешить доступ к пиринговому VPC
В аккаунте ClickHouse BYOC:
- В аккаунте ClickHouse BYOC перейдите в EC2 и найдите Частный балансировщик нагрузки с именем, как infra-xx-xxx-ingress-private.

- На вкладке Безопасность на странице сведений найдите связанную группу безопасности, которая следует шаблону именования, как
k8s-istioing-istioing-xxxxxxxxx
.

- Отредактируйте входящие правила этой группы безопасности и добавьте диапазон CIDR пирингового VPC (или укажите требуемый диапазон CIDR по мере необходимости).

Сервис ClickHouse теперь должен быть доступен из пирингового VPC.
Чтобы получить доступ к ClickHouse приватно, создан частный балансировщик нагрузки и конечная точка для безопасного подключения из пирингового VPC пользователя. Приватная конечная точка имеет тот же формат, что и публичная конечная точка, с суффиксом -private
. Например:
- Публичная конечная точка:
h5ju65kv87.mhp0y4dmph.us-west-2.aws.byoc.clickhouse.cloud
- Приватная конечная точка:
h5ju65kv87-private.mhp0y65dmph.us-west-2.aws.byoc.clickhouse.cloud
Дополнительно, после проверки работы пиринга вы можете запросить удаление публичного балансировщика нагрузки для ClickHouse BYOC.
Процесс обновления
Мы регулярно обновляем программное обеспечение, включая обновления версии базы данных ClickHouse, ClickHouse Operator, EKS и других компонентов.
Хотя мы стремимся к бесшовным обновлениям (например, поэтапным обновлениям и перезапускам), некоторые, такие как изменения версии ClickHouse и обновления узлов EKS, могут повлиять на сервис. Клиенты могут указать окно обслуживания (например, каждый вторник в 1:00 по PDT), чтобы гарантировать, что такие обновления происходят только в установленное время.
Окна обслуживания не применяются к исправлениям безопасности и уязвимостей. Эти вопросы рассматриваются как внеплановые обновления с своевременным информированием для координации удобного времени и минимизации операционного воздействия.
IAM роли CloudFormation
Роль IAM начальной загрузки
Роль начальной загрузки IAM имеет следующие разрешения:
- Операции EC2 и VPC: Необходимы для настройки VPC и кластеров EKS.
- Операции S3 (например,
s3:CreateBucket
): Необходимы для создания корзин для хранения ClickHouse BYOC. - Разрешения
route53:*
: Необходимы для внешнего DNS, чтобы настраивать записи в Route 53. - Операции IAM (например,
iam:CreatePolicy
): Необходимы для контроллеров для создания дополнительных ролей (см. следующий раздел для деталей). - Операции EKS: Ограничены ресурсами с именами, начинающимися с префикса
clickhouse-cloud
.
Дополнительные IAM роли, создаваемые контроллером
В дополнение к роли ClickHouseManagementRole
, созданной через CloudFormation, контроллер создаст несколько дополнительных ролей.
Эти роли предполагаются приложениями, работающими в кластере EKS клиента:
- Роль экспорта состояния
- Компонент ClickHouse, который сообщает информацию о состоянии сервиса в ClickHouse Cloud.
- Требует разрешения на запись в очередь SQS, принадлежащую ClickHouse Cloud.
- Контроллер балансировщика нагрузки
- Стандартный контроллер балансировщика нагрузки AWS.
- Контроллер CSI EBS для управления томами для сервисов ClickHouse.
- Внешний DNS
- Пропагирует конфигурации DNS в Route 53.
- Cert-Manager
- Предоставляет TLS-сертификаты для доменов сервисов BYOC.
- Автооткалибровщик кластера
- Корректирует размер группы узлов по мере необходимости.
K8s-control-plane и k8s-worker роли предназначены для предположения сервисами AWS EKS.
Наконец, data-plane-mgmt
позволяет компоненту ClickHouse Cloud Control Plane согласовывать необходимые пользовательские ресурсы, такие как ClickHouseCluster
и Istio Virtual Service/Gateway.
Сетевые границы
В этом разделе рассматриваются различные сетевые трафики к и от VPC клиента BYOC:
- Входящие: Трафик, поступающий во VPC клиента BYOC.
- Исходящие: Трафик, исходящий из VPC клиента BYOC и отправляемый на внешние назначения.
- Публичный: Сетевой конечная точка, доступная из публичного интернета.
- Частный: Сетевой конечная точка, доступная только через частные подключения, такие как VPC-пиринг, VPC Private Link или Tailscale.
Ingress Istio развертывается за AWS NLB для принятия трафика клиентов ClickHouse.
Входящие, Публичные (могут быть Частными)
Шлюз входа Istio завершает TLS. Сертификат, предоставленный CertManager с Let's Encrypt, хранится как секрет в кластере EKS. Трафик между Istio и ClickHouse шифруется AWS, так как они находятся в одном VPC.
По умолчанию входящие соединения общедоступны с фильтрацией по списку IP. Клиенты могут настроить VPC-пиринг, чтобы сделать его частным и отключить публичные соединения. Мы настоятельно рекомендуем установить фильтр IP, чтобы ограничить доступ.
Устранение неполадок доступа
Входящие, Публичные (могут быть Частными)
Инженеры ClickHouse Cloud требуют доступа для устранения неполадок через Tailscale. Им предоставляются временно действующие сертификаты для аутентификации для развертываний BYOC.
Скрепер выставления счетов
Исходящие, Частные
Скрепер выставления счетов собирает данные о выставлении счетов из ClickHouse и отправляет их в корзину S3, принадлежащую ClickHouse Cloud.
Он работает как сайдкар вместе с контейнером сервера ClickHouse, периодически собирая метрики CPU и памяти. Запросы в пределах одного региона маршрутизируются через конечные точки сервиса шлюза VPC.
Уведомления
Исходящие, Публичные
AlertManager настроен на отправку уведомлений в ClickHouse Cloud, когда кластер ClickHouse клиента находится в нездоровом состоянии.
Метрики и логи хранятся в VPC клиента BYOC. Логи в настоящее время хранятся локально в EBS. В будущем они будут храниться в LogHouse, сервисе ClickHouse в VPC BYOC. Метрики используют стек Prometheus и Thanos, хранящиеся локально в VPC BYOC.
Состояние сервиса
Исходящие
Экспортер состояния отправляет информацию о состоянии сервиса ClickHouse в SQS, принадлежащий ClickHouse Cloud.
Функции
Поддерживаемые функции
- SharedMergeTree: ClickHouse Cloud и BYOC используют один и тот же бинарный файл и конфигурацию. Поэтому все функции ядра ClickHouse поддерживаются в BYOC, такие как SharedMergeTree.
- Доступ к консоли для управления состоянием сервиса:
- Поддерживает операции, такие как запуск, остановка и завершение.
- Просмотр сервисов и их статусов.
- Резервное копирование и восстановление.
- Ручное вертикальное и горизонтальное масштабирование.
- Простой режим.
- Склады: Разделение вычислений.
- Сеть нулевого доверия через Tailscale.
- Мониторинг:
- Облачная консоль включает встроенные панели состояния для мониторинга здоровья сервиса.
- Сбор метрик Prometheus для централизованного мониторинга с Prometheus, Grafana и Datadog. Смотрите документацию Prometheus для получения инструкций по настройке.
- VPC Пиринг.
- Интеграции: Смотрите полный список на этой странице.
- Безопасный S3.
- AWS PrivateLink.
Запланированные функции (в настоящее время неподдерживаемые)
- AWS KMS также известный как CMEK (управляемые клиентом ключи шифрования)
- ClickPipes для инжеста
- Автошкалирование
- Интерфейс MySQL
Часто задаваемые вопросы
Вычисления
Могу ли я создать несколько сервисов в одном кластере EKS?
Да. Инфраструктура должна быть развернута только один раз для каждой комбинации аккаунта AWS и региона.
Какие регионы вы поддерживаете для BYOC?
BYOC поддерживает тот же набор регионов, что и ClickHouse Cloud.
Будет ли какой-либо перерасход ресурсов? Какие ресурсы необходимы для запуска сервисов помимо экземпляров ClickHouse?
Кроме экземпляров ClickHouse (серверов ClickHouse и ClickHouse Keeper), мы запускаем такие сервисы, как clickhouse-operator
, aws-cluster-autoscaler
, Istio и наш стек мониторинга.
В настоящее время у нас есть 3 узла типа m5.xlarge (по одному для каждой AZ) в выделенной группе узлов для запуска этих рабочих нагрузок.
Сеть и безопасность
Можем ли мы отозвать разрешения, установленные во время установки, после завершения настройки?
В настоящее время это невозможно.
Рассматривали ли вы какие-либо будущие меры безопасности для инженеров ClickHouse для доступа к инфраструктуре клиента для устранения неполадок?
Да. Реализация механизма, контролируемого клиентом, где клиенты могут одобрять доступ инженеров к кластеру, находится в нашей дорожной карте. В данный момент инженеры должны проходить наш внутренний процесс эскалации, чтобы получить временный доступ к кластеру. Это регистрируется и проверяется нашей командой безопасности.
Какой размер диапазона IP VPC создан?
По умолчанию мы используем 10.0.0.0/16
для VPC BYOC. Мы рекомендуем зарезервировать по крайней мере /22 для потенциального будущего масштабирования, но если вы предпочитаете ограничить размер, можно использовать /23, если ожидается, что вы ограничитесь 30 серверами в подах.
Могу ли я определить частоту обслуживания
Свяжитесь с поддержкой, чтобы запланировать окна обслуживания. Пожалуйста, ожидайте, что обновления будут проводиться не реже одного раза в неделю.
Наблюдаемость
Встроенные инструменты мониторинга
Панель наблюдаемости
ClickHouse Cloud включает в себя продвинутую панель наблюдаемости, которая отображает такие метрики, как использование памяти, скорость запросов и I/O. Доступ к ней можно получить в разделе Мониторинг веб-консоли ClickHouse Cloud.

Расширенная панель
Вы можете настроить панель с использованием метрик из системных таблиц, таких как system.metrics
, system.events
и system.asynchronous_metrics
и других, чтобы подробно отслеживать производительность сервера и использование ресурсов.

Интеграция с Prometheus
ClickHouse Cloud предоставляет конечную точку Prometheus, которую вы можете использовать для сбора метрик для мониторинга. Это позволяет интегрировать с такими инструментами, как Grafana и Datadog для визуализации.
Пример запроса через https конечную точку /metrics_all
Пример ответа
Аутентификация
Для аутентификации можно использовать имя пользователя и пароль ClickHouse. Мы рекомендуем создать выделенного пользователя с минимальными правами для сбора метрик. В минимуме требуется разрешение READ
на таблицу system.custom_metrics
на всех репликах. Например:
Настройка Prometheus
Пример конфигурации показан ниже. Конечная точка targets
такая же, как и та, что используется для доступа к сервису ClickHouse.
Пожалуйста, также смотрите этот блог-пост и документацию по настройке Prometheus для ClickHouse.