App Service and Functions cost optimization on Azure comes down to matching the hosting model to the workload. App Service is billed by the plan you run, not by the number of apps on it, so density is your friend. Functions can run on a consumption model that bills per execution or on a plan that bills for reserved capacity, and choosing the wrong one is the most common source of waste in serverless estates.
This article is part of our Azure cluster. For the full picture, start with our complete guide to Azure cost optimization, the pillar this piece links up to. PaaS efficiency is the Cut step of our See, Cut, Lock, Run method applied to managed application hosting.
An App Service plan is billed for its compute capacity whether you run one app or ten on it. So consolidating compatible apps onto a well-sized plan, rather than giving each its own, is often the single largest App Service saving available.
Pick the right App Service plan tier
App Service plans range from Free and Shared, through Basic, Standard, and Premium, to Isolated for network-isolated environments. The premium and isolated tiers cost a multiple of the standard tiers and exist for specific needs: higher scale, better hardware, deployment slots, and network isolation. The frequent waste is Premium chosen by default for apps that would run fine on Standard, paying for scale and features the workload never uses. Map each app's real requirements, latency, scale, isolation, deployment slots, to the lowest tier that meets them.
Then size the plan. A plan running at single-digit CPU across the day is over-provisioned. Read utilization over a couple of weeks and resize the plan down, or consolidate apps onto it, applying the same rightsizing discipline used across the estate.
Increase density before adding plans
Because billing is per plan, the cheapest new app is one that shares an existing, under-utilized plan rather than getting its own. Group apps with complementary load onto shared plans, keeping isolation only where it is genuinely required for security or noisy-neighbor reasons. The most common App Service sprawl we find is dozens of small apps each on their own Basic or Standard plan, where a handful of well-packed plans would carry the same workload at a fraction of the cost.
App Service and Functions bill creeping up?
Our Azure cost audit maps every plan and function, flags over-tiered plans and mis-hosted functions, and models the consolidation and hosting moves available. On the performance model, you pay only from realized savings. No savings, no fee.
Book an Azure cost audit →Match the Functions hosting model to traffic
Azure Functions can run on several hosting models, and the cost difference between them is large. The Consumption plan bills per execution and resource consumption with a free grant, scales to zero, and is ideal for spiky, low-to-moderate, or intermittent workloads where you do not want to pay for idle capacity. The Premium plan and dedicated App Service hosting provide pre-warmed instances and predictable performance for high-throughput or latency-sensitive functions, but they bill for reserved capacity whether traffic arrives or not. Newer flex consumption options aim to combine scale-to-zero with more control.
The waste pattern is a low-traffic function parked on a Premium plan paying around the clock, or a high-throughput function on Consumption hitting cold starts and per-execution costs that would be cheaper on a plan. Profile the traffic, then put each function on the model its pattern justifies. The same scale-to-zero logic that helps serverless databases applies here.
Trim the supporting costs
Functions and App Service drag along a storage account, Application Insights telemetry, and sometimes a dedicated plan for slots. Application Insights in particular can become a surprising line item at high log volumes, which connects to the broader monitoring-cost discipline. Set sampling and retention deliberately rather than ingesting everything, and clean up storage and slots that outlived their purpose.
| Workload | Best fit | Why |
|---|---|---|
| Spiky / intermittent function | Consumption plan | Scales to zero, pay per execution |
| High-throughput / low-latency function | Premium or dedicated | Pre-warmed, predictable performance |
| Several compatible web apps | Shared, well-sized plan | Per-plan billing rewards density |
| Network-isolated app | Isolated tier (only if required) | Pay the premium only when needed |
Plan tiers and Functions hosting models above reflect Azure as of May 2026. Verify current tiers, the consumption grant, and hosting options in Azure documentation before changing production apps, as the service evolves.
The Azure Cost Optimization Field Guide includes the plan consolidation worksheet and the Functions hosting decision tree we use on engagements. It is the downloadable companion to this article.
The short version
Choose the lowest App Service tier that meets each app's real needs, pack compatible apps densely onto shared plans, host each function on the model its traffic justifies, and trim the storage and telemetry around them. For the container side of the same estate, see AKS cost optimization. When you want it run across every plan and function at once, that is exactly what our Azure cost optimization service delivers.