> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/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, в облачной консоли. Некоторые параметры нужно определить на этом этапе, так как позже изменить их будет нельзя. В частности:

* **Регион, который вы хотите использовать**: вы можете выбрать любой из [общедоступных регионов](/docs/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/Ph2XgLY43sq6v4yO/images/cloud/reference/byoc-subnet-1.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=ca8491785aa957ce48e7826dadbd156d" alt="BYOC VPC Subnet" width="1600" height="827" data-path="images/cloud/reference/byoc-subnet-1.webp" />

<br />

<br />

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

<br />

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

<br />

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

<br />

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

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

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

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

<Steps>
  <Step title="Включите частный балансировщик нагрузки для ClickHouse BYOC" id="step-1-enable-private-load-balancer-for-clickhouse-byoc">
    Обратитесь в службу поддержки ClickHouse, чтобы включить частный балансировщик нагрузки.
  </Step>

  <Step title="Создайте пиринговое соединение" id="step-2-create-a-peering-connection">
    1. Перейдите в панель мониторинга VPC в аккаунте ClickHouse BYOC.
    2. Выберите Peering Connections.
    3. Нажмите Create Peering Connection.
    4. Укажите идентификатор VPC ClickHouse в качестве VPC Requester.
    5. Укажите идентификатор целевой VPC в качестве VPC Accepter. (При необходимости выберите другой аккаунт)
    6. Нажмите Create Peering Connection.

    <br />

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

    <br />
  </Step>

  <Step title="Примите запрос на пиринговое соединение" id="step-3-accept-the-peering-connection-request">
    Перейдите в аккаунт пиринга; на странице (VPC -> Peering connections -> Actions -> Accept request) клиент может одобрить этот запрос на пиринг VPC.

    <br />

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

    <br />
  </Step>

  <Step title="Добавьте пункт назначения в таблицы маршрутизации ClickHouse VPC" id="step-4-add-destination-to-clickhouse-vpc-route-tables">
    В аккаунте 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/Ph2XgLY43sq6v4yO/images/cloud/reference/byoc-vpcpeering-3.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=9cd903156acba8b4ad3eb95aafda2232" alt="BYOC Добавление таблицы маршрутизации" width="1600" height="112" data-path="images/cloud/reference/byoc-vpcpeering-3.webp" />

    <br />
  </Step>

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

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

    <br />

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

    <br />
  </Step>

  <Step title="Измените группу безопасности, чтобы разрешить доступ из VPC, подключённой через пиринг" id="step-6-edit-security-group-to-allow-peered-vpc-access">
    В аккаунте 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.
  </Step>
</Steps>

<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-фильтр](/docs/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.
