TL;DR: AWS bakes a license fee into every Windows and SQL Server instance-hour — Windows roughly doubles the Linux rate; SQL Server Enterprise adds ~$4–5/hour, often more than the compute itself. If your org owns those licenses with Software Assurance, BYOL removes the markup entirely, and the free License Manager service is what keeps the entitlement count audit-proof (Microsoft true-ups against untracked cloud BYOL are routinely six figures). The one dividing line: SA acquired before October 2019 can BYOL on ordinary shared tenancy; after, it needs Dedicated Hosts.
The numbers
- t3.xlarge: ~$0.166/hr Linux vs ~$0.36/hr Windows — the delta is pure license fee
- SQL Server Enterprise License Included ≈ $43k/year per r5.4xlarge in license fees alone
- Field examples: a 220-instance Windows fleet went from $40k to $19k/month by BYOL-ing against an already-paid EA; a SaaS moved 8 SQL Server Enterprise instances to BYOL against shelved licenses — ~$340k/year recovered
- License Manager itself: free — AWS wants BYOL tracked properly
Do this
-
Map the estate:
describe-instancesgrouped by platform/usage-operation shows exactly which instances carry License Included billing codes, and RDSLicenseModelcovers the database side. -
Pull the entitlement facts from your Microsoft EA: what you own, with or without Software Assurance, and the acquisition dates (the pre/post-October-2019 line decides shared tenancy vs Dedicated Hosts).
-
Declare entitlements in License Manager first, migrate second: define the license configuration (count, type, tenancy rule), associate it with AMIs/launch templates, and enable enforcement mode so a launch that would exceed the entitlement is rejected rather than silently non-compliant.
-
Migrate steady-state production fleets in batches — stop, switch billing to BYOL, start, verify the License Manager count ticks up. Leave ephemeral/autoscaling Windows on License Included; tracking entitlements across churn isn't worth the premium saved.
-
Keep the compliance exports (3–5 years, matching vendor audit windows) — when the auditor asks "how do you track this?", the report is the answer.
Gotchas
- Post-2019 licenses → Dedicated Hosts, which are per-host-priced and need utilization planning; still clearly worth it for SQL Server, marginal for plain Windows. Pair with Dedicated Host Reservations if you go this route.
- RIs cover compute, not licenses — a Windows License-Included RI is a different SKU from a Linux RI running BYOL Windows; don't mix the math.
- Tenancy mismatches are violations License Manager flags but only blocks in enforcement mode.
- Oracle BYOL is real but legally sharp-edged — the tracking is the easy half; get the contract interpreted by a specialist before migrating.
- No SA at all (OEM licenses) = no BYOL — consider RDS/Aurora PostgreSQL migration instead for SQL Server workloads.
Skip this if
- Your estate is Linux and open-source databases — there's nothing to track; skip the service entirely.
- The Windows footprint is under ~10 ephemeral instances — the License Included premium is the price of simplicity.
- The licenses lack Software Assurance — the lever doesn't exist; the cost play becomes engine migration, not BYOL.