DGX Spark to Azure Private Endpoint 7
Reach a private-only Microsoft Foundry account from an NVIDIA DGX Spark at home through a fourteen-dollar-a-month WireGuard VM, with split DNS that sends only the Azure AI names to Azure DNS, and watch every DNS answer and HTTP status flip in Grafana.
About $0.75/day while the lab runs (VM, IP, disk, private endpoint, zones); make down deletes it all
Parts
What you build, what you need, and how requests and signals travel through it.
The application and its instrumentation, file by file.
The cluster, the app manifests and the observability stack that receives the signals.
Bring everything up, check the rollout and smoke-test the endpoints.
A tour of the dashboard, the query behind each panel, and how long each signal takes to arrive.
Perform an action, predict the signal, then check the dashboard and explain what changed.
What the experiments proved, where this setup stops, and what production would change.
Experiments

See what the DGX gets today: all three names resolve to a public IP and the account's firewall answers 403.

Prove that routing alone is not enough: the private endpoint's IP answers over WireGuard, but the names still resolve to the public IP.

Turn on split DNS and watch the cognitiveservices name flip to the private endpoint's IP and the call succeed, while the openai name stays public.

Fix the mistake from the brief: give the private endpoint's zone group the privatelink.openai and privatelink.services.ai zones, and time how long the DNS answers take to change.

Stop paying for compute when you don't need the tunnel, and see what the DGX gets while the VM is off.

Start the VM again and see the DGX reconnect without anyone touching it, thanks to the static IP and PersistentKeepalive.