> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Онбординг BYOC для AWS

> Разверните ClickHouse в собственной облачной инфраструктуре

<div id="onboarding-process">
  ## Процесс онбординга
</div>

Клиенты могут начать процесс онбординга, связавшись с [нами](https://clickhouse.com/cloud/bring-your-own-cloud). Для этого клиентам нужна выделенная учетная запись AWS и информация о регионе, который они будут использовать. В настоящее время запускать сервисы BYOC можно только в тех регионах, которые поддерживаются в ClickHouse Cloud.

<div id="prepare-an-aws-account">
  ### Подготовьте учетную запись AWS
</div>

Для лучшей изоляции рекомендуется подготовить отдельную учетную запись AWS для размещения развертывания ClickHouse BYOC. Однако можно также использовать общую учетную запись и существующий VPC. Подробности см. ниже в разделе *Setup BYOC Infrastructure*.

Имея эту учетную запись и исходный адрес электронной почты администратора организации, вы можете обратиться в службу поддержки ClickHouse.

<div id="initialize-byoc-setup">
  ### Инициализация BYOC
</div>

Первичную настройку BYOC можно выполнить либо с помощью шаблона CloudFormation, либо с помощью модуля Terraform. В обоих случаях создаётся одна и та же роль IAM, которая позволяет контроллерам BYOC из ClickHouse Cloud управлять вашей инфраструктурой. Обратите внимание: ресурсы S3, VPC и вычислительные ресурсы, необходимые для запуска ClickHouse, в эту первоначальную настройку не входят.

<div id="cloudformation-template">
  #### Шаблон CloudFormation
</div>

[Шаблон CloudFormation для BYOC](https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/cf-templates/byoc.yaml)

<div id="terraform-module">
  #### Модуль Terraform
</div>

[Модуль Terraform для BYOC](https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/tf/byoc.tar.gz)

```hcl theme={null}
module "clickhouse_onboarding" {
  source   = "https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/tf/byoc.tar.gz"
  byoc_env = "production"
}
```

<div id="set-up-byoc-infrastructure">
  ### Настройка инфраструктуры BYOC
</div>

После создания стека CloudFormation вам будет предложено настроить инфраструктуру, включая S3, VPC и кластер EKS, в облачной консоли. Некоторые параметры нужно определить на этом этапе, так как позже изменить их будет нельзя. В частности:

* **Регион, который вы хотите использовать**: вы можете выбрать любой из [общедоступных регионов](/ru/products/cloud/reference/supported-regions), доступных для ClickHouse Cloud.
* **Диапазон VPC CIDR для BYOC**: по умолчанию для диапазона VPC CIDR BYOC используется `10.0.0.0/16`. Если вы планируете использовать пиринг VPC с другой учетной записью, убедитесь, что диапазоны CIDR не пересекаются. Выделите для BYOC подходящий диапазон CIDR с минимальным размером `/22`, чтобы разместить необходимые рабочие нагрузки.
* **Зоны доступности для BYOC VPC**: если вы планируете использовать пиринг VPC, согласование зон доступности между исходной и BYOC-учетными записями поможет снизить затраты на межзонный трафик. В AWS суффиксы зон доступности (`a, b, c`) могут соответствовать разным идентификаторам физических зон в разных учетных записях. Подробности см. в [руководстве AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/use-consistent-availability-zones-in-vpcs-across-different-aws-accounts.html).

<div id="customer-managed-vpc">
  #### VPC под управлением клиента
</div>

По умолчанию ClickHouse Cloud создаёт выделенную VPC для лучшей изоляции в вашем BYOC-развертывании. Однако вы также можете использовать существующую VPC в своей учетной записи. Для этого требуется специальная конфигурация, и такие изменения необходимо согласовать с поддержкой ClickHouse.

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

1. Выделите как минимум 3 приватные подсети в 3 разных зонах доступности для использования ClickHouse Cloud.
2. Убедитесь, что каждая подсеть имеет как минимум диапазон CIDR `/23` (например, 10.0.0.0/23), чтобы обеспечить достаточное количество IP-адресов для развертывания ClickHouse.
3. Добавьте тег `kubernetes.io/role/internal-elb=1` в каждую подсеть, чтобы обеспечить корректную настройку балансировщика нагрузки.

<br />

<img src="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/Rni6DhA8claMk_Qk/images/cloud/reference/byoc-subnet-1.png?fit=max&auto=format&n=Rni6DhA8claMk_Qk&q=85&s=7f34ad07845d5c22fe8cd4b18367febe" alt="BYOC VPC Subnet" width="1600" height="827" data-path="images/cloud/reference/byoc-subnet-1.png" />

<br />

<br />

<img src="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/Rni6DhA8claMk_Qk/images/cloud/reference/byoc-subnet-2.png?fit=max&auto=format&n=Rni6DhA8claMk_Qk&q=85&s=44a13f25fc59f15e49e883c02fd62fb8" alt="BYOC VPC Subnet Tags" width="1600" height="406" data-path="images/cloud/reference/byoc-subnet-2.png" />

<br />

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

<br />

<img src="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/Rni6DhA8claMk_Qk/images/cloud/reference/byoc-s3-endpoint.png?fit=max&auto=format&n=Rni6DhA8claMk_Qk&q=85&s=6383d429ad75112b1f31a6d36c26c329" alt="BYOC S3 Endpint" width="1711" height="1559" data-path="images/cloud/reference/byoc-s3-endpoint.png" />

<br />

**Свяжитесь с поддержкой ClickHouse**
Создайте тикет в поддержку, указав следующую информацию:

* Идентификатор вашей учетной записи AWS
* Регион AWS, в котором вы хотите развернуть сервис
* Идентификатор вашей VPC
* Идентификаторы приватных подсетей, которые вы выделили для ClickHouse
* Зоны доступности, в которых находятся эти подсети

<div id="optional-setup-vpc-peering">
  ### Дополнительно: настройка пиринга VPC
</div>

Чтобы создать или удалить пиринг VPC для ClickHouse BYOC, выполните следующие шаги:

<div id="step-1-enable-private-load-balancer-for-clickhouse-byoc">
  #### Шаг 1: Включите частный балансировщик нагрузки для ClickHouse BYOC
</div>

Свяжитесь со службой поддержки ClickHouse, чтобы включить частный балансировщик нагрузки.

<div id="step-2-create-a-peering-connection">
  #### Шаг 2. Создайте пиринговое соединение
</div>

1. Перейдите на панель мониторинга VPC в аккаунте ClickHouse BYOC.
2. Выберите Peering Connections.
3. Нажмите Create Peering Connection.
4. В поле VPC Requester укажите ClickHouse VPC ID.
5. В поле VPC Accepter укажите идентификатор целевой VPC. (При необходимости выберите другую учётную запись)
6. Нажмите Create Peering Connection.

<br />

<img src="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/Rni6DhA8claMk_Qk/images/cloud/reference/byoc-vpcpeering-1.png?fit=max&auto=format&n=Rni6DhA8claMk_Qk&q=85&s=8e1cf52b3ef87169b31a88f2aece4de5" alt="BYOC Создание пирингового соединения" width="1600" height="1042" data-path="images/cloud/reference/byoc-vpcpeering-1.png" />

<br />

<div id="step-3-accept-the-peering-connection-request">
  #### Шаг 3. Примите запрос на пиринговое соединение
</div>

Перейдите в аккаунт для peering и на странице (VPC -> Peering connections -> Actions -> Accept request) одобрите этот запрос на пиринг VPC.

<br />

<img src="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/Rni6DhA8claMk_Qk/images/cloud/reference/byoc-vpcpeering-2.png?fit=max&auto=format&n=Rni6DhA8claMk_Qk&q=85&s=e5de562b709e70e0ae763da965173089" alt="BYOC Принятие пирингового соединения" width="1600" height="81" data-path="images/cloud/reference/byoc-vpcpeering-2.png" />

<br />

<div id="step-4-add-destination-to-clickhouse-vpc-route-tables">
  #### Шаг 4. Добавьте пункт назначения в таблицы маршрутизации VPC ClickHouse
</div>

В аккаунте ClickHouse BYOC:

1. Выберите Route Tables на панели мониторинга VPC.
2. Найдите идентификатор VPC ClickHouse. Измените каждую таблицу маршрутизации, связанную с приватными подсетями.
3. Нажмите кнопку Edit на вкладке Routes.
4. Нажмите Add another route.
5. Введите диапазон CIDR целевой VPC в поле Destination.
6. Выберите “Peering Connection” и идентификатор пирингового соединения в поле Target.

<br />

<img src="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/Rni6DhA8claMk_Qk/images/cloud/reference/byoc-vpcpeering-3.png?fit=max&auto=format&n=Rni6DhA8claMk_Qk&q=85&s=ff72df9b59b3c44b612dcc7b2019035b" alt="BYOC Добавление таблицы маршрутизации" width="1600" height="112" data-path="images/cloud/reference/byoc-vpcpeering-3.png" />

<br />

<div id="step-5-add-destination-to-the-target-vpc-route-tables">
  #### Шаг 5. Добавьте пункт назначения в таблицы маршрутизации целевой VPC
</div>

В AWS-аккаунте, где настроен peering,

1. Выберите Route Tables на панели панель мониторинга VPC.
2. Найдите целевой VPC ID.
3. Нажмите кнопку Edit на вкладке Routes.
4. Нажмите Add another route.
5. Введите диапазон CIDR VPC ClickHouse в поле Destination.
6. Выберите “Peering Connection” и ID пирингового соединения в поле Target.

<br />

<img src="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/Rni6DhA8claMk_Qk/images/cloud/reference/byoc-vpcpeering-4.png?fit=max&auto=format&n=Rni6DhA8claMk_Qk&q=85&s=e993530393ac47154cc2bda0f3390a76" alt="BYOC: добавление маршрута в таблицу маршрутизации" width="1600" height="105" data-path="images/cloud/reference/byoc-vpcpeering-4.png" />

<br />

<div id="step-6-edit-security-group-to-allow-peered-vpc-access">
  #### Шаг 6: Измените группу безопасности, чтобы разрешить доступ из VPC, подключённой через пиринг
</div>

В аккаунте ClickHouse BYOC необходимо обновить настройки Security Group, чтобы разрешить трафик из вашей VPC, подключённой через пиринг. Обратитесь в службу поддержки ClickHouse, чтобы запросить добавление входящих правил, включающих CIDR-диапазоны вашей VPC, подключённой через пиринг.

***

Теперь сервис ClickHouse должен быть доступен из VPC, подключённой через пиринг.

Для частного доступа к ClickHouse выделяются частный балансировщик нагрузки и конечная точка, обеспечивающие безопасное подключение из VPC пользователя, подключённой через пиринг. Частная конечная точка соответствует формату публичной конечной точки с суффиксом `-private`. Например:

* **Публичная конечная точка**: `h5ju65kv87.mhp0y4dmph.us-west-2.aws.byoc.clickhouse.cloud`
* **Частная конечная точка**: `h5ju65kv87-private.mhp0y4dmph.us-west-2.aws.byoc.clickhouse.cloud`

При необходимости, после того как вы убедитесь, что пиринг работает, можно запросить удаление публичного балансировщика нагрузки для ClickHouse BYOC.

<div id="upgrade-process">
  ## Процесс обновления
</div>

Мы регулярно обновляем программное обеспечение, включая версии базы данных ClickHouse, ClickHouse Operator, EKS и других компонентов.

Хотя мы стремимся выполнять обновления без простоев (например, поэтапные обновления и перезапуски), некоторые из них, такие как смена версии ClickHouse и обновления узлов EKS, могут повлиять на работу сервиса. Клиенты могут задать окно обслуживания (например, каждый вторник в 1:00 ночи по PDT), чтобы такие обновления выполнялись только в это запланированное время.

<Note>
  Окна обслуживания не распространяются на исправления, связанные с безопасностью и уязвимостями. Такие обновления выполняются вне планового цикла, при этом мы заранее связываемся с клиентами, чтобы согласовать подходящее время и свести к минимуму влияние на работу сервиса.
</Note>

<div id="cloudformation-iam-roles">
  ## Роли IAM для CloudFormation
</div>

<div id="bootstrap-iam-role">
  ### Bootstrap роль IAM
</div>

Bootstrap роль IAM имеет следующие разрешения:

* **Операции с EC2 и VPC**: Требуются для настройки VPC и кластеров EKS.
* **Операции с S3 (например, `s3:CreateBucket`)**: Нужны для создания бакетов для хранилища BYOC в ClickHouse.
* **Разрешения `route53:*`**: Требуются внешнему DNS для настройки записей в Route 53.
* **Операции IAM (например, `iam:CreatePolicy`)**: Нужны контроллерам для создания дополнительных ролей (подробности см. в следующем разделе).
* **Операции EKS**: Ограничены ресурсами, имена которых начинаются с префикса `clickhouse-cloud`.

<div id="additional-iam-roles-created-by-the-controller">
  ### Дополнительные роли IAM, создаваемые контроллером
</div>

Помимо `ClickHouseManagementRole`, создаваемой через CloudFormation, контроллер создаст несколько дополнительных ролей.

Эти роли берут на себя приложения, работающие в EKS-кластере клиента:

* **Роль экспортера состояния**
  * Компонент ClickHouse, который передаёт в ClickHouse Cloud информацию о состоянии сервиса.
  * Требует разрешения на запись в очередь SQS, принадлежащую ClickHouse Cloud.
* **Контроллер балансировщика нагрузки**
  * Стандартный контроллер AWS для балансировщика нагрузки.
  * Контроллер EBS CSI для управления томами сервисов ClickHouse.
* **External-DNS**
  * Публикует конфигурацию DNS в Route 53.
* **Cert-Manager**
  * Выпускает TLS-сертификаты для доменов сервиса BYOC.
* **Cluster Autoscaler**
  * При необходимости изменяет размер группы узлов.

Роли **K8s-control-plane** и **k8s-worker** предназначены для сервисов AWS EKS.

Наконец, **`data-plane-mgmt`** позволяет компоненту Control Plane в ClickHouse Cloud синхронизировать необходимые пользовательские ресурсы, такие как `ClickHouseCluster` и Istio Virtual Service/Gateway.

<div id="network-boundaries">
  ## Сетевые границы
</div>

В этом разделе рассматриваются различные типы сетевого трафика в клиентский BYOC VPC и из него:

* **Входящий**: трафик, поступающий в клиентский BYOC VPC.
* **Исходящий**: трафик, исходящий из клиентского BYOC VPC и направляемый во внешний пункт назначения.
* **Публичный**: сетевая конечная точка, доступная из общедоступного интернета.
* **Приватный**: сетевая конечная точка, доступная только через приватные соединения, такие как пиринг VPC, VPC Private Link или Tailscale.

**Входной шлюз Istio развёрнут за AWS NLB для приёма клиентского трафика ClickHouse.**

*Входящий, публичный (может быть приватным)*

Шлюз входного трафика Istio выполняет терминацию TLS. Сертификат, выпущенный CertManager с использованием Let's Encrypt, хранится как секрет в кластере EKS. Трафик между Istio и ClickHouse [шифруется средствами AWS](https://docs.aws.amazon.com/whitepapers/latest/logical-separation/encrypting-data-at-rest-and--in-transit.html#:~:text=All%20network%20traffic%20between%20AWS,supported%20Amazon%20EC2%20instance%20types), поскольку они находятся в одном VPC.

По умолчанию входной шлюз общедоступен с фильтрацией по списку разрешённых IP-адресов. Клиенты могут настроить пиринг VPC, чтобы сделать его приватным и отключить публичный доступ. Мы настоятельно рекомендуем настроить [IP-фильтр](/ru/products/cloud/guides/security/connectivity/setting-ip-filters), чтобы ограничить доступ.

<div id="troubleshooting-access">
  ### Доступ для устранения неполадок
</div>

*Входящий, публичный (может быть приватным)*

Инженерам ClickHouse Cloud требуется доступ для устранения неполадок через Tailscale. Для развертываний BYOC им предоставляется аутентификация по сертификатам по мере необходимости.

<div id="billing-scraper">
  ### Сборщик данных биллинга
</div>

*Исходящий, приватный*

Сборщик данных биллинга собирает данные биллинга из ClickHouse и отправляет их в S3 бакет, принадлежащий ClickHouse Cloud.

Он работает как sidecar-контейнер рядом с контейнером сервера ClickHouse и периодически собирает метрики CPU и памяти. Запросы в пределах одного региона маршрутизируются через сервисные конечные точки шлюза VPC.

<div id="alerts">
  ### Оповещения
</div>

*Исходящий, публичный*

AlertManager настроен на отправку оповещений в ClickHouse Cloud, если кластер ClickHouse клиента работает некорректно.

Метрики и журналы хранятся в BYOC VPC клиента. Сейчас журналы хранятся локально в EBS. В одном из следующих обновлений они будут храниться в LogHouse — сервисе ClickHouse в пределах BYOC VPC. Для метрик используется стек Prometheus и Thanos, который хранится локально в BYOC VPC.

<div id="service-state">
  ### Состояние сервиса
</div>

*Исходящий трафик*

State Exporter отправляет сведения о состоянии сервиса ClickHouse в очередь SQS, принадлежащую ClickHouse Cloud.
