Some problems in software are complex and then there are the other peculiar problems.
The ones that appear simple until they quietly refuse to cooperate.
Recently, I needed to spin up a virtual machine on Microsoft Azure. Nothing fancy. Just a small server running Windows Server 2025 Datacenter for a bit of experimentation.
In theory, creating a VM in the cloud should be one of the most straightforward tasks in modern computing. Click a few buttons, choose an operating system, wait a moment, and somewhere in a distant datacenter a machine materializes.
Reality, as it often does, had a slightly different plan.
The deployment failed with a message that looked innocuous but carried just enough ambiguity to slow things down:
The selected image is not valid for the specified location.
At first glance, it reads like a configuration mistake. Choose a different option and try again. But cloud systems rarely fail randomly; they fail for reasons that are usually hidden one layer deeper than the interface suggests.
In this case, the issue was geographical. I discovered this after tinkering with various images and location settings.
Azure operates dozens of data centers across the world. Each region has slightly different hardware, capacity, and image availability. When you select an operating system image, you are implicitly asking a very physical question: Does this datacenter actually have that image available right now?
Sometimes the answer is no.
Once that realization clicks, the error message suddenly makes perfect sense.
With that small puzzle resolved, I thought it would be useful to write down the exact process for creating a VM in Azure. If nothing else, it may spare someone else a few minutes of head scratching.
Creating a Virtual Machine in Azure
The starting point is the Azure portal.
Open the dashboard and log in:
https://portal.azure.com
This interface is essentially the command center for everything running on Microsoft’s cloud infrastructure.
Once inside, use the search bar and type Virtual Machines. Select the service and click:
Create → Azure Virtual Machine
That opens the configuration wizard where the real work begins.
Basic Configuration
The first section defines the environment where the VM will live.
Start by creating or selecting a resource group. Resource groups act as containers that hold related infrastructure components.
Example:
vm-lab-rg
Next, give the machine a name:
my-first-vm
Naming may seem trivial, but good naming conventions save time later when environments grow larger.
Choosing the Right Region
Azure requires you to pick a geographic region where the VM will run.
Some commonly reliable regions include:
- West Europe
- UK South
- UAE North
The region choice affects latency, pricing, and as I learned sometimes which operating system images are available.
Selecting the Operating System
This is the step where many deployments quietly succeed or fail.
A widely compatible option is:
Windows Server 2025 Datacenter: Azure Edition – x64 Gen2
This image integrates well with Azure’s virtualization environment and is generally available across most regions.
Choosing a VM Size
Next comes the machine size. In cloud terms, this defines CPU power, memory, and cost.
For experimentation or lightweight workloads, something modest works well.
Choosing a VM size is essentially selecting how powerful you want your rented computer to be.
Administrator Credentials
Azure then asks you to create an administrator account for the machine.
Example:
Username: azureadmin
Password: ********
If you are creating a Windows machine, enable the option that allows Remote Desktop (RDP) access. This allows you to connect to the server after deployment.
Storage and Networking
For most use cases, the default settings here work perfectly well.
Azure automatically provisions:
- a virtual network
- a subnet
- a public IP address
- a network security rule for RDP
For storage, the default Standard SSD disk is usually a good balance between performance and cost.
Deployment
With the configuration complete, click Review + Create.
Azure validates the settings and then begins the deployment process.
Within a couple of minutes the platform allocates compute resources, attaches storage, configures networking, and boots the virtual machine.
Connecting to the Machine
Once the deployment completes, the next step is actually getting into the server.
Azure provides a few connection options through the portal, but the simplest approach is to connect using Microsoft Remote Desktop.
After the VM is created, Azure automatically assigns a public IP address to the machine. You can find it in the VM’s overview page inside Microsoft Azure.
In my case, I simply copied that public IP and opened a connection through the Microsoft Remote Desktop client.
The process looks roughly like this:
Host: <public-ip-address>
When prompted, enter the administrator credentials you created during the VM setup.
Username: azureadmin
Password: ********
If everything is configured correctly and the RDP port was allowed during deployment the connection should establish within a few seconds.
At that point, you are no longer looking at the Azure portal. You are looking at the desktop of a Windows machine running somewhere inside Microsoft’s global datacenter network.
Yet there it is, responding to your keyboard and mouse as if it were sitting right in front of you.
A Small Reflection
Cloud computing often feels magical. Servers appear and disappear on command. Storage scales endlessly. Networks stretch across continents.
But every now and then the illusion cracks just enough to remind you what is happening underneath.
And sometimes, all it takes to see that reality is a small error message about a missing image in chosen location.
Top comments (0)