Azure Cost Optimization for MSPs

Why Cost Optimization Matters for MSPs

Cost optimization isn't just about reducing client bills – it's about maximizing value, demonstrating expertise, and protecting margins. For MSPs, effective optimization:

  • Strengthens client relationships through demonstrated value
  • Maximizes Partner Earned Credit (PEC) through active management
  • Creates upsell opportunities for optimization services
  • Differentiates from competitors who simply resell Azure
  • Protects margins when using fixed-fee billing models

The MSP Optimization Framework

1. Discovery & Assessment

Before optimizing, understand the current state.

Data Collection

  • 30-90 days of Azure consumption data
  • Workload inventories and criticality ratings
  • Business requirements (SLAs, compliance, growth plans)
  • Current pain points and cost concerns

Analysis Questions

  • Which resources run 24/7 vs. intermittently?
  • What are the production vs. dev/test splits?
  • Where is data stored and transferred?
  • What licenses already exist (for Azure Hybrid Benefit)?
  • What's the disaster recovery strategy?

Tools

  • Azure Cost Management (historical spending)
  • Azure Advisor (automated recommendations)
  • Resource graph queries (inventory)
  • Workbooks and dashboards (visualization)

2. Quick Wins

Implement these high-impact, low-effort optimizations first.

Delete Unattached Disks

  • Orphaned managed disks from deleted VMs
  • Storage costs continue even when unused
  • Use Azure Advisor or Cost Management to identify
  • Verify no backup/recovery need before deletion

Savings: $10-100 per disk per month

Right-Size Over-Provisioned VMs

  • VMs with consistently low CPU/memory usage
  • Downsize to smaller VM series
  • Test in dev/test first, then production
  • Monitor performance post-change

Savings: 30-50% on affected VMs

Enable Auto-Shutdown for Dev/Test

  • Automatically shut down VMs at 7 PM, restart at 8 AM
  • Reduces dev/test compute costs by ~60%
  • Built-in Azure feature, easy to configure
  • Override capability for occasional after-hours work

Savings: 60% on eligible VMs

Optimize Storage Tiers

  • Move infrequently accessed data to Cool or Archive tiers
  • Blob Storage tiering based on access patterns
  • Use lifecycle management policies to automate
  • Review access logs to identify candidates

Savings: 50-90% on applicable storage

Release Unused Public IPs

  • Public IP addresses cost ~$3-4/month each
  • Check for IPs not associated with resources
  • Delete if not needed for future use

Savings: $3-5 per IP per month

3. Commitment-Based Discounts

Leverage Reserved Instances and Savings Plans for stable workloads.

Reserved Instance Strategy

Identification

  • Use Azure Advisor RI recommendations
  • Analyze 30-60 day usage for consistent patterns
  • Target VMs running >40-50% of the time

Purchasing Approach

  • Start with 60-70% coverage (leave room for flexibility)
  • 1-year commitments for uncertain workloads
  • 3-year for stable production systems
  • Use instance size flexibility feature

Monitoring

  • Track RI utilization monthly (target >85%)
  • Exchange RIs if workload patterns change
  • Report savings to clients

Savings: 40-72% on committed VMs

Savings Plans

  • Consider for diverse workloads across regions
  • Simpler management than multiple RIs
  • Better for dynamic environments
  • Requires sophisticated cost allocation

Client Communication

"Based on your usage patterns, purchasing a 1-year Reserved Instance for these 10 VMs would save approximately $15,000 annually. I recommend starting with 8 RIs to maintain some flexibility for growth."

4. Architectural Optimization

Design-level changes for long-term savings.

PaaS vs. IaaS Migration

  • Move from VMs to App Services, Azure SQL, Cosmos DB
  • Reduce management overhead
  • Often more cost-effective at scale
  • Leverage serverless where applicable

Example: Migrating SQL Server VM to Azure SQL Database Managed Instance

  • Eliminates OS management
  • Built-in high availability
  • Automatic backups
  • 30-40% cost reduction in many scenarios

Serverless Adoption

  • Azure Functions for event-driven workloads
  • Pay only for execution time
  • Automatic scaling
  • Ideal for scheduled jobs, APIs with variable traffic

Storage Optimization

  • Use appropriate storage types (Blob vs. File vs. Disk)
  • Implement CDN for static content
  • Archive old backups (long-term retention)
  • Use compression where possible

Network Optimization

  • Minimize cross-region data transfer (expensive)
  • Use VNet peering vs. VPN tunneling where possible
  • Implement Azure Front Door or Application Gateway for traffic optimization
  • Review ExpressRoute vs. VPN economics

5. Governance & Policy

Prevent cost overruns through proactive controls.

Azure Policy

  • Restrict expensive VM sizes in dev/test
  • Require tags on all resources (for cost tracking)
  • Block resources in high-cost regions
  • Enforce disk SKU standards (no Premium in dev/test)

Budget Alerts

  • Set at subscription and resource group levels
  • 50%, 80%, 100% thresholds
  • Email alerts to MSP and client stakeholders
  • Consider action groups for automated responses

Resource Locks

  • Prevent accidental deletion of critical resources
  • Avoid recreating resources (and losing RI discounts)
  • Use "CanNotDelete" locks on production resources

Naming and Tagging Standards

  • Mandatory tags: Environment, Owner, CostCenter, Project
  • Enables accurate cost allocation
  • See Azure Tagging Strategies for detailed guidance

6. Continuous Monitoring

Optimization is ongoing, not one-time.

Weekly Tasks

  • Review Cost Analysis for anomalies
  • Check Azure Advisor recommendations
  • Monitor budget alerts

Monthly Tasks

  • Comprehensive cost report to client
  • Implement new Advisor recommendations
  • Review RI/Savings Plan utilization
  • Identify new optimization opportunities

Quarterly Tasks

  • Deep architecture review
  • Reassess RI/Savings Plan strategy
  • Evaluate new Azure services for potential savings
  • Review and update budgets

Optimization Techniques by Service

Virtual Machines

Right-Sizing

  • Use VM Insights to track CPU, memory, disk I/O
  • Downsize if <20% average utilization
  • Consider Bs-series (burstable) for low, intermittent usage

Auto-Scaling

  • VM Scale Sets for variable load
  • Scale in/out based on demand
  • Pay only for capacity needed

Spot VMs

  • Use for batch processing, dev/test
  • Up to 90% savings
  • Requires eviction-tolerant workloads

Azure Hybrid Benefit

  • Apply existing Windows Server licenses
  • Apply SQL Server licenses
  • 40-55% savings on applicable VMs

Storage

Tiering

  • Hot tier: Frequently accessed data
  • Cool tier: Infrequently accessed (30+ days)
  • Archive tier: Rarely accessed (180+ days)

Lifecycle Policies

  • Automatically move blobs to cheaper tiers based on age
  • Delete old snapshots after retention period
  • Archive logs after 90 days

Redundancy Optimization

  • Use LRS (Locally Redundant Storage) for non-critical data
  • GRS/RA-GRS only when geographic redundancy required
  • Avoid over-paying for redundancy

Databases

Right-Sizing DTUs/vCores

  • Monitor database performance metrics
  • Scale down during off-peak hours (if business allows)
  • Use elastic pools for multiple small databases

Serverless SQL Database

  • Auto-pause during inactivity
  • Auto-scale compute based on usage
  • Ideal for intermittent workloads

Reserved Capacity

  • 1 or 3-year commitments for vCore models
  • 30-50% savings vs. pay-as-you-go

Networking

Minimize Data Transfer

  • Avoid cross-region traffic
  • Use Azure CDN for global content delivery
  • Collocate related resources in same region

VPN vs. ExpressRoute

  • VPN: $25-30/month (sufficient for many SMB scenarios)
  • ExpressRoute: $50-1,000+/month (required for high bandwidth or latency-sensitive apps)
  • Right-size for actual requirements

Load Balancer vs. Application Gateway

  • Standard Load Balancer: $18/month base
  • Application Gateway: $125/month base (but more features)
  • Use appropriate service for need

Building an Optimization Practice

Service Packaging

Bronze: Basic Optimization ($500-1,000/month)

  • Monthly Azure Advisor review
  • Quarterly optimization recommendations
  • Budget alert configuration

Silver: Active Optimization ($1,500-2,500/month)

  • Everything in Bronze
  • Monthly right-sizing implementation
  • RI/Savings Plan management
  • Lifecycle policy implementation

Gold: Continuous Optimization ($3,000-5,000/month)

  • Everything in Silver
  • Weekly cost reviews
  • Proactive architecture optimization
  • Cost allocation and chargeback management
  • Custom automation scripts

Client Reporting

Monthly Optimization Report Template

Executive Summary

  • Total Azure spend (vs. previous month)
  • Savings achieved this month
  • Cumulative savings year-to-date
  • Top optimization recommendations

Implemented This Month

  • RI purchases ($X saved/month)
  • VMs right-sized ($X saved/month)
  • Storage optimizations ($X saved/month)

Pending Opportunities

  • Recommended actions with estimated savings
  • Client approval required items
  • Scheduled future optimizations

Appendix

  • Detailed cost breakdown
  • Azure Advisor screenshots
  • Utilization charts

Tracking ROI

Document savings to justify your fees and retain clients.

Calculate Total Savings

  • Compare current spending to pre-optimization baseline
  • Include all optimizations: RIs, right-sizing, deletions
  • Track monthly and cumulative savings

Example ROI Presentation

"Since engaging our optimization services 6 months ago:

  • Azure spend reduced from $12K/month to $8K/month
  • $24,000 saved year-to-date
  • Our $15,000 fees delivered $9,000 net savings
  • ROI: 160%"

Avoiding Optimization Pitfalls

Pitfall 1: Optimizing Without Testing

  • Always test right-sizing in dev/test first
  • Monitor performance post-change
  • Have rollback plan

Pitfall 2: Over-Optimizing

  • Don't sacrifice performance for cost
  • Leave headroom for growth and spikes
  • Balance cost vs. risk

Pitfall 3: Ignoring Client Business Context

  • Understand why resources are sized as they are
  • Some "waste" may be intentional (disaster recovery, failover capacity)
  • Align optimization with business priorities

Pitfall 4: One-Time Optimization

  • Costs creep back without ongoing management
  • New resources deployed without optimization
  • Continuous process, not project

Pitfall 5: Not Documenting Decisions

  • Keep records of what was optimized and why
  • Document client approvals
  • Track changes for troubleshooting

Advanced Optimization Strategies

Automation with Azure Functions

Create serverless functions to:

  • Auto-shutdown idle VMs after hours
  • Generate daily cost reports
  • Alert on anomalous spending
  • Clean up orphaned resources

See Azure Billing APIs & Automation for implementation.

Multi-Cloud Cost Optimization

For clients using AWS or GCP in addition to Azure:

  • Unified cost visibility across clouds
  • Workload placement optimization (run where cheapest)
  • Leverage multi-cloud FinOps tools

FinOps Methodology

Implement Cloud FinOps practices:

  • Cross-functional collaboration (IT, Finance, Business)
  • Real-time cost visibility
  • Culture of cost accountability
  • Continuous optimization cycles

Optimization Metrics to Track

Cost Metrics

  • Month-over-month cost variance
  • Cost per workload/application
  • Wasted spend (unused resources)

Efficiency Metrics

  • Reserved Instance utilization
  • Right-sizing opportunities implemented
  • Average VM CPU/memory utilization

Business Metrics

  • Cost savings delivered
  • Cost avoidance (prevented overspending)
  • Optimization ROI

Next Steps

  • Implement Azure Tagging Strategies for better cost allocation
  • Use Azure Cost Management Tools for monitoring
  • Automate with Azure Billing APIs & Automation
  • Review Azure Pricing Models for commitment opportunities

Cost optimization is MSP differentiator. Do it well, document results, and clients will see you as indispensable.