Azure Virtual Machines (VMs)

Overview


Key Features


Workflow

    +-----------------+
    |   User / DevOps |
    +-----------------+
            |
            v
    +-------------------------------+
    | Azure CLI / Portal / Powershell|
    +-------------------------------+
            |
            v
    +-----------------------+
    |    Resource Group     |
    +-----------------------+
      |        |        |
      |        |        +---> [ Virtual Network + Subnet ] --> [ Network Security Group ]
      |        |
      |        +------------> [ Storage: OS Disk / Data Disk ]
      |
      v
  +-----------------+
  | Virtual Machine | ----> [ Public/Private IP ]
  +-----------------+

Common Use Cases


Steps to Create a VM using Azure CLI

1. Login to Azure

az login

2. Create a Resource Group

az group create --name MyResourceGroup --location eastus

3. Create a Virtual Network & Subnet

az network vnet create \
  --resource-group MyResourceGroup \
  --name MyVNet \
  --subnet-name MySubnet

4. Create a Public IP Address

az network public-ip create \
  --resource-group MyResourceGroup \
  --name MyPublicIP

5. Create a Network Security Group (NSG) and Allow SSH/HTTP

az network nsg create \
  --resource-group MyResourceGroup \
  --name MyNSG

# Allow SSH (Linux VM)
az network nsg rule create \
  --resource-group MyResourceGroup \
  --nsg-name MyNSG \
  --name AllowSSH \
  --protocol tcp \
  --priority 1000 \
  --destination-port-ranges 22 \
  --access allow

# Allow RDP (Windows VM)
az network nsg rule create \
  --resource-group MyResourceGroup \
  --nsg-name MyNSG \
  --name AllowRDP \
  --protocol tcp \
  --priority 1001 \
  --destination-port-ranges 3389 \
  --access allow

6. Create a Network Interface Card (NIC)

az network nic create \
  --resource-group MyResourceGroup \
  --name MyNIC \
  --vnet-name MyVNet \
  --subnet MySubnet \
  --network-security-group MyNSG \
  --public-ip-address MyPublicIP

7. Create the VM

az vm create \
  --resource-group MyResourceGroup \
  --name MyVM \
  --nics MyNIC \
  --image UbuntuLTS \
  --admin-username azureuser \
  --generate-ssh-keys

8. Open Ports (if needed, e.g., HTTP/HTTPS)

az vm open-port --port 80 --resource-group MyResourceGroup --name MyVM
az vm open-port --port 443 --resource-group MyResourceGroup --name MyVM

9. Connect to VM


Notes