Cloud Migration Costs: Building an Honest TCO, Avoiding Data Transfer Traps, and Licensing
How to build a cloud migration TCO that holds up: what to count, data transfer and NAT charges, Microsoft and Oracle licensing rules, and when to stay put.

Cloud migration business cases tend to be optimistic in the same places: they compare cloud list prices against a full hardware refresh, leave out data transfer and the months of running both environments, and assume licenses can move for free. Then the first year's bills arrive. This guide covers what to count, where the surprises usually come from, and how to decide which workloads should move at all. For controls after the move, see our cloud cost governance guide, and for ongoing savings, our cloud cost optimization guide.
What to count
A fair comparison covers the same period, usually three to five years, on both sides.
| Current environment | Cloud |
|---|---|
| Server, storage, and network hardware, with refresh cycle | Compute, storage, and managed services at the pricing you will actually pay |
| Data center space or colocation fees | Data transfer: internet egress, cross-zone, NAT, and interconnect |
| Power and cooling | Software licenses, BYOL or included |
| Software licenses and support contracts | Support plan (often a percentage of spend) |
| Backup and disaster recovery | Backup, snapshots, and cross-region replication |
| Operations staff time | Staff time, including new skills and FinOps |
| Migration labor, tools, and consultants | |
| Running both environments during migration |
Two timing questions often decide the answer. When does your hardware need replacing, and when does your data center or colocation contract end? Migrating just before a refresh avoids a capital purchase; migrating right after one strands it.
Cloud providers also fund migrations. AWS's Migration Acceleration Program is designed to offset initial migration costs, Microsoft's Azure Accelerate offers partner funding and Azure credits, and Google's RaMP offers partner funding and migration incentives, all for qualifying projects. Ask before you start, and model the credits as a one-time offset, not a permanent discount.
Which workloads to move, and how
- Rehost (lift and shift) is fastest and least likely to save money on its own. Instances sized to match old servers run around the clock at on-demand rates.
- Replatform swaps pieces for managed services, such as a managed database, which cuts operational work.
- Refactor redesigns for autoscaling or serverless, which saves the most on variable workloads and costs the most engineering time.
- Retain leaves stable, predictable workloads where they are when the numbers do not favor moving.
- Retire switches off applications nobody uses. Discovery often finds more of these than expected.
Right-size before moving. Measure actual CPU and memory use over several weeks, including peaks, and size to that plus headroom instead of matching the old server specification.
Steady, predictable workloads are where the cloud is hardest to justify. Some companies, 37signals being the best-known example, have publicly documented moving such workloads back to their own hardware after comparing costs; 37signals projected savings of about $10 million over five years, which is one company's figure for its own workloads, not a benchmark. Variable, spiky, or fast-growing workloads usually benefit more.
Data transfer: the most common surprise
Data in is generally free. Data out and data moving inside the cloud is not. AWS list prices in US regions give a sense of scale (as of September 2026):
- internet egress: about $0.09 per GB for the first 10 TB a month, after a 100 GB monthly free allowance, with lower rates at higher volumes
- traffic between availability zones: $0.01 per GB in each direction
- NAT gateways: about $0.045 per GB processed, plus an hourly charge
An illustration of the classic mistake: a company moves its database to the cloud but leaves the application servers on premises. If the application pulls 50 TB a month back from the database, internet egress costs roughly $4,400 a month, and every query now crosses the internet, adding latency. Moving tightly connected systems together in the same migration wave avoids both.
The NAT charge catches teams out in a different way: 50 TB a month of instance traffic to the internet or to other services through a NAT gateway adds about $2,300 a month in processing fees on top of any egress. VPC endpoints for services such as S3 avoid much of that.
Other ways to cut transfer costs:
- use a CDN for content served to users
- keep chatty services in the same zone where resilience allows
- use private interconnects (Direct Connect, ExpressRoute, Cloud Interconnect) for large steady flows to your offices or data centers, which carry lower per-GB rates
- compress and batch data movement

Licensing
Software licenses can outweigh infrastructure in the business case.
Microsoft. Since October 1, 2019, licenses bought without Software Assurance and mobility rights cannot be deployed on dedicated hosted cloud services at Microsoft's "Listed Providers," which are Microsoft itself, Alibaba, Amazon, and Google. SQL Server and some other server products can run on shared cloud instances elsewhere through License Mobility with Software Assurance. On Azure, Azure Hybrid Benefit lets you apply eligible Windows Server and SQL Server licenses. The result is that the same licenses can be cheaper to use on Azure; model each option with your licensing partner.
Oracle. Oracle's cloud licensing policy for its authorized cloud environments (AWS EC2 and RDS, Azure, Google Cloud) counts two vCPUs as one processor license when multi-threading is enabled, and one vCPU as one license when it is not. Standard Edition products have their own socket and vCPU limits. Oracle audits are common, so document your counting.
VMware. Broadcom's changes to VMware licensing after it completed the acquisition on November 22, 2023, including the end of perpetual licensing and the move to subscription bundles, pushed many companies to reassess whether to renew, move to a public cloud, or switch platforms. Price the renewal before assuming the on-premises cost is fixed.
Switching engines. Moving from a commercial database to a managed open source engine such as PostgreSQL can remove license costs entirely, but it is a real engineering project, not a configuration change.
Pricing after the move
- On demand for new and uncertain workloads until usage settles.
- Savings Plans, reserved instances, and committed use discounts for the steady baseline, bought centrally once you know it. AWS advertises savings of up to 72% for Savings Plans compared with on-demand prices, depending on term and payment option.
- Spot capacity for interruptible work such as batch jobs and CI, at deep discounts with the risk of termination on short notice.
Avoid buying multi-year commitments before migration is complete. Usage shifts as you right-size and modernize, and unused commitments are hard to unwind.
Leaving later
Exit costs used to be a strong lock-in. In 2024 Google (January), AWS (March), and Microsoft began waiving internet data transfer fees for customers moving their data out entirely, with notice, time limits, and conditions such as closing your accounts. In the EU, the Data Act lets providers charge only for the costs of switching and egress until January 12, 2027 and removes those charges from that date. Keep workloads portable where it is cheap to do so: containers, infrastructure as code, and standard data formats. See our multi-cloud strategy guide.

A migration cost checklist
- Inventory applications and their dependencies; flag candidates to retire.
- Measure actual utilization for several weeks.
- Build a three- to five-year comparison including both environments during transition.
- Model data flows between systems and to users, and price egress, cross-zone, and NAT traffic.
- Confirm licensing rights for each commercial product on each target cloud.
- Ask your provider about migration credits and funding.
- Group dependent systems into the same migration wave.
- Set budgets, tags, and anomaly alerts before the first workload lands.
- Buy commitments only after usage stabilizes.
Flexera's 2026 State of the Cloud report found organizations estimate 29% of their cloud spend is wasted. Most of that waste is set in the first months after migration, which is why the planning matters.
This guide is for informational purposes only. Cloud pricing and software licensing terms change frequently and vary by agreement; confirm current terms with providers and licensing specialists before making migration decisions.



