Skip to main content

Data Analytics Virtual Machine

Last update:

Data Analytics Virtual Machine (DAVM) is a preconfigured cloud server with an operating system and pre-installed tools for data analysis and machine learning (ML).

The image from which the server is deployed contains:

  • pre-installed tools;

  • Docker, a platform for running containerized applications;

  • Docker Compose — a tool for running multi-container applications in Docker;

  • drivers required for working with graphics processing units (GPU).

After creating a DAVM, detailed instructions for working with JupyterLab, Prefect, Apache Superset, Keycloak, PyTorch, TensorFlow, and code examples will be available in Jupyter Notebooks.

Before creating a server, review the software license agreements included in the image.

Preinstalled tools

  • JupyterLab (version 3.6.3) — a unified development environment for working with Jupyter Notebooks, programming code, and data;
  • Prefect (version 2.10.16) — software for managing data collection, monitoring, and batch processing tasks;
  • Apache Superset (version 3.0.0) — a web application for visualization, reporting, and dashboard creation;
  • PostgreSQL — an object-relational database management system;
  • a set of machine learning libraries: TensorFlow, PyTorch and others. You can view them in the Library versions table.

Use cases

  • development and training of ML models;
  • building data processing workflows (ETL/ELT);
  • data visualization (BI).

Minimum resource requirements

Number of vCPUs2
RAM8 GB
Boot volume100 GB
GPURequired

Getting started with DAVM

  1. Create a cloud server with DAVM.

  2. Run DAVM.

1. Create a cloud server with DAVM

  1. In the Control panel, on the top menu, click Products and select AI Marketplace.

  2. Click Create server.

  3. Fill in the blocks:

  4. Check the server price.

  5. Click Create server.

Name and placement

  1. Enter the server name.

  2. Select a location where the server will be created. The available GPU options depend on the location. You cannot change the location after the server is created.

Source

Select an image Data Analytics VM (Ubuntu 22.04 LTS 64-bit).

GPU

  1. Click Add GPU.

  2. Select a GPU type. When choosing a GPU, consider the minimum resource requirements for the image to run. GPU specifications and descriptions can be found in the Graphics Processing Units (GPU) guide.

  3. Specify the number of GPUs.

After the server is created, you will be able to change the GPU type and quantity or remove the GPU. Read more in the Change Cloud Server Configuration guide.

Configuration

  1. Specify the number of vCPUs.

  2. Specify the RAM size.

After the server is created, you will be able to change the configuration.

Disks

  1. Select a boot disk type. GPUs are not available when using a local disk as a boot disk.

  2. Specify the disk size in GB or TB. The maximum size for all network volumes is 10 240 GB (10 TB), for a local disk — 1 256 GB (1 TB).

  3. If you have selected SSD Universal v2 or SSD Fast v2 as the disk type, specify the total number of read and write operations in IOPS. After the disk is created, you can change the number of IOPS — decrease or increase them. There is no limit on the number of IOPS changes.

  4. Optional: to add additional disks:

    4.1. Click Add volume.

    4.2. Select the volume type.

    4.3. Specify the disk size in GB or TB. The maximum size for all network volumes is 10 240 GB (10 TB), for a local disk — 1 256 GB (1 TB).

    4.4. If you have selected SSD Universal v2 or SSD Fast v2 as the disk type, specify the total number of read and write operations in IOPS. After the disk is created, you can change the number of IOPS — decrease or increase it. The number of IOPS changes is unlimited.

    After the server is created, you will be able to detach additional volumes from it or attach new ones.

Network

You can add a server to a new or existing subnet. The subnet can be:

  • private, without internet access. You will not be able to connect to the server from the internet, including via SSH or RDP;
  • private with one public IP address. A static public IP address connects to the server’s private address via a cloud router. The server will be accessible from the internet via this public IP address;
  • public, where all addresses are accessible from the internet.
  1. To add an existing private subnetwork:

    1.1. In the Subnet field, select an existing subnet.

    1.2. Optional: change the default private IP address of the server.

  2. To add a new private subnetwork:

    2.1. In the Subnet field, select the Private subnet type.

    2.2. Optional: change the subnetwork CIDR.

    2.3. Optional: enable the DHCP toggle. Read more about the DHCP protocol in the Selectel blog article Principles of the DHCP Protocol.

    2.4. Optional: change the default gateway IP address.

    2.5. Optional: change the network in which the subnet will be created — you can select an existing network or create a new one. If you are creating a new network, enter a network name.

Optional: Access

  1. In the Password for «root» field:

    1.1. Copy the password for the root user — the user with unrestricted system privileges.

    1.2. Save the password in a secure place and do not share it in plain text.

  2. Add an SSH key for the project to the server for secure connection:

    2.1. If the SSH key is not added to the cloud platform, click , enter the key name, paste the public key in OpenSSH format, and click Add.

    2.2. If the SSH key is added to the cloud platform, in the SSH key field, select an existing key.

Optional: Additional settings

  1. To create a preemptible server, check the Preemptible server checkbox.

  2. If you are planning to create several servers and want to increase infrastructure fault tolerance, add the server to a placement group:

    2.1. To create a new group, click , enter the group name and select a placement policy for different hosts:

    • preferred — the system will try to place servers on different hosts. If no suitable host is available when creating a server, it will be created on the same host;

    • mandatory — servers in the group are required to be located on different hosts. If no suitable host is available when creating a server, the server will not be created.

    2.2. If the group is created, in the Placement group field, select a placement group.

  3. To add additional information or filter servers in the list, add server tags. A tag with the image name is added automatically. To add a new tag, in the Tags field, enter the tag.

Optional: Automation

  1. To add a script to be executed by the cloud-init agent during the first system boot, in the User data field:

    • open the Text tab and paste the script as text;
    • or open the File tab and upload the script file.

    For examples of scripts and supported formats, see the User data guide.

2. Launch DAVM

  1. Ensure that more than seven minutes have passed since the server was created — this time is required to deploy additional services and create DNS records.

  2. Open the DAVM page in your browser. Use the link:

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

      Specify <ip_address> — the public IP address of the cloud server; you can view it in the control panel: from the top menu, click ProductsAI-marketplace → server page → Ports tab → in the port card, click next to the public IP address. In the IP address, replace the periods . with -, for example 203-0-113-10;

    • or the link from the operating system message that appears when connecting to the cloud server via the console in the control panel.

  3. Log in to Keycloak. Use:

    • login — admin;
    • password — the server UUID. You can copy it in the Control Panel: in the top menu, click ProductsAI Marketplace → in the server menu, select Copy UUID.
  4. Enter a new password. Save it — if you lose the password, we will not be able to reset it.

Library versions

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