Forum Discussion
SebastiaanR
May 28, 2025Copper Contributor
Azure ML Studio - Attached Compute Challenges
Hello community,
I'm new to ML services and have been exploring the ML Studio the last while to understand it better from an infrastructure point of view.
I understand that I should be able to attach an existing VM (Ubuntu) running in my Azure environment, and use this as a compute resource in the ML Studio.
I've come across two challenges, and I would appreciate your help. I'm sure perhaps I am just missing something small.
Firstly, I would like to connect to my virtual machine over a private endpoint. What I have tried is to create the private endpoint to my VM following the online guidance (Configure a private endpoint - Azure Machine Learning | Microsoft Learn). Both the VM and the endpoints are on the same subnet on the same vNet, yet, it is unable to attach the compute. It seems to still default to the public IP of the VM, which is not what I am after.
I have the SSH port configured to port 22 still, and I have tried several options on my NSG to configure the source and destination information (Service Tags, IP address, etc.), but with no luck.
Am I missing something? Is attaching an existing VM for compute over a private endpoint a supported configuration, or does the private endpoint only support compute created out of the ML Studio compute section?
Secondly, if I forget about the private endpoint and attach the VM directly over internet (not desired, obviously), it is not presented to me as a compute option when I try to run my Jupyter Notebook. I only have "Azure Machine Learning Serverless Spark" as a compute option, or any compute that was indeed created through the ML Studio. I don't have the option to select the existing VM that was attached from Azure.
Again, is there a fundamental step or limitation that I am overlooking?
Thanks in advance
To my knowledge (I hope this is still correct by now):
Attaching an existing Azure VM as a compute target requires a public IP. Even if your Azure ML workspace uses a private endpoint, the attach process defaults to SSH over the public IP. Azure ML does not currently support attaching a VM over a private IP only.
So, your NSG and subnet config may be fine, but the service still needs that public IP to connect.VM not showing in Notebook compute options is also as expected. Attached VMs are only for submitting training jobs, not for interactive notebooks. Only Azure ML-created compute instances/clusters show up in the notebook UI.
Recommendation: If you want a private-only setup, use a Compute Instance or Compute Cluster created in Azure ML Studio. These can live fully inside a VNet and support private networking properly.
Hope that helps. Best regards! :)
3 Replies
Sort By
- hazemCopper Contributor
You can’t attach a VM over private-IP only
Azure ML Studio today still requires a public IP to SSH into your VM, even if your workspace itself is behind a private endpoint.“Azure Machine Learning also requires the virtual machine to have a public IP address. Attach: To attach an existing virtual machine as a compute target.”
- SebastiaanRCopper Contributor
Thanks for taking the time to respond, you've validated what I suspected. I was hoping perhaps I overlooked something, but it seems as though the way I want to do it requires the specific approach that you've articulated.
- MoritzGCopper Contributor
To my knowledge (I hope this is still correct by now):
Attaching an existing Azure VM as a compute target requires a public IP. Even if your Azure ML workspace uses a private endpoint, the attach process defaults to SSH over the public IP. Azure ML does not currently support attaching a VM over a private IP only.
So, your NSG and subnet config may be fine, but the service still needs that public IP to connect.VM not showing in Notebook compute options is also as expected. Attached VMs are only for submitting training jobs, not for interactive notebooks. Only Azure ML-created compute instances/clusters show up in the notebook UI.
Recommendation: If you want a private-only setup, use a Compute Instance or Compute Cluster created in Azure ML Studio. These can live fully inside a VNet and support private networking properly.
Hope that helps. Best regards! :)