3 min read
Azure Cost Management: Control Cloud Spending
Azure Cost Management provides visibility into cloud spending. Analyze costs, set budgets, optimize resources—before the bill surprises you.
Cost Analysis
# Get current month costs
az consumption usage list \
--start-date 2020-11-01 \
--end-date 2020-11-07 \
--query "[].{Name:instanceName, Cost:pretaxCost}" \
--output table
Budgets
# Create budget with alerts
az consumption budget create \
--budget-name "Monthly-Limit" \
--amount 10000 \
--category Cost \
--time-grain Monthly \
--start-date 2020-11-01 \
--end-date 2021-10-31 \
--notifications '{
"Actual_GreaterThan_80_Percent": {
"enabled": true,
"operator": "GreaterThan",
"threshold": 80,
"contactEmails": ["finance@company.com"],
"contactRoles": ["Owner"]
},
"Forecasted_GreaterThan_100_Percent": {
"enabled": true,
"operator": "GreaterThan",
"threshold": 100,
"thresholdType": "Forecasted",
"contactEmails": ["alerts@company.com"]
}
}'
Cost Allocation Tags
# Tag resources for cost allocation
az tag create --resource-id /subscriptions/.../resourceGroups/myRG \
--tags CostCenter=Engineering Project=Alpha Environment=Production
# Query costs by tag
az consumption usage list \
--query "[?tags.CostCenter=='Engineering'].{Resource:instanceName, Cost:pretaxCost}"
Azure Advisor Recommendations
# Get cost recommendations
az advisor recommendation list \
--category Cost \
--output table
Common recommendations:
- Right-size underutilized VMs
- Delete unattached disks
- Purchase reserved instances
- Use spot VMs for batch workloads
Reserved Instances
Save up to 72% with 1-3 year commitments:
# View reservation recommendations
az consumption reservation recommendation list \
--scope subscription \
--look-back-period Last30Days
# Purchase reservation (via portal recommended)
| Term | Savings |
|---|---|
| 1 Year | ~35% |
| 3 Year | ~60% |
Spot VMs
# Create spot VM (up to 90% savings)
az vm create \
--name mySpotVM \
--resource-group myRG \
--priority Spot \
--eviction-policy Deallocate \
--max-price 0.05 \
--image UbuntuLTS
Auto-Shutdown
# Schedule VM shutdown
az vm auto-shutdown \
--resource-group myRG \
--name myVM \
--time 1800 \
--timezone "Pacific Standard Time"
Cost Export
# Export daily costs to storage
az costmanagement export create \
--name DailyCostExport \
--scope "/subscriptions/{sub-id}" \
--storage-account mystorageaccount \
--storage-container exports \
--timeframe MonthToDate \
--recurrence Daily \
--schedule-status Active
Power BI Integration
// Connect to Cost Management API
let
Source = AzureCostManagement.Contents(
"subscriptions/{subscription-id}",
[
Granularity = "Daily",
GroupBy = {"ResourceGroup", "ServiceName"}
]
)
in
Source
Cost-Saving Checklist
- Right-size VMs based on utilization
- Use reserved instances for steady workloads
- Use spot VMs for batch processing
- Auto-shutdown dev/test resources
- Delete unused resources
- Use appropriate storage tiers
- Implement resource lifecycle policies
- Set up budget alerts
Cost Management: visibility is the first step to optimization.