Use one VM per tunnel. Do not add several VMs to a single tunnel.
Costs
Nebius AI Cloud charges you for the following billing items:- Compute virtual machine
- Boot disk attached to the VM
Steps
Create a tunnel
- Web console
- CLI
- In the web console, select the project where you want to create the infrastructure. All resources must be located in the same project.
- Go to Networking → Tunnels.
- Click Create tunnel.
- On the page that opens, set the tunnel name to
my-tunnel. - Click Create tunnel.
Prepare a service account
To authorize the VM in the tunnel, prepare a service account with theapplicationtunnel.agent role. Later, you attach this service account to the VM.
-
Create the service account:
- Web console
- CLI
- In the sidebar, go to Administration → IAM.
- Click Create resource → Service account.
- In the window that opens, set the name to
tunnel-agent-saand select the project. - Click Create and continue.
-
Create a custom group in Identity and Access Management to assign the role to the service account:
- Web console
- CLI
- In the sidebar, go to Administration → IAM.
- Click Create resource → Group.
- In the window that opens, set the group name to
tunnel-agents. In the Scope field, select the project where you create all the resources. - Click Create.
-
Attach the tunnel and grant the
applicationtunnel.agentrole to this group. You can only grant this role by using the CLI.- CLI
-
Get the group ID:
The ID is specified in the
items.metadata.idparameter in the output. -
Get the tunnel ID:
-
Create an access permit in the custom group:
-
Add the service account to the group:
- Web console
- CLI
- Go to Administration → IAM.
- On the Groups tab, find and open the
tunnel-agentsgroup. - Click Add members.
- In the window that opens, add the
tunnel-agent-saservice account. - Once the account is added, close the window.
- The
tunnel-agent-saservice account is specified on the Members tab. - The tunnel and the
applicationtunnel.agentrole are specified on the Access permits tab.
Create a virtual machine
Prepare the VM configuration that includes the Qwen/Qwen3-8B model and the tunnel agent. Then, create the VM — the model and agent are deployed on the VM automatically.- Generate an SSH key pair.
-
Prepare the cloud-init configuration file. You’ll attach it to the VM.
In this file, specify two parameters:
users.ssh_authorized_keys: Public SSH key.write_files.content.tunnel_id: ID of the tunnel.
llm.yaml
This configuration enables the following actions:- Add a username and a public SSH key to the VM.
- Authenticate by using the service account attached to the VM.
-
Create two Nebius Tunnels services:
llm: To address the model and chat with it.ssh: To connect to the VM by using SSH.
- Deploy the tunnel agent on the VM.
- Deploy a Docker image with the Qwen/Qwen3-8B model on the VM.
-
Create the VM:
- Web console
- CLI
- In the sidebar, go to Compute → Virtual machines.
- Click Create resource → Virtual machine. The creation flow is a step-by-step wizard. The sidebar shows your progress through the configuration sections. To move between sections, click Back and Next.
-
On the Compute step, configure computing resources:
-
In the Platform section, select:
- With GPUs
- Regular
- NVIDIA® H100 NVLink
-
In the Settings section, set:
- Preset: 1 GPU - 16 CPUs - 200 GiB RAM.
- Project: The project where you create all resources for the tunnel.
- VM name:
tunnel-llm.
-
In the Platform section, select:
-
On the Storage step:
- Preserve the Ubuntu 24.04 LTS for NVIDIA® GPUs (CUDA® 13) disk image.
- Change the disk type to Network SSD IO M3.
- Change the disk size to 186 GiB.
- On the Network step, check the network and subnet. Keep None in the Public IP address field.
-
On the Configuration step, configure access, identity and VM startup settings:
- In the Service account field, select the
tunnel-agent-saservice account. - Enable a custom cloud-init configuration file.
- In the field that appears, paste the contents of the
llm.yamlfile prepared earlier.
- In the Service account field, select the
- On the Review step, check the full VM configuration. To change a section quickly, click next to the corresponding block. The wizard opens the relevant step with your current settings.
- Click Create VM.
Check the result and chat with the LLM
The first VM boot pulls the LLM Docker image and model weights. The model deployment takes 10-20 minutes. The tunnel agent becomes available before the LLM starts.-
To check the status of the model deployment, connect to the VM through the
sshtunnel service:In the VM address, specify:tunnel_masked_ID: Mask of the tunnel ID without theapplicationtunnel-prefix and regional routing code. Contains the last 15 characters of the tunnel ID. For example, forapplicationtunnel-e00abcdef123456789, the masked ID of the tunnel isabcdef123456789.region: Region of the project where you created the resources.
-
Check logs:
When the logs contain
INFO: Application startup complete, the model is ready to serve requests. - Disconnect from the VM.
-
Send a chat completion request from your local machine:
The result is a JSON response with the model’s answer in the
choices[0].message.contentparameter. If the response isfailed to connect to local service, this means that the model hasn’t started yet. Wait a few minutes and try again.