Развертывание кластера YDB во внешней инфраструктуре
СУБД YDB распространяется с открытым исходным кодом, поэтому вы можете самостоятельно развернуть
В этом руководстве с помощью Ansible
Примечание
О других способах развертывания кластеров YDB во внешней инфраструктуре читайте в разделе Способы развертывания YDB
Чтобы самостоятельно развернуть кластер YDB во внешней инфраструктуре с помощью Ansible:
- Подготовьте инфраструктуру для развертывания кластера.
- Подготовьте управляющую машину.
- Разверните кластер.
- Проверьте работу кластера.
- Перенесите данные из резервной копии.
- Управляйте кластером.
Если развертывание с помощью Ansible вам не подходит, рассмотрите другие способы развертывания кластера YDB во внешней инфраструктуре.
Подготовьте инфраструктуру для развертывания кластера
Выберите площадку для размещения серверов кластера
Вы можете развернуть кластер YDB на физических серверах или виртуальных машинах. СУБД YDB работает с данными без использования файловой системы сервера и обращается к дискам напрямую как к блочным устройствам, поэтому рекомендуем использовать в кластерах физические (локальные) диски SSD
Если вы развертываете кластер на виртуальных машинах, не используйте сетевые диски, поскольку они снижают производительность СУБД. При развертывании кластера на виртуальных машинах не допускайте переподписки по vCPU и RAM: убедитесь, что под каждую виртуальную машину выделено необходимое количество ядер и памяти, которые гипервизор не будет перераспределять в пользу других ВМ на хосте.
Для промышленной эксплуатации и тестирования производительности рекомендуется использовать диски размером не менее 800 ГБ без применения любых технологий виртуализации системы хранения данных. Развертывать кластер YDB на виртуальных машинах с сетевыми дисками можно только для знакомства с СУБД и функциональных проверок.
В качестве площадки для размещения кластера вы можете использовать выделенные серверы в сервисе Yandex BareMetal. В отношении серверов BareMetal действуют квоты, которые вы можете запросить
Выберите конфигурацию кластера
При развертывании кластера YDB вам потребуется выбрать режим работы
После создания кластера изменить режим его работы нельзя. При этом позднее за счет новых серверов вы сможете расширить кластер, не останавливая его работу и не прерывая доступ к данным.
Минимальная отказоустойчивая конфигурация кластера развертывается на трех серверах и использует режим mirror-3-dc. Для развертывания такой конфигурации потребуются три сервера, каждый с четырьмя дисками: один диск под систему, три — под данные. Кластер YDB хранит копию данных на каждом из трех серверов и продолжает работу при отказе одного из них.
Важно
Чтобы полный отказ дата-центра не привел к недоступности данных в кластере, разместите серверы в трех разных дата-центрах.
Готовый пример Ansible-плейбука (англ. playbook) для развертывания кластера в режиме mirror-3-dc доступен в репозитории
Репозиторий также содержит примеры плейбуков для конфигураций с повышенными требованиями к отказоустойчивости:
- кластер в режиме
mirror-3-dcна девяти серверах в трех дата-центрах продолжает работу при отказе дата-центра и еще одной стойки; - кластер в режиме
block-4-2на восьми серверах в одном дата-центре продолжает работу при отказе двух стоек.
Подробнее о режимах работы кластеров и требованиях к оборудованию читайте в разделе Топология кластера YDB
Подготовьте серверы
Кластер YDB состоит из узлов храненияstatic), а узлы базы данных — динамическими (dynamic). В рассматриваемом примере на каждом сервере кластера работают один узел хранения и два узла базы данных.
Перед установкой убедитесь, что ваши серверы соответствуют системным требованиям
-
Архитектура процессора:
x86-64с поддержкой инструкцийAVX2.Архитектура
ARMдля серверных развертываний YDB не поддерживается. -
Количество vCPU на один сервер для выбранного примера: 24.
Узел хранения и два узла базы данных используют по 8 vCPU каждый. Это требование относится к конфигурации из выбранного примера. Вы можете уменьшить количество vCPU, изменив параметры установки и количество узлов базы данных.
-
Минимальный объем RAM на один сервер: 16 ГБ.
Для защиты от аппаратных сбоев лучше использовать память с коррекцией ошибок (ECC).
-
Диски:
- Один системный диск.
- Как минимум три диска для данных: объем каждого не менее 80 ГБ (для промышленной эксплуатации — не менее 800 ГБ).
YDB использует диски под данные целиком: при установке плейбук размечает и очищает их, поэтому на этих дисках не должно быть нужных данных, разделов и файловых систем.
-
Операционная система: Linux с ядром версии
4.19или выше и библиотекойlibcверсии2.30или выше. Например: Ubuntu 20.04 или Debian 11.Наилучшую производительность обеспечивают ОС с ядром версии 6.6 и выше — в них улучшены подсистемы ввода-вывода, планировщика и управления памятью.
-
Программное обеспечение: на каждом сервере установлен Python версии 3.8 или выше, доступный по пути
/usr/bin/python3. -
Права доступа: пользователь, от имени которого Ansible подключается к серверам, может выполнять команды через
sudoбез ввода пароля. -
Сеть:
-
Серверы должны быть связаны между собой по сети. Управляющая машина должна подключаться к каждому из них по SSH (открыт TCP-порт
22). -
FQDN серверов должны разрешаться в IP-адреса на управляющей машине, на всех серверах кластера и на машине с YDB CLI.
-
На серверах должен быть открыт доступ в интернет: плейбук устанавливает системные пакеты из репозиториев дистрибутива.
-
NTP-серверы, указанные в параметре
system_ntp_servers, должны быть доступны из сети кластера. По этим NTP-серверам плейбук настраивает синхронизацию часов. -
Сетевая конфигурация должна разрешать TCP-соединения по следующим портам:
2135–2138— gRPC для клиент-кластерного взаимодействия;19001–19004— Interconnect для внутрикластерного взаимодействия узлов;8765–8768— HTTP-интерфейс YDB UI.
В параметре
ydb_dynnodes(значение поляoffset) вы можете изменить номера портов, которые используются узлами базы данных (при нулевом значенииoffsetиспользуются, соответственно, порты2136,19002и8766).В примере из репозитория значения
offsetравны1и2, поэтому узлы базы данных используют, соответственно, TCP-порты2137и2138,19003и19004,8767и8768. Приложениям и YDB CLI нужен доступ к gRPC-портам всех узлов.
-
Подготовьте управляющую машину
Ansible запускается на управляющей машине, с которой должен быть открыт доступ по SSH ко всем серверам кластера. Это может быть ваш рабочий компьютер или отдельный сервер. На управляющей машине должен быть установлен Python (версии от 3.10 до 3.14) и пакет для работы с виртуальными окружениями venv.
В руководстве используются YDB версии 24.4.4.12, ansible-core версии 2.16.14, репозиторий ydb-ansible-examples в ревизии 4e7cca2fa2ebb5a9e3c6bae186d2eed504d7277b и коллекция ydb-ansible в ревизии 732eddb6d4aa99bdb4b2ca1658ba97c91e07aecd. При использовании других версий порядок действий и результат могут отличаться.
Чтобы подготовить управляющую машину:
-
Создайте и активируйте новое виртуальное окружение Python:
python3 -m venv venv-ansible source venv-ansible/bin/activate -
Клонируйте репозиторий с примерами YDB:
git clone https://github.com/ydb-platform/ydb-ansible-examples.git cd ydb-ansible-examples git checkout 4e7cca2fa2ebb5a9e3c6bae186d2eed504d7277b -
Установите зависимости, необходимые для развертывания примера:
pip3 install -r requirements.txt ansible-galaxy collection install git+https://github.com/ydb-platform/ydb-ansible.git,732eddb6d4aa99bdb4b2ca1658ba97c91e07aecdИз файла
requirements.txtкоманда pip3 устанавливаетansible-coreверсии2.16.14, а команда ansible-galaxy устанавливает коллекцию плейбуковydb_platform.ydbиз репозиторияydb-ansibleв указанной ревизии.
Подробнее о подготовке управляющей машины читайте в разделе Подготовка к развертыванию
Задайте настройки конфигурации кластера
Задайте настройки вашего будущего кластера. Файлы конфигурации расположены в директории с примером развертывания кластера в минимальной конфигурации (3-nodes-mirror-3-dc). Далее в инструкциях пути к файлам будут указываться относительно этой директории.
Настройки подключения по SSH
Конфигурация Ansible сохранена в файле ansible.cfg. В примере из репозитория проверка подлинности SSH-хостов отключена с помощью параметра host_key_checking = False, а в параметре ssh_args указаны аргументы UserKnownHostsFile=/dev/null и StrictHostKeyChecking=no. Такая конфигурация повышает удобство автоматизации, но снижает уровень безопасности SSH-соединения. Используйте ее только для тестовых и временных установок.
При промышленной эксплуатации YDB рекомендуется включить проверку подлинности SSH-хостов и настроить доверенные ключи вручную. Для этого:
-
Перейдите в директорию с нужным примером:
cd 3-nodes-mirror-3-dc -
В любом текстовом редакторе откройте основной файл конфигурации Ansible
ansible.cfg. -
Замените значение параметра
host_key_checkingнаTrue. -
В параметре
ssh_argsудалите аргументыUserKnownHostsFile=/dev/nullиStrictHostKeyChecking=no, затем сохраните изменения. -
Получите открытые ключи серверов кластера и выведите их отпечатки:
ssh-keyscan -H <fqdn_сервера_1> <fqdn_сервера_2> <fqdn_сервера_3> > ydb_known_hosts ssh-keygen -lf ydb_known_hosts -
Сверьте полученные отпечатки по доверенному каналу.
-
Если отпечатки совпадают, добавьте проверенные ключи в файл
~/.ssh/known_hostsна управляющей машине:cat ydb_known_hosts >> ~/.ssh/known_hosts
Подробнее о файле конфигурации Ansible читайте в документации к Ansible
Параметры установки
Задайте параметры установки:
-
Убедитесь, что в терминале управляющей машины у вас открыта директория
3-nodes-mirror-3-dcрепозитория с примерами. -
В любом текстовом редакторе откройте основной файл инвентаризации
inventory/50-inventory.yamlи внесите в него следующие изменения:-
В секциях
hostsиydb_brokersзамените именаstatic-node-1.ydb-cluster.com,static-node-2.ydb-cluster.comиstatic-node-3.ydb-cluster.comна полные доменные имена (FQDN) ваших серверов. -
В поле
ansible_userзадайте имя пользователя, от имени которого Ansible будет подключаться по SSH к серверам кластера. -
В поле
ansible_ssh_private_key_fileукажите локальный путь к SSH-ключу, с которым Ansible будет подключаться к серверам кластера. -
В разделе
ydb_disksперечислите имена дисков для данных YDB, которые установлены на ваших серверах.Пример предполагает, что система установлена на диск
/dev/vda(не указан в файле конфигурации), а диски/dev/vdb,/dev/vdcи/dev/vddпредназначены для данных YDB.Совет
Чтобы узнать имена дисков на ваших серверах, используйте команду
lsblk. -
В поле
ydb_versionукажите версию YDB из списка на странице загрузок .Если вы предварительно скачали дистрибутив, удалите поле
ydb_version, раскомментируйте полеydb_archiveи укажите в нем локальный путь к архиву. Не указывайте путь к архиву в полеydb_version. -
В поле
ydb_tls_dirуказан путь к директории с TLS-сертификатами. Добавьте ваши сертификаты в эту директорию. Подробнее о добавлении сертификатов читайте в разделе Подготовка ключей и сертификатов TLS .Если у вас нет своих TLS-сертификатов, удалите строку
ydb_tls_dir. В этом случае плейбук сгенерирует для всех серверов самоподписанные сертификаты и сохранит их на управляющей машине в каталогеfiles/TLS. Сертификаты для имен серверов кластера также выпускает скрипт, который расположен в директорииTLSрепозитория с примерами. -
В полях
ydb_cores_staticиydb_cores_dynamicзадайте количество vCPU, резервируемых на каждом сервере соответственно под узел хранения и узлы базы данных .В примере для обоих полей задано значение
8, при этом в разделеydb_dynnodesуказаны два узла базы данных на один сервер. Поэтому для этой конфигурации на сервере должно быть суммарно 24 vCPU (8 под узел хранения и 16 под узлы базы данных).Если на ваших серверах меньше vCPU, уменьшите значения полей
ydb_cores_staticиydb_cores_dynamicили оставьте в разделеydb_dynnodesтолько один узел базы данных. -
В поле
ydb_database_groupsзадайте начальное число групп хранения в базе данных. Для тестирования на дисках небольшого объема рекомендуется значение1.Для дисков объемом более 800 ГБ в режиме
mirror-3-dcрекомендуется указать 84% от общего количества дисков с округлением вниз. -
В полях
system_timezoneиsystem_ntp_serversзадайте значения, которые соответствуют расположению вашей инфраструктуры. При развертывании кластера в on-premise инфраструктуре настоятельно рекомендуем использовать локальный NTP-сервер. Подробнее читайте в разделе Развертывание кластера с использованием конфигурации V1 . -
В поле
ydb_domainоставьте значениеRoot, которое используется в файлеfiles/config.yaml. В полеydb_dbnameзадайте имя базы данных. В примере путь к базе данных задан как/Root/database.
-
Подробнее о настройках в файле конфигурации 50-inventory.yaml читайте в разделе Развертывание кластера с использованием конфигурации V1
Конфигурация YDB
-
Убедитесь, что в терминале управляющей машины у вас открыта директория
3-nodes-mirror-3-dcрепозитория с примерами. -
В любом текстовом редакторе откройте конфигурационный файл YDB
files/config.yamlи внесите в него следующие изменения:В секциях
hostsиblob_storage_configзамените имена хостов на FQDN серверов, которые вы будете использовать для создания кластера.В режиме
mirror-3-dcна трех узлах каждый сервер рассматривается как отдельный дата-центр, поэтому значения поляdata_centerу трех хостов в конфигурации должны различаться.Пути вида
/dev/disk/by-partlabel/ydb_disk_1оставьте без изменений, потому что плейбук создает на дисках разделы с метками, которые указаны в секцииydb_disksфайла инвентаризацииinventory/50-inventory.yaml. Остальные настройки в файлеfiles/config.yamlтакже оставьте без изменений.
Подробнее о настройках в файле конфигурации config.yaml читайте в разделе Развертывание кластера с использованием конфигурации V1
Пароль пользователя root
Пароль пользователя root в YDB хранится в файле inventory/99-inventory-vault.yaml, который зашифрован с помощью Ansible Vault
Чтобы установить пароль пользователя root:
-
Убедитесь, что в терминале управляющей машины у вас открыта директория
3-nodes-mirror-3-dcрепозитория с примерами. -
Пароль для шифрования хранится в файле
ansible_vault_password_file. Откройте этот файл в любом текстовом редакторе.В примере в этом файле указано слово
password— замените его своим паролем. -
Создайте файл с паролем пользователя
rootи зашифруйте его:cat > inventory/99-inventory-vault.yaml <<'EOF' all: children: ydb: vars: ydb_password: '<пароль_пользователя_root>' EOF ansible-vault encrypt inventory/99-inventory-vault.yamlКавычки необходимы, чтобы YAML обрабатывал пароль как строку. Если пароль содержит одинарную кавычку, продублируйте ее, например
pa''ssword.
В результате пользователь root получит полный доступ к кластеру. Позднее вы сможете ограничить этот доступ.
Подробнее о работе Ansible Vault читайте в документации к Ansible
Разверните кластер
После того как вы подготовили все конфигурационные файлы, запустите установку кластера:
-
Убедитесь, что в терминале управляющей машины у вас открыта директория
3-nodes-mirror-3-dcрепозитория с примерами. -
Выполните команду:
ansible-playbook ydb_platform.ydb.initial_setupВскоре после начала процесса потребуется подтвердить полную очистку настроенных дисков (указаны в разделе
ydb_disksфайла инвентаризацииinventory/50-inventory.yaml). Перед подтверждением еще раз убедитесь, что в списке нет системного диска или дисков с нужными данными.
Процесс развертывания кластера может занять десятки минут в зависимости от окружения и настроек.
Последним шагом плейбук выполняет тестовые запросы к временным таблицам. При успешной установке тестовые запросы возвращают значения count 3 и sum 6, и итоговая сводка PLAY RECAP показывает failed=0 для каждого из серверов:
TASK [ydb_platform.ydb.ydbd_dynamic : run test queries] ****************
ok: [static-node-1.ydb-cluster.com] => (item={'instance': 'a'}) => {... "msg": "all test queries were successful, details: {\"count\":3,\"sum\":6}\n"}
...
PLAY RECAP *************************************************************
static-node-1.ydb-cluster.com : ok=167 changed=80 unreachable=0 failed=0 skipped=167 rescued=0 ignored=0
static-node-2.ydb-cluster.com : ok=136 changed=69 unreachable=0 failed=0 skipped=113 rescued=0 ignored=0
static-node-3.ydb-cluster.com : ok=136 changed=69 unreachable=0 failed=0 skipped=113 rescued=0 ignored=0
После установки в кластере появится домен Root, база данных с именем из поля ydb_dbname и пользователь root.
Подробнее о развертывании кластера YDB читайте в разделе Развертывание кластера с использованием конфигурации V1
Проверьте работу кластера
Проверка в YDB UI
Самый простой способ проверить работу только что развернутого кластера — использовать YDB UI8765 каждого сервера.
Если из браузера есть прямой доступ к этому порту, YDB UI доступен по адресу http://<fqdn_сервера>:8765.
Если прямого доступа нет, настройте SSH-туннелирование. Для этого на локальной машине выполните команду:
ssh -L 8765:localhost:8765 -i <закрытый_ключ> <имя_пользователя>@<FQDN_сервера_кластера>
После успешного установления соединения YDB UI сервера будет доступен в браузере по адресу http://localhost:8765.
Чтобы проверить работоспособность кластера:
-
В браузере откройте страницу состояния кластера:
- при прямом доступе:
http://<fqdn_сервера>:8765/monitoring/cluster/tenants - при подключении через SSH-туннель:
http://localhost:8765/monitoring/cluster/tenants
Убедитесь, что все параметры кластера отображаются зеленым цветом.
- при прямом доступе:
-
В браузере откройте страницу состояния группы хранения:
- при прямом доступе:
http://<fqdn_сервера>:8765/monitoring/cluster/storage - при подключении через SSH-туннель:
http://localhost:8765/monitoring/cluster/storage
Убедитесь, что все индикаторы
VDisksотображаются зеленым цветом, а при наведении курсора на каждый из индикаторов для него всплывает статусOk. - при прямом доступе:
Тестирование с помощью YDB CLI
Протестировать работоспособность кластера можно с помощью встроенных нагрузочных тестов в YDB CLI. Для этого:
-
Установите
YDB CLI. -
Убедитесь, что в терминале управляющей машины у вас открыта директория
3-nodes-mirror-3-dcрепозитория с примерами на управляющей машине. -
Создайте профиль подключения YDB CLI:
ydb \ config profile create <имя_профиля> \ -d /<домен>/<имя_базы> \ -e grpcs://<FQDN_сервера>:2135 \ --ca-file $(pwd)/files/TLS/certs/ca.crt \ --user root \ --password-file <путь_к_файлу_с_паролем>Где:
<имя_профиля>— имя создаваемого профиля подключения.-d— путь к базе данных, где<домен>— значение поляydb_domain, а<имя_базы>— значение поляydb_dbnameв файлеinventory/50-inventory.yaml, который вы настроили ранее. Путь к базе данных в примере —/Root/database.-e— конечная точка (эндпоинт) хоста сервера, строка в форматеprotocol://host:port. Допускается указать FQDN любого сервера в кластере без указания порта. По умолчанию используется порт2135.--ca-file— путь к корневому TLS-сертификату для подключений к базе данных поgrpcs. Путь к файлуca.crtв приведенном примере указывает на сертификаты, которые сгенерировал плейбук. Если вы использовали собственные сертификаты, укажите путь к вашему файлуca.crt.--password-file— путь к файлу с паролем. Удалите этот параметр, чтобы ввести пароль вручную.
-
Выполните тестовый YQL
-запрос:ydb -p <имя_профиля> sql -s 'SELECT 1;'Команда выведет в терминал результат запроса
SELECT 1в табличной форме. -
Создайте тестовую таблицу
kv_test:ydb -p <имя_профиля> workload kv init --init-upserts 1000 --cols 4Команда создаст тестовую таблицу
kv_testиз четырех столбцов и 1 000 строк. -
Убедитесь, что таблица
kv_testсоздалась и была заполнена тестовыми данными:ydb -p <имя_профиля> sql -s 'select * from kv_test limit 10;'Команда выведет в терминал таблицу из первых десяти строк.
-
Выполните нагрузочный тест
upsertс выводом времени выполнения:ydb -p <имя_профиля> workload kv run upsert --print-timestampВ результате команда выведет таблицу с количеством транзакций в секунду, повторов и ошибок, а также процентили задержек запросов:
Window Txs/Sec Retries Errors p50(ms) p95(ms) p99(ms) pMax(ms) Timestamp 1 727 0 0 11 27 71 116 2024-02-14T12:56:39Z 2 882 0 0 10 21 29 38 2024-02-14T12:56:40Z 3 848 0 0 10 22 30 105 2024-02-14T12:56:41Z 4 901 0 0 9 20 27 42 2024-02-14T12:56:42Z 5 879 0 0 10 22 31 59 2024-02-14T12:56:43Z ... -
Удалите таблицу
kv_test:ydb -p <имя_профиля> workload kv clean
Подробнее о параметрах создания тестовой таблицы и тестах читайте в разделе Key-Value нагрузка
Перенесите данные из резервной копии
Если ранее вы выгружали данные из облачного кластера Yandex Managed Service for YDB в бакет Yandex Object Storage с помощью командыydb export s3 или сохраняли их локальную копию с помощью командыydb tools dump, вы можете загрузить данные из таких резервных копий в новый кластер YDB во внешней инфраструктуре.
Чтобы восстановить данные, которые были сохранены в бакете, используйте команду YDB CLI ydb import s3. Подробнее об использовании этой команды с примерами восстановления читайте в разделе Загрузка из S3-совместимого хранилища
Чтобы восстановить данные из локальной копии, используйте команду YDB CLI ydb tools restore. Подробнее об использовании этой команды с примерами восстановления читайте в разделе Загрузка из файловой системы
Управляйте кластером
Вы можете использовать проект Ansible, который настроили ранее, для дальнейшего обслуживания кластера. Запускайте плейбуки обслуживания кластера из той же директории, из которой вы этот кластер развертывали.
Перезапуск кластера
Чтобы перезапустить кластер, выполните плейбук ydb_platform.ydb.restart. Этот плейбук поочередно перезапустит сначала узлы хранения
Подробнее о перезапуске кластера читайте в разделе Перезапуск кластеров YDB, развернутых с помощью Ansible
Изменение конфигурации YDB
Чтобы изменить конфигурацию кластера, внесите необходимые изменения в файл files/config.yaml и выполните плейбук ydb_platform.ydb.update_config.
Подробнее об изменении конфигурации кластера читайте в разделе Обновление конфигурации кластеров YDB, развернутых с Ansible
Обновление версии YDB
Чтобы обновить версию YDB, внесите изменения в основной файл инвентаризации inventory/50-inventory.yaml и выполните плейбук ydb_platform.ydb.update_executable. Этот плейбук поочередно перезапустит узлы кластера.
Внимание
Прежде чем обновлять версию YDB, изучите правила совместимости
Подробнее об обновлении версии YDB кластера читайте в разделе Обновление версии YDB на кластерах, развернутых с помощью Ansible
Резервное копирование данных
Отказоустойчивость защищает данные в кластере от отказов оборудования. От логических ошибок, например от массового удаления или повреждения данных приложениями или пользователями, может защитить только регулярное резервное копирование данных с хранением резервных копий вне кластера.
Чтобы настроить регулярное резервное копирование данных, используйте команду ydb export s3 (копирование данных в бакет Yandex Object Storage) или команду ydb tools dump (копирование в локальные файлы).
Подробнее о способах резервного копирования читайте в разделе Резервное копирование и восстановление
Если Ansible вам не подходит
Если Ansible по какой-то причине не устраивает вас как инструмент развертывания кластера YDB, вы можете развернуть кластер вручную. В этом случае на каждом сервере кластера вы самостоятельно выполните те шаги, которые выполняет плейбук Ansible:
- Создание системного пользователя
ydbи увеличение лимита открытых файловых дескрипторов. - Скачивание дистрибутива
YDB с открытым исходным кодом и установка исполняемого файлаydbdс библиотеками. - Разметка дисков под данные, подготовка ключей и сертификатов TLS для каждого сервера.
- Подготовка файла конфигурации кластера и запуск узлов хранения.
- Инициализация кластера, создание базы данных и запуск узлов базы данных.
- Настройка учетных записей и проверка работы базы данных.
Подробнее о способах развертывания кластеров YDB во внешней инфраструктуре читайте в разделе Способы развертывания YDB