Перейти к основному содержимому

Облачный сервер с Data Analytics VM

Последнее изменение:

Data Analytics Virtual Machine (DAVM) — преднастроенный облачный сервер с операционной системой и предустановленными инструментами для анализа данных и машинного обучения (ML).

Образ, из которого развертывается сервер, содержит:

После создания DAVM в Jupyter Notebooks будут доступны подробные инструкции по работе с JupyterLab, Prefect, Apache Superset, Keycloak, PyTorch, TensorFlow и примеры кода.

Предустановленные инструменты

  • JupyterLab (версия 3.6.3) — единая среда разработки для работы с Jupyter Notebooks, программным кодом и данными;
  • Prefect (версия 2.10.16) — программное обеспечение для управления задачами по сбору, мониторингу и пакетной обработке данных;
  • Apache Superset (версия 3.0.0) — веб-приложение для визуализации, создания отчетов и дашбордов;
  • PostgreSQL — реляционная СУБД для хранения данных;
  • набор библиотек для машинного обучения: TensorFlow, PyTorch и другие. Можно посмотреть в таблице Версии библиотек⁠.

Решаемые задачи

  • разработка и обучение ML-моделей;
  • построение процессов обработки данных (ETL/ELT);
  • визуализация данных (BI).

Минимальные требования к ресурсам

Количество vCPU2
RAM8 ГБ
Загрузочный диск100 ГБ
Наличие GPUОбязательно

Создать облачный сервер c Data Analytics VM

  1. В панели управления в верхнем меню нажмите Продукты и выберите Облачные серверы.

  2. Нажмите Создать сервер.

  3. Заполните блоки:

  4. Проверьте цену облачного сервера.

  5. Нажмите Создать.

Имя и расположение

  1. Введите имя сервера. Оно будет установлено как имя хоста в операционной системе.

  2. Выберите локацию, в которой будет создан сервер. От локации зависит список доступных конфигураций сервера и стоимость ресурсов. После создания сервера изменить локацию нельзя.

Источник

  1. Откройте вкладку Приложения.

  2. Выберите Data Analytics VM.

  3. Опционально: если вам нужна другая актуальная или архивная версия приложения, в поле Версия выберите нужную версию.

Конфигурация

Выберите конфигурацию от 2 vCPU, RAM от 8 ГБ и размером загрузочного диска от 100 ГБ. Для всех линеек, кроме Shared и Dedicated, доступны два вида конфигураций сервера:

  • фиксированные конфигурации — конфигурации линеек с разными техническими характеристиками, в которых зафиксировано соотношение ресурсов;
  • произвольные конфигурации — конфигурации, в которых можно указать любое соотношение ресурсов.

В конфигурациях используются разные процессоры в зависимости от линейки и сегмента пула. Вы можете настроить выбранную конфигурацию. После создания сервера можно будет изменить конфигурацию.

  1. Откройте вкладку с линейкой.

  2. Нажмите Фиксированная.

  3. Опционально: вы можете настроить конфигурацию, если создаете сервер в сегментах пула ru-3b, ru-7a и ru-7b:

    3.1. Разверните блок с описанием настроек конфигурации.

    3.2. Опционально: выберите производителя процессора. Выбор производителя доступен не во всех пулах.

    3.3. Опционально: если вы хотите, чтобы за vCPU облачного сервера не закреплялись ядра физического процессора, снимите чекбокс Выделенные ядра. Подробнее в инструкции Выделенные ядра.

    3.4. Опционально: если для сервера с выделенными ядрами вы хотите выключить Hyper-Threading, снимите чекбокс Hyper-Threading (SMT).

    3.5. Опционально: если вы создаете сервер с выделенными ядрами и хотите разместить многопроцессорный сервер на одной NUMA-ноде, отметьте чекбокс Обязательное размещение на одной NUMA-ноде. Разместить на одной NUMA-ноде можно сервер с 4 vCPU и больше. Если ресурсы облачного сервера не получится разместить на одной ноде, он не создаcтся. Подробнее в подразделе Размещение на одной NUMA-ноде инструкции Выделенные ядра.

  4. Выберите конфигурацию.

  5. Если в выбранной конфигурации доступны и локальные, и сетевые диски, выберите диск, который будет использоваться в качестве загрузочного:

    • локальный диск — отметьте чекбокс Локальный SSD NVMe диск. Сервер с локальным диском можно создать только из образов и приложений;
    • сетевой диск — не отмечайте чекбокс.

    Объем оперативной памяти, который выделяется серверу, может быть меньше указанного в конфигурации — ядро операционной системы резервирует часть оперативной памяти в зависимости от версии ядра и дистрибутива. Выделенный объем на сервере можно проверить с помощью команды sudo dmesg | grep Memory.

Диски

  1. Если при настройке конфигурации вы не отметили чекбокс Локальный SSD NVMe диск, в качестве загрузочного диска сервера будет использоваться первый указанный сетевой диск. Чтобы настроить его:

    1.1. Выберите тип сетевого загрузочного диска.

    1.2. Укажите размер сетевого загрузочного диска в ГБ или ТБ. Учитывайте лимиты сетевых дисков на максимальный размер.

    1.3. Если вы выбрали тип диска Универсальный v2, укажите общее количество операций чтения и записи в IOPS. После создания диска вы можете изменить количество IOPS — уменьшить или увеличить. Количество изменений IOPS не ограничено.

  2. Опционально: добавьте дополнительный сетевой диск сервера:

    2.1. Нажмите Добавить.

    2.2. Выберите тип сетевого диска.

    2.3. Укажите размер сетевого диска в ГБ или ТБ. Учитывайте лимиты сетевых дисков на максимальный размер.

    2.4. Если вы выбрали тип диска Универсальный v2, укажите общее количество операций чтения и записи в IOPS. После создания диска вы можете изменить количество IOPS — уменьшить или увеличить. Количество изменений IOPS не ограничено.

    После создания сервера можно будет подключить новые дополнительные диски.

Сеть

Сервер может быть добавлен в новую подсеть или в уже существующую. Подсеть может быть:

  • приватная — подсеть без доступа из интернета или с одним статическим публичным IP-адресом. IP-адрес подключается к серверу, который будет доступен из интернета;
  • публичная — подсеть, в которой все адреса доступны из интернета.
  1. Нажмите Приватная подсеть.

  2. В поле Публичный IP-адрес для доступа из интернета выберите тип подсети:

    • Новый публичный IP-адрес — приватная подсеть со статическим публичным IP-адресом. Из интернета будет доступен только сервер, к которому подключен публичный IP-адрес;
    • Без публичного IP-адреса — приватная подсеть без доступа из интернета. К серверу нельзя будет подключиться из интернета, в том числе по SSH или RDP.
  3. Чтобы добавить сервер в существующую приватную подсеть:

    3.1. Разверните блок с настройками приватной подсети.

    3.2. В поле Подсеть выберите существующую подсеть.

    3.3. В поле Приватный IP укажите приватный IP-адрес сервера. Для приватной подсети с публичным IP-адресом публичный адрес будет автоматически подключен к приватному адресу.

  4. Чтобы добавить сервер в новую приватную подсеть существующей сети:

    4.1. Разверните блок с настройками приватной подсети.

    4.2. В поле Подсеть выберите Новая подсеть.

    4.3. Опционально: измените CIDR подсети.

    4.4. Опционально: включите тумблер DHCP.

    4.5. Опционально: в поле Шлюз измените IP-адрес шлюза по умолчанию.

    4.6. В поле Сеть выберите существующую сеть, в которой будет создана подсеть, или Новая сеть. Для приватной подсети с публичным IP-адресом автоматически будет создан роутер router-<network_name>, где <network_name> — имя сети.

    4.7. Если вы выбрали Новая сеть, введите имя сети.

  5. Чтобы добавить сервер в новую сеть и приватную подсеть:

    5.1. Разверните блок с настройками приватной подсети.

    5.2. Опционально: измените CIDR подсети.

    5.3. Опционально: включите тумблер DHCP.

    5.4. Опционально: в поле Шлюз измените IP-адрес шлюза по умолчанию.

    5.5. В поле Сеть выберите Новая сеть, чтобы создать новую сеть и приватную подсеть.

    5.6 Введите имя сети. Для приватной подсети с публичным IP-адресом автоматически будет создан роутер router-<network_name>, где <network_name> — имя сети.

Безопасность

Выберите группы безопасности для фильтрации трафика на портах сервера. Без групп безопасности трафик будет запрещен. Если блок отсутствует, в сети сервера выключена фильтрация трафика (port security). С выключенной фильтрацией трафика весь трафик будет разрешен.

Доступ

  1. Разместите на сервере SSH-ключ для проекта для безопасного подключения:

    1.1. Если SSH-ключ для проекта не добавлен в облачную платформу, нажмите Добавить SSH-ключ, введите имя ключа, вставьте публичный ключ в формате OpenSSH и нажмите Добавить.

    1.2. Если SSH-ключ для проекта добавлен в облачную платформу, в поле SSH-ключ выберите существующий ключ. SSH-ключ доступен только в том пуле, в котором он размещен.

  2. Опционально: в поле Пароль для «root»:

    2.1. Скопируйте пароль пользователя root — пользователя с неограниченными правами на все действия над системой.

    2.2. Сохраните пароль в безопасном месте и не передавайте в открытом виде.

Дополнительные настройки

  1. Если вы планируете создать несколько серверов и хотите повысить отказоустойчивость инфраструктуры, добавьте сервер в группу размещения:

    1.1. Чтобы создать новую группу, в поле Группа размещения нажмите Создать.

    1.2. Выберите Новая группа и введите имя группы.

    1.3. Выберите политику размещения на разных хостах:

    • желательно — soft-anti-affinity. Система постарается разместить серверы на разных хостах. Если при создании сервера не будет подходящего хоста, он будет создан на том же хосте;
    • обязательно — anti-affinity. Серверы в группе обязательно располагаются на разных хостах. Если при создании сервера не будет подходящего хоста, сервер не будет создан.

    1.4. Если группа создана, в поле Группа размещения выберите группу размещения.

  2. Чтобы добавить дополнительную информацию или фильтровать серверы в списке, добавьте теги сервера. Автоматически добавляются теги операционной системы и конфигурации. Чтобы добавить новый тег, в поле Теги введите тег.

  3. Чтобы добавить скрипт, который выполнится с помощью агента cloud-init при первом запуске операционной системы, в блоке Автоматизация в поле User data:

    • откройте вкладку Текст и вставьте скрипт текстом;
    • или откройте вкладку Файл и загрузите файл со скриптом.

Запустить Data Analytics

  1. Убедитесь, что прошло более семи минут после создания сервера — это время требуется для развертывания дополнительных сервисов и создания DNS-записей.

  2. Откройте в браузере страницу DAVM. Используйте ссылку:

    • home-<ip_address>.pl.davm.selcloud.ru

      Укажите <ip_address> — публичный IP-адрес облачного сервера. Можно скопировать в панели управления: в верхнем меню нажмите ПродуктыОблачные серверы → страница сервера → вкладка Порты → в карточке порта нажмите рядом с публичным IP-адресом. В IP-адресе замените символы . на -, например 203-0-113-10;

    • или ссылку из сообщения операционной системы, которое появляется при подключении к облачному серверу через консоль в панели управления⁠.

  3. Авторизуйтесь в Keycloak. Используйте:

    • логин — admin;
    • пароль — UUID сервера. Можно скопировать в панели управления: в верхнем меню нажмите ПродуктыОблачные серверы → в карточке сервера нажмите рядом с UUID.
  4. Введите новый пароль. Сохраните его — в случае утраты пароля мы не сможем его сбросить.

Версии библиотек

absl-py2.0.0Jinja23.1.2PyJWT2.8.0
accelerate0.23.0jmespath1.0.1pyOpenSSL23.3.0
aiobotocore2.5.4joblib1.3.2pyparsing3.1.1
aiofiles22.1.0json50.9.14pyproject_hooks1.0.0
aiohttp3.8.6jsonpatch1.33PySocks1.7.1
aioitertools0.11.0jsonpointer2.4python-dateutil2.8.2
aiosignal1.3.1jsonschema4.19.2python-json-logger2.0.7
aiosqlite0.19.0jsonschema-specifications2023.7.1python-slugify8.0.1
alembic1.12.1jupyter1.0.0pytz2023.3.post1
altair5.1.2jupyter_client8.6.0pytzdata2020.1
ansiwrap0.8.4jupyter-console6.6.3PyWavelets1.4.1
anyio3.7.1jupyter_core5.5.0PyYAML6.0.1
apprise1.6.0jupyter-events0.9.0pyzmq25.1.1
archspec0.2.2jupyter_scheduler1.3.1qtconsole5.5.0
argon2-cffi23.1.0jupyter_server2.10.0QtPy2.4.1
argon2-cffi-bindings21.2.0jupyter_server_fileid0.9.0readchar4.0.5
arrow1.3.0jupyter-server-mathjax0.2.6referencing0.30.2
asgi-lifespan2.1.0jupyter_server_terminals0.4.4regex2023.10.3
asttokens2.4.1jupyter_server_ydoc0.8.0requests2.31.0
astunparse1.6.3jupyter-telemetry0.1.0requests-oauthlib1.3.1
async-generator1.1jupyter-ydoc0.2.4rfc3339-validator0.1.4
async-timeout4.0.3jupyterhub4.0.0rfc3986-validator0.1.1
asyncpg0.29.0jupyterlab3.6.3rich13.6.0
attrs23.1.0jupyterlab-git0.41.0rpds-py0.12.0
Babel2.13.1jupyterlab-pygments0.2.2rpy23.5.11
backports.functools-lru-cache1.6.5jupyterlab-s3-browser0.12.0rsa4.9
beautifulsoup44.12.2jupyterlab_server2.25.1ruamel.yaml0.18.5
bleach6.1.0jupyterlab-widgets3.0.9ruamel.yaml.clib0.2.7
blinker1.7.0keras2.14.0s3fs2023.6.0
bokeh3.3.0kiwisolver1.4.5s3transfer0.6.2
boltons23.0.0kubernetes28.1.0safetensors0.4.0
boto31.28.17lab8scikit-image0.22.0
botocore1.31.17lazy_loader0.3scikit-learn1.3.2
Bottleneck1.3.7libclang16.0.6scipy1.11.3
Brotli1.1.0libmambapy1.5.3seaborn0.13.0
build1.0.3lit15.0.7Send2Trash1.8.2
cached-property1.5.2llvmlite0.41.1setuptools68.2.2
cachetools5.3.2locket1.0.0simplegeneric0.8.1
certifi2023.7.22lz44.3.2simplejson3.19.2
certipy0.1.3Mako1.3.0singleton-decorator1.0.0
cffi1.16.0mamba1.5.3six1.16.0
charset-normalizer3.3.2Markdown3.5.1smmap5.0.1
click8.1.7markdown-it-py3.0.0sniffio1.3.0
cloudpickle3.0.0MarkupSafe2.1.3sortedcontainers2.4.0
cmake3.25.0matplotlib3.8.1soupsieve2.5
colorama0.4.6matplotlib-inline0.1.6SQLAlchemy1.4.50
comm0.1.4mdurl0.1.2stack-data0.6.2
conda23.10.0mistune3.0.2starlette0.27.0
conda-libmamba-solver23.11.0ml-dtypes0.2.0statsmodels0.14.0
conda-package-handling2.2.0mpmath1.3.0sympy1.12
conda_package_streaming0.9.0msgpack1.0.6tables3.9.1
contourpy1.2.0multidict6.0.4tblib2.0.0
coolname2.2.0multiprocess0.70.15tenacity8.2.3
croniter2.0.1munkres1.1.4tensorboard2.14.1
cryptography41.0.5nbclassic1.0.0tensorboard-data-server0.7.2
cycler0.12.1nbclient0.8.0tensorflow2.14.0
Cython3.0.5nbconvert7.11.0tensorflow-estimator2.14.0
cytoolz0.12.2nbdime3.2.1tensorflow-io-gcs-filesystem0.34.0
dask2023.10.1nbformat5.9.2termcolor2.3.0
datasets2.14.5nest-asyncio1.5.8terminado0.17.1
dateparser1.1.8networkx3.2.1text-unidecode1.3
debugpy1.8.0notebook6.5.4textwrap30.9.2
decorator5.1.1notebook_shim0.2.3threadpoolctl3.2.0
defusedxml0.7.1numba0.58.1tifffile2023.9.26
dill0.3.7numexpr2.8.7tinycss21.2.1
distributed2023.10.1numpy1.26.0tokenizers0.14.1
docker6.1.3nvidia-ml-py12.535.133toml0.10.2
entrypoints0.4nvitop1.3.1tomli2.0.1
et-xmlfile1.1.0oauthlib3.2.2toolz0.12.0
exceptiongroup1.1.3openpyxl3.1.2torch2.0.1+cu118
executing2.0.1opt-einsum3.3.0torchaudio2.0.2+cu118
fastapi0.104.1orjson3.9.10torchvision0.15.2+cu118
fastjsonschema2.18.1overrides7.4.0tornado6.3.3
filelock3.9.0packaging23.2tqdm4.66.1
flatbuffers23.5.26pamela1.1.0traitlets5.9.0
fonttools4.44.0pandas2.1.2transformers4.34.0
fqdn1.5.1pandocfilters1.5.0triton2.0.0
frozenlist1.4.0papermill2.4.0truststore0.8.0
fsspec2023.6.0parso0.8.3txt2tags3.9
gast0.5.4partd1.4.1typer0.9.0
gitdb4.0.11pathspec0.11.2types-python-dateutil2.8.19.14
GitPython3.1.40patsy0.5.3typing_extensions4.8.0
gmpy22.1.2pendulum2.1.2typing-utils0.1.0
google-auth2.23.4pexpect4.8.0tzdata2023.3
google-auth-oauthlib1.0.0pickleshare0.7.5tzlocal5.2
google-pasta0.2.0Pillow10.1.0unicodedata215.1.0
greenlet3.0.1pip23.3.1uri-template1.3.0
griffe0.36.9pkgutil_resolve_name1.3.10urllib31.26.18
grpcio1.59.2platformdirs3.11.0uvicorn0.24.0.post1
h110.14.0plotly5.14.1wcwidth0.2.9
h24.1.0pluggy1.3.0webcolors1.13
h5py3.10.0prefect2.10.16webencodings0.5.1
hpack4.0.0prometheus-client0.18.0websocket-client1.6.4
httpcore1.0.1prompt-toolkit3.0.39websockets12
httpx0.25.1protobuf4.24.4Werkzeug3.0.1
huggingface-hub0.17.3psutil5.9.5wheel0.41.3
hyperframe6.0.1psycopg2-binary2.9.6widgetsnbextension4.0.9
idna3.4ptyprocess0.7.0wrapt1.14.1
imagecodecs2023.9.18pure-eval0.2.2xformers0.0.22
imageio2.31.5py-cpuinfo9.0.0xlrd2.0.1
importlib-metadata6.8.0pyarrow14.0.0xxhash3.4.1
importlib-resources6.1.1pyasn10.5.0xyzservices2023.10.1
ipykernel6.26.0pyasn1-modules0.3.0y-py0.5.9
ipympl0.9.3pycosat0.6.6yarl1.9.2
ipython8.17.2pycparser2.21ypy-websocket0.8.2
ipython-genutils0.2.0pycurl7.45.1zict3.0.0
ipywidgets8.1.1pydantic1.10.12zipp3.17.0
isoduration20.11.0Pygments2.16.1zstandard0.22.0
jedi0.19.1