Determining the Number of Required ESU Licenses
| Product family | Lifecycle |
|---|---|
| Document source | Lifecycle |
| Guide type | Reference Guide |
| Skill level | Intermediate to advanced |
| Time | 15 - 60 minutes depending on environment |
This page documents Determining the Number of Required ESU Licenses for engineers working with Lifecycle. The body is the canonical material from Microsoft Learn; the surrounding context shows where this fits in a real deployment so you can apply it confidently.
Reference content from Microsoft documentation
End-of-support work is the boring, unglamorous IT job that quietly saves companies from headline-grade breaches. I've spent the better part of seven years migrating workloads off Server 2008 R2, then 2012 R2, then SQL 2012 - and most of the lessons are the same. Determining the Number of Required ESU Licenses is one of those notices you cannot ignore.
I've seen this fail when an enterprise treats EOL as a single migration sprint instead of a 6-9 month programme. Below is the practical playbook plus the canonical Microsoft framing, so you can plan a defensible exit before the support clock runs out.
Determining how many ESU licenses you actually need
Extended Security Updates are licensed per physical core on Windows Server, and per virtual core on supported virtualization stacks. The license math is straightforward but easy to get wrong.
- Count physical cores on each host - not logical processors. A dual-socket box with 16-core CPUs has 32 cores.
- Minimum license: 16 cores per server even if it has fewer physical cores. This is the Microsoft minimum-license rule.
- For VMs: each VM needs ESU licensing equal to its assigned vCPU count, minimum 8 vCPU per VM.
- If you run on Azure VMs, ESU is included free for the eligible products - no separate purchase.
Price frame
- Year 1 ESU (Windows Server 2012): around USD 75 per core. For a 16-core minimum: USD 1,200 (~₹1.0 lakh).
- Year 2: doubles. Around USD 150 per core. USD 2,400 minimum (~₹2.0 lakh).
- Year 3: doubles again. USD 300 per core. USD 4,800 minimum (~₹4.0 lakh).
For a 40-server estate, Year 3 ESU on-prem easily exceeds USD 200,000. That math is exactly why Azure rehost wins the conversation in most cases.
# Inventory cores via PowerShell across hosts (Hyper-V example)
Invoke-Command -ComputerName (Get-Content hosts.txt) -ScriptBlock {
Get-CimInstance Win32_Processor |
Select-Object PSComputerName, NumberOfCores, NumberOfLogicalProcessors
}
Rollback and day-2 ops
- For every workload moved, keep a snapshot of the source system for at least 30 days. Cheap insurance.
- Document the migration runbook in your team wiki - including the exact CLI commands you ran, not paraphrased.
- Tag every migrated Azure resource with
migration-waveandsource-systemtags. Future-you will need them when costs spike.
What I watch after rollout
- Microsoft Defender for Cloud secure score for the new resources.
- Azure Cost Management for unexpected new charges - especially storage and egress.
- Application telemetry from the migrated workloads. Latency p95 should match or beat the on-prem baseline within two weeks.
Related work in your environment
- Cross-check the dates above with the official Microsoft Lifecycle Policy site; Microsoft does revise dates and we update this page on a rolling cadence.
- Document the EOL product list and its replacement path in your team's architecture review document.
- Schedule a quarterly lifecycle audit. It is the single cheapest control against last-minute migration panics.
FAQ
References
- Microsoft Learn - official documentation for Lifecycle
- Microsoft tech community forums and Q&A
- Azure / Microsoft 365 service health dashboards
Related fixes
Related guides worth a look while you sort this one out:
- ESU Availability and End Dates
- Add required configurations to Azure OpenAI resource
- Step 3: Connect a custom key (required)
- Follow a secure container lifecycle as you deploy and run containers with Azure Policy for Kubernetes
- Reduce the number of canvas refreshes due to data updates
- Implement the steps of the machine learning lifecycle in Azure Monitor Logs