Back to insights
Cloud & Infrastructure

Azure Cost Governance: A Checklist for South African IT Teams

Azure spend drifts when nobody owns it. This checklist covers the controls Microsoft provides for budgets, tags, right-sizing and commitments, and the order in which to put them in place.

Most Azure bills are not high because the platform is expensive. They are high because resources were provisioned for a project, the project ended, and nothing was there to notice. A test environment left running, a disk that outlived its virtual machine, a database sized for a launch that never came: each is small, and together they are the gap between the invoice and the value received.

Our cloud and infrastructure page calls this the configuration gap. The cost controls are not missing; they are not switched on. This checklist works through the ones Microsoft provides, in the order we recommend applying them.

1. Set budgets, and understand what they do not do

Microsoft Cost Management lets you create a budget at management group, subscription or resource group scope, and for Enterprise Agreement and Microsoft Customer Agreement customers at billing account level too. Each budget needs at least one threshold and one email recipient, and can carry up to five of each.

Two details matter. First, a budget does not stop spending. Microsoft's documentation is explicit that resources are not affected and consumption is not stopped when a threshold is reached. A budget tells a named person that spend has crossed a line. If you want something to happen automatically, attach an action group at subscription or resource group scope and let it trigger your own automation.

Second, use forecasted alerts as well as actual ones. An actual-cost alert fires after the money is spent. A forecasted alert fires when projected spend for the period is expected to exceed the threshold, which leaves time to act within the same month. Budgets are evaluated every 24 hours and cost data takes between eight and 24 hours to appear, so treat alerts as a daily signal, not a real-time one.

Set one budget per subscription at minimum, and one per cost centre where resource groups map to teams.

2. Tag for ownership before you tag for anything else

A budget alert is only useful if someone knows which workload caused it. Three tags are usually enough to start: an owner, a cost centre and an environment such as production or test.

Tags applied by hand decay. Microsoft's Azure Policy tutorial on tag governance shows the pattern that holds: deny the creation of a resource group that lacks a cost centre tag, then use the policy modify effect to copy the resource group's tags onto any resource created inside it. Existing resources are not changed automatically; a remediation task applies the policy to what is already there.

Cost Management can also inherit subscription and resource group tags onto usage records without touching the resources. For EA, MCA and partner-plan customers, tag inheritance means cost analysis can be grouped by cost centre even where individual resources were never tagged. It applies to the current month's records within about 24 hours.

3. Act on Azure Advisor's right-sizing recommendations

Azure Advisor recommends three kinds of change to virtual machines and scale sets: shut down, resize or move to a burstable SKU. The shutdown recommendation targets machines that show under 3 percent CPU at the 95th percentile over seven days and under 2 percent outbound network use. The resize recommendation proposes a cheaper SKU that would still keep a user-facing workload under 40 percent CPU and 60 percent memory.

Advisor's figures come with caveats that Microsoft documents. Savings are calculated at retail rates, so they overstate what a discounted agreement would save. Reservations and savings plans are not taken into account, so resizing a machine across series can break existing commitment coverage and cost more. And a machine with low CPU may be a disaster recovery target, or waiting for a planned event, or depend on a metric Advisor does not measure. Dismiss or postpone those rather than ignoring the list.

The lookback window is configurable from seven to 90 days. For month-end workloads, use the longer window before deciding anything is idle.

4. Commit only once the estate is right-sized

Reservations and savings plans both discount a one- or three-year commitment, and they suit different workloads. A reservation fixes a specific instance family in a specific region and gives the greatest saving when it is fully used. A savings plan commits to an hourly spend on compute and applies automatically across regions, instance families and services, which suits workloads that change.

Microsoft's guidance puts the order plainly: right-size first, exchange underused reservations, trade underused reservations for savings plans where usage is variable, then buy new reservations for stable workloads and savings plans for the rest. Committing before step 3 above locks in the cost of machines you were about to shrink.

For workloads in South Africa North and South Africa West, check that the SKU you intend to reserve is one you will still be running in that region in three years. A savings plan carries less of that risk.

5. Review on a cadence, and record the decisions

Cost governance fails quietly when it is a one-off exercise. Put a monthly review on the calendar with three fixed inputs: the budget alerts that fired, the Advisor recommendations accepted or dismissed and why, and the commitment utilisation report. Record the decisions in the same place each month. When finance asks why Azure spend changed, the answer should be a dated note, not a reconstruction.

The same discipline applies to new workloads. Our article on Azure AI agent governance recommends tagging by owner, environment and cost centre and setting budgets before broad use. That is the general rule: a workload gets a budget and an owner tag before it gets production traffic.

Where this sits in a migration

If you are still planning a move to Azure, the cloud migration planning guide covers cost modelling before migration, and our Azure migration service includes right-sizing and cost controls in the handover. This checklist keeps those controls working after cutover, when the project team has moved on and the subscription is simply running.

Sources

Put budgets, tag policy and commitment reviews in place with OAS cloud and infrastructure services.

Keep exploring

All insights