Acumatica · Azure

Azure Cost Optimisation — A Field Guide

Azure Cost Optimisation — A Field Guide is the work that turns a deploy into a system. The deployment is one moment; the system is the next 18 months of uptime, incidents, and.

John Kihiu12 min read

Azure cost optimisation follows the same general shape as any hyperscaler: rightsize what's running, commit to a discount plan for the steady-state baseline, and stop paying for storage and idle resources nobody is using. The Azure-specific tooling and pricing mechanics differ from AWS in the details, which matters if you're applying lessons learned on one cloud to the other.

Azure Advisor cost recommendations

Azure Advisor's cost tab is the starting point for almost every optimisation pass — it surfaces underutilised VMs based on actual CPU/memory metrics, unattached managed disks, idle App Service plans, and reservation opportunities, all without any extra setup beyond having Azure Monitor metrics flowing. Running Advisor's recommendations across a subscription that hasn't had a cost review recently routinely finds VMs sized for a peak load that never materialised.

BASH · AZ CLI COST QUERY
# List cost recommendations from Azure Advisor
az advisor recommendation list \
  --category Cost \
  --query "[].{Resource:impactedValue, Problem:shortDescription.problem, Solution:shortDescription.solution}" \
  --output table

Reserved Instances and Azure Savings Plans

Azure Reserved VM Instances offer up to roughly 60-72% off pay-as-you-go pricing for a 1- or 3-year commitment on a specific VM series in a specific region, while Azure Savings Plans for Compute (the newer, more flexible option) apply a discount to an hourly spend commitment across VM families, Azure Container Instances, and App Service, similar in spirit to AWS Compute Savings Plans. For workloads already using Reservations, exchanging or cancelling underused ones is possible but has limits, so start commitments conservatively and scale up once usage is proven stable.

Hybrid Benefit stacks with Reservations

Azure Hybrid Benefit lets you apply existing on-premises Windows Server or SQL Server licenses (with Software Assurance) toward Azure compute costs, and it stacks with Reserved Instances — for organisations migrating from on-prem with existing licenses, this combination is often the single largest available saving and is frequently left unclaimed.

Storage tiering and lifecycle management

Azure Blob Storage has Hot, Cool, Cold, and Archive access tiers, and a lifecycle management policy can automatically move blobs between tiers based on age or last-access time — the same idea as S3 lifecycle rules, with Azure's Archive tier being the cheapest but requiring a rehydration delay (hours) before data becomes readable again. Set lifecycle policies at the container level rather than relying on manual tier changes, since manual management doesn't scale past a handful of containers.

Right-sizing and auto-shutdown for non-production

Dev/test VMs and App Service plans left running 24/7 when they're only used during business hours are a recurring, fully avoidable cost. Azure DevTest Labs and simple auto-shutdown schedules on VMs (a built-in VM property, no extra tooling needed) cut non-production compute spend substantially when a workload genuinely only needs to run 40-50 hours a week instead of 168.

Budgets and alerts don't stop spend, they just notify

Azure Cost Management budgets with action-group alerts tell you when spend crosses a threshold — they do not automatically stop or scale anything unless you wire the alert to an Automation runbook or Logic App that takes action. A budget alert that nobody reads for two weeks doesn't save any money.

Tagging and cost allocation

Azure Cost Management's cost analysis view is only as useful as the resource tags applied to what it's analysing — without consistent environment, team, and project tags, a subscription-wide cost report tells you the total but not who to talk to about reducing it. Azure Policy can enforce tag presence at resource creation time, which is the only reliable way to keep tagging consistent across a team larger than a handful of people.

CategoryMechanism
Underused VMsAzure Advisor + rightsizing
Steady-state computeReserved Instances or Savings Plans
Existing on-prem licensesAzure Hybrid Benefit (stacks with Reservations)
Cold/rarely-accessed blobsLifecycle policy to Cool/Archive tier
Non-production computeAuto-shutdown schedules

Wrapping up

Azure cost optimisation is the same discipline as on any cloud — rightsize, commit where usage is stable, tier storage by access pattern, and shut down what doesn't need to run continuously — with the Azure-specific wrinkle that Hybrid Benefit is worth checking explicitly if the organisation has existing Windows or SQL Server licensing, since it's the easiest saving to miss entirely.

John Kihiu
Acumatica ERP Developer · Laravel Engineer

Independent software engineer in Nairobi specialising in Acumatica customisations, Laravel backends, and tax fiscalisation integrations across East and Southern Africa.