Azure cloud infrastructure
Cloud Azure Cost Optimisation

5 Ways to Cut Your Azure Bill Right Now

Stop overpaying. These five structural changes - from Container App architecture to Cloudflare Tunnel - can cut 20–40% off your monthly Azure spend today.

P
Pratik Khanapurkar · Co-founder, DestinPQ
July 18, 2026 · 6 min read
Audio summary · ~2 min
Audio summary · Azure Cost Optimisation

Five fixes for Azure overspend - from Container Apps to Cloudflare Tunnel.

38%
avg cloud overspend in mid-size SaaS teams from over-provisioning alone
5 fixes
structural changes that don't require a rewrite - just better defaults
20–40%
typical bill reduction after applying tips 1 and 2 alone

Azure is genuinely powerful. It is also easy to overpay - not because the pricing is unfair, but because the defaults favour flexibility over economy. Most cost leaks I see in production come from structural choices made early, before anyone was watching the bill. Here is what to audit first.

The 5 Fixes
1

Don't use Container Apps for single-app deployments

Azure Container Apps is built around running many containers with shared infrastructure: networking, ingress, autoscaling, and service-discovery all managed for you. That overhead makes sense when you're running five or ten services that need to talk to each other. It makes less sense when you're deploying a single Node or Python app on a droplet equivalent.

For a single-app workload, a B-series VM - a B1ms at under $15/month - usually costs less once you account for the Container Apps environment minimum, consumption costs, and the active/idle billing model. The VM is predictable. You pay a fixed number regardless of request volume.

Server rack infrastructure

Rule of thumb

Container Apps = right when you have multiple services sharing an environment. Single workload = reach for a VM or App Service and compare the SKU cost directly.

2

Right-size your VMs and containers

Over-provisioning is the single most common cloud waste pattern. Engineers pick a size that feels safe at deployment, then never revisit it. CPU and RAM sitting at 8% utilisation are money on the table.

Look at actual metrics before picking a size. Azure Monitor gives you CPU and memory time-series for any VM. If your p95 CPU over 30 days is under 20% and you're on a D4s v3, you probably belong on a D2s v3. That's roughly half the price for the same behaviour at your actual load. Don't use a sword to cut a cake.

VM SKU vCPU / RAM Est. monthly (Linux, East US)
D4s v3 (typical default) 4 vCPU / 16 GB ~$140
D2s v3 (right-sized) 2 vCPU / 8 GB ~$70

Pay-as-you-go pricing. Exact figures vary by region and commitment tier.

3

Monitor app health properly - don't rely on basic probes

Azure's built-in health probes are blunt. They tell you whether a port is open and whether an HTTP endpoint returns a 200. They do not tell you whether your app is stuck in a restart loop, leaking memory, or hitting a dependency timeout every 30 seconds.

Hidden restarts are a real cost driver. If your app restarts four times per hour, Azure is spinning it back up on compute you're paying for - and your health probe never catches it because the port comes back fine. Add PM2 on VMs: process-level restart counts, CPU per process, and a persistent log stream. Pair with structured logging to Azure Log Analytics or an equivalent.

What to watch

PM2 restart count per 24h, p95 response time from Azure Monitor, error rate in Application Insights. If restarts exceed ~3/day on a stable app, something is quietly costing you money.

4

One VNet per VM - stop multiplying IPs and tunnels

Network cables and infrastructure

Each public IP in Azure has a small but real cost (~$3.65/month per static IP). The bigger problem is what accumulates when you assign multiple IPs or create extra tunnels per VM - NAT gateway processing, egress charges across peered VNets, and routing complexity you pay for on every traffic crossing.

Cleaner architecture: one VNet per VM (or small cluster), single public IP, internal DNS via private DNS zones, traffic staying within the VNet wherever possible. Inter-VNet peering is cheap. Extra NAT gateways and extra public endpoints are not.

Preferred topology
VNet-A → VM-1 (1 public IP)
VNet-B → VM-2 (1 public IP)
VNet peering for inter-VM traffic - no extra NAT gateway
❌ Avoid: multiple NICs per VM, extra public IPs, VPN gateway just for internal traffic
5

Replace Nginx + per-app SSL with Cloudflare Tunnel

Nginx as a reverse proxy is a default many teams never revisit: one VM, Nginx on 443, routing to multiple apps on internal ports, each needing its own SSL certificate. CPU overhead creeps up as TLS termination runs on every request, on your compute, on your bill.

Cloudflare Tunnel flips this. Install cloudflared on your VM, it opens an outbound tunnel to Cloudflare's edge, and Cloudflare handles all TLS - one wildcard cert, managed for free. Your VM never exposes port 443. Nginx, if you keep it, does plain HTTP on localhost - far cheaper on CPU. On a small VM with moderate HTTPS traffic, TLS offload can shift your CPU baseline 10–25%.

❌ Nginx + per-app SSL

  • TLS termination on your CPU
  • One cert per domain to renew
  • Port 443 exposed publicly
  • Config sprawl as apps grow

✓ Cloudflare Tunnel

  • TLS offloaded to Cloudflare edge
  • Wildcard cert, zero management
  • No public port exposed at all
  • Free on Cloudflare Free plan
🎁 Bonus

Free ChatGPT (GPT-3.5) with Azure Student Subscription

Azure for Students gives you $100/year in credits - no credit card required. That covers Azure OpenAI Service with GPT-3.5-Turbo, stretching to millions of tokens per month within the student credit. If you're a student building with AI and paying out of pocket, set this up first. Comment AZURE below for the setup guide.

Want templates and a cost audit checklist?

Drop a comment with AZURE and I'll send you a free 1-page Azure cost audit - the exact items I check first for any client environment.

P
Pratik Khanapurkar
Co-founder, DestinPQ

Builds AI-powered products for businesses across healthcare, hospitality, and professional services. Writes about practical AI adoption, real model costs, and what actually works in production.

All posts →