Azure Public IPs: Key Differences Between Basic and Standard SKUs and When to Use Each


5 views

When deploying resources in Azure, you'll encounter two types of Public IP addresses: Basic and Standard. The core difference lies in their features, capabilities, and supported scenarios.

Feature Basic Standard
Availability Zones No Yes
Routing Preference No Yes
Global Tier No Yes
Security Open by default Secure by default
Load Balancer Compatibility Basic LB only Standard LB only

Azure will automatically use Standard SKU Public IP when:

  • You're deploying a Standard Load Balancer
  • You explicitly select Standard SKU during resource creation
  • Your VM is part of an availability zone configuration

You can specify the SKU type either during creation or via ARM templates:

// ARM template snippet for Standard Public IP
{
  "apiVersion": "2021-05-01",
  "type": "Microsoft.Network/publicIPAddresses",
  "name": "myStandardPublicIP",
  "location": "[resourceGroup().location]",
  "sku": {
    "name": "Standard"
  },
  "properties": {
    "publicIPAllocationMethod": "Static"
  }
}

Here's how to create a Standard SKU Public IP using Azure CLI:

az network public-ip create \
    --resource-group MyResourceGroup \
    --name MyStandardPublicIP \
    --sku Standard \
    --allocation-method Static \
    --zone 1 2 3

The Basic SKU is often the default because:

  1. It's compatible with more legacy services
  2. It's the fallback option when no SKU is specified
  3. It has lower costs for simple scenarios

To upgrade from Basic to Standard:

# First, delete the Basic IP (after reassigning dependencies)
az network public-ip delete --name MyBasicPublicIP --resource-group MyResourceGroup

# Then create Standard IP
az network public-ip create --name MyStandardPublicIP --resource-group MyResourceGroup --sku Standard

Azure offers two distinct SKUs for public IP addresses with fundamentally different architectures:

Feature Basic Standard
Availability Zones Non-zonal Zone-redundant or zonal
Security Open by default Closed by default (NSG required)
Routing Preference Microsoft network only Internet routing option
Supported Resources VMs, Load Balancers VMs, Load Balancers, Application Gateways

The portal defaults to Basic SKU when:

  • Creating standalone VMs without associated load balancers
  • Using older ARM templates that don't specify SKU
  • The region doesn't support Standard SKU features

To force Standard SKU usage, you must explicitly declare it in your deployment:

// ARM Template example
{
  "apiVersion": "2020-11-01",
  "type": "Microsoft.Network/publicIPAddresses",
  "name": "myStandardIP",
  "location": "[resourceGroup().location]",
  "sku": {
    "name": "Standard"
  },
  "properties": {
    "publicIPAllocationMethod": "Static"
  }
}

When to choose Basic:

  • Dev/test environments
  • Temporary workloads
  • Non-critical applications

When Standard is mandatory:

  • Production workloads requiring zone redundancy
  • Applications needing DDoS protection tier
  • Global load balancing scenarios

Use Azure CLI to verify your quotas:

az vm list-usage --location eastus --output table

To increase Standard SKU quota, you'll need to submit a support request through the Azure portal.