Back to Blog
FinOps
4 min read

Azure Cost Optimization Strategies for SMEs

AzureFinOpsCost OptimisationSMECloud

Enterprise FinOps advice often assumes dedicated teams and complex tooling. For SMEs with limited resources, here are practical approaches that deliver results without the overhead.

Quick Wins (Do These First)

1. Right-Size VMs

Most VMs are oversized. Check actual usage:

Perf
| where TimeGenerated > ago(30d)
| where ObjectName == "Processor" and CounterName == "% Processor Time"
| summarize AvgCPU = avg(CounterValue), MaxCPU = max(CounterValue) by Computer
| where AvgCPU < 20 and MaxCPU < 50

If average CPU is under 20%, you can probably downsize.

2. Shut Down Dev/Test

VMs running 24/7 but only used 8 hours a day? Stop paying for 16 hours:

resource "azurerm_automation_schedule" "shutdown" {
  name                    = "shutdown-devtest"
  resource_group_name     = azurerm_resource_group.this.name
  automation_account_name = azurerm_automation_account.this.name
  frequency               = "Day"
  start_time              = "2024-01-01T18:00:00+00:00"  # 6 PM
}

3. Delete Orphaned Resources

Disks, IPs, and NICs left behind after VM deletion:

# Find orphaned disks
Get-AzDisk | Where-Object { $_.ManagedBy -eq $null } |
  Select-Object Name, DiskSizeGB, @{N='MonthlyCost';E={$_.DiskSizeGB * 0.04}}

# Find orphaned public IPs
Get-AzPublicIpAddress | Where-Object { $_.IpConfiguration -eq $null }

4. Use Hybrid Benefit

If you have Windows Server or SQL licenses:

resource "azurerm_windows_virtual_machine" "this" {
  license_type = "Windows_Server"  # Saves ~40%
}

resource "azurerm_mssql_database" "this" {
  license_type = "BasePrice"  # Saves ~55%
}

Medium-Term Strategies

Reserved Instances

For stable workloads, commit for 1 or 3 years:

TermTypical Savings
1 Year30-40%
3 Year50-60%

Start with:

  • Production VMs that run 24/7
  • Database servers
  • AKS node pools

Don't reserve:

  • Dev/test (use pay-as-you-go)
  • Variable workloads
  • Resources you might change

Savings Plans

More flexible than reservations. Commit to hourly spend instead of specific resources:

Reservation: "I need this specific VM size for 1 year"
Savings Plan: "I'll spend £100/hour on compute for 1 year"

Savings Plans let you change VM sizes and regions.

Storage Tiering

Move infrequently accessed data to cheaper tiers:

resource "azurerm_storage_management_policy" "lifecycle" {
  storage_account_id = azurerm_storage_account.this.id

  rule {
    name    = "archive-old-data"
    enabled = true

    filters {
      blob_types = ["blockBlob"]
    }

    actions {
      base_blob {
        tier_to_cool_after_days_since_modification_greater_than    = 30
        tier_to_archive_after_days_since_modification_greater_than = 90
        delete_after_days_since_modification_greater_than          = 365
      }
    }
  }
}

SME-Specific Considerations

Microsoft Partner Benefits

If you're a Microsoft Partner:

  • Free internal use licenses (IUR)
  • Azure credits for development
  • Reduced pricing on some services

CSP vs Direct

Cloud Solution Provider pricing:

  • Sometimes cheaper than direct
  • Bundled with support
  • Simplified billing

Compare before committing to either.

Azure Spot VMs

For interruptible workloads (batch processing, dev, CI/CD):

resource "azurerm_linux_virtual_machine" "spot" {
  priority        = "Spot"
  eviction_policy = "Deallocate"
  max_bid_price   = 0.05  # Pay up to £0.05/hour

  # Savings: 60-90% vs standard VMs
}

Monthly Cost Review Process

  1. Week 1: Review Cost Management recommendations
  2. Week 2: Check for orphaned resources
  3. Week 3: Review VM utilisation
  4. Week 4: Update budgets and alerts

Simple spreadsheet tracking is fine for SMEs - you don't need expensive FinOps tools.

Budget Alerts

Set up alerts before you get surprised:

resource "azurerm_consumption_budget_subscription" "this" {
  name            = "monthly-budget"
  subscription_id = data.azurerm_subscription.this.id
  amount          = 5000
  time_grain      = "Monthly"

  notification {
    enabled        = true
    threshold      = 80
    operator       = "GreaterThan"
    contact_emails = ["[email protected]", "[email protected]"]
  }

  notification {
    enabled        = true
    threshold      = 100
    operator       = "GreaterThan"
    contact_emails = ["[email protected]", "[email protected]", "[email protected]"]
  }
}

Common SME Mistakes

  1. Over-provisioning "just in case" - Start small, scale up
  2. Ignoring Azure Advisor - Free recommendations, often good
  3. Premium storage for everything - Standard SSD is fine for most workloads
  4. Not using auto-shutdown - Dev VMs should stop at night
  5. Keeping old backups forever - Set retention policies

ROI Example

Typical SME (50 users, £3,000/month Azure spend):

OptimizationMonthly Savings
Right-size VMs£300-500
Hybrid Benefit£200-400
Dev shutdown£150-250
Delete orphaned£50-100
Total£700-1,250

That's 25-40% savings without major changes.


Need help optimising your Azure costs? Get in touch - we help SMEs reduce their cloud spend while maintaining performance.

How mature is your cloud cost management?

Take our free 2-minute FinOps maturity test and get a personalised improvement roadmap.