On-prem to AWS migration cost: what the move actually costs
Migrating from a data center to AWS has a one-time project cost and a new ongoing run cost that replaces your capital spend. Understanding both, and how they compare to on-prem, is essential before you commit. Here is the breakdown.
Quick answer
An on-prem to AWS migration has two cost layers: a one-time migration project cost (assessment, re-platforming, data transfer, testing, dual-running during cutover, and team time) and a new ongoing cloud run cost that replaces your capital-heavy data center spend with usage-based operating spend. The move is cost-effective when cloud elasticity, managed services, and commitments make the ongoing run cost lower than the fully-loaded on-prem cost, but a naive lift and shift can cost more to run than the data center it replaced.
Moving from a data center to AWS is not just a technical project, it is a shift in how you pay for computing, from capital expenditure on owned hardware to operating expenditure on usage. To decide whether it saves money, you have to account for both the one-time cost of getting there and the new ongoing cost of running there, and compare the latter honestly against your true on-prem cost.
The one-time migration cost
| Cost item | What it covers |
|---|---|
| Assessment and planning | Inventory, dependency mapping, design |
| Re-platforming | Rehosting or refactoring workloads |
| Data transfer | Moving data into AWS |
| Dual-running | Paying for both during cutover |
| Testing and team time | Validation and engineering effort |
The migration project itself costs real money: assessing and planning, re-platforming each workload, moving the data, running both environments in parallel during cutover, and the engineering time throughout. The choice between lift and shift and refactoring drives much of this one-time cost, faster rehosting versus slower re-architecting.
The new ongoing run cost
After migration, you pay AWS for what you use each month instead of amortizing owned hardware. Done well, with elasticity (scaling down when idle), spot capacity, managed services, and reserved instances for steady workloads, this run cost can be lower than the fully-loaded data center cost. Done poorly, as a straight lift and shift of always-on, over-provisioned servers, it can be higher.
Comparing honestly against on-prem
The common mistake is comparing AWS against only the visible on-prem cost (hardware and power). The real comparison includes the fully-loaded data center cost: hardware refresh cycles, facilities, power and cooling, networking, staff, and the capital tied up. Against that fully-loaded figure, cloud often wins, especially for variable workloads, but only if you actually use cloud-native cost levers rather than recreating the data center in AWS.
Building the business case
Model the one-time migration cost and the ongoing run cost, compare the run cost to the fully-loaded on-prem cost, and calculate the payback period for the migration investment. Plan to refactor the expensive workloads so the run cost is genuinely lower, not just relocated. Similar reasoning applies to a VMware to cloud move. Price the target AWS architecture against the resource catalog before you commit, so the ongoing cost is a known number, not a hopeful assumption.
FAQ
What does it cost to migrate from on-prem to AWS?
There are two layers: a one-time migration project cost (assessment and planning, re-platforming workloads, data transfer, dual-running both environments during cutover, testing, and team time) and a new ongoing cloud run cost that replaces your capital-heavy data center spend with usage-based operating spend. The total depends heavily on whether you lift and shift or refactor, and how well you use cloud cost levers.
Is running on AWS cheaper than on-prem?
It can be, if you use cloud-native cost levers like elasticity, spot capacity, managed services, and reserved instances so the ongoing run cost falls below the fully-loaded data center cost. A naive lift and shift of always-on, over-provisioned servers can cost more to run than the data center it replaced. The honest comparison is against fully-loaded on-prem cost, not just hardware and power.
What is the fully-loaded on-prem cost to compare against?
Not just hardware and power, but hardware refresh cycles, facilities, cooling, networking, staff, and the capital tied up in owned equipment. Comparing AWS against only the visible on-prem costs understates the data center and makes cloud look worse. Against the fully-loaded figure, cloud often wins for variable workloads, provided you use cloud-native cost levers rather than recreating the data center.
What one-time costs does a migration incur?
Assessment and planning (inventory, dependency mapping, design), re-platforming each workload (rehosting or refactoring), data transfer into AWS, dual-running both environments in parallel during cutover, and testing plus engineering time throughout. The re-platforming choice between lift and shift and refactoring drives much of this cost, with rehosting cheaper up front and refactoring more expensive but cheaper to run afterward.
How do I build a migration business case?
Model the one-time migration cost and the ongoing cloud run cost, compare the run cost against the fully-loaded on-prem cost, and calculate the payback period for the migration investment. Plan to refactor the expensive workloads so the run cost is genuinely lower rather than just relocated, and price the target AWS architecture in advance so the ongoing cost is a known number.
How does C3X help with migration cost?
C3X prices the target AWS architecture from Terraform before you deploy, so the ongoing run cost of your migrated design is a concrete number in the pull request rather than a hopeful estimate. That lets you validate that the cloud run cost actually beats the fully-loaded on-prem cost, and catch over-provisioned or lift-and-shift designs that would cost more before they ship.
What to do next
Price your target AWS architecture before you migrate. C3X reads your Terraform and prices your resources against a live catalog. Start with the quickstart.
Share this post
Try C3X on your own Terraform
Free and open source. No API key required. One command to install, one command to estimate.