lift-and-shift vs replatform vs refactor · 2026

Lift-and-shift, replatform, or refactor — the choice that decides your migration's cost, risk, and payoff.

Three of the 7 Rs cover the workloads you actually agonize over: rehost (lift-and-shift), replatform (lift-tinker-shift), and refactor (re-architect). Pick wrong and you either leave the cloud savings on the table or blow your timeline on a rewrite that did not need to happen. This page defines each precisely, scores them on cost, effort, risk, time-to-value, and long-run payoff, and gives you a per-workload framework for choosing — plus the migrate-then-modernize sequencing that lets you defer the hard call. A vetted partner runs the assessment that assigns these (MAP Assess, often AWS-funded) and the migration that follows is frequently MAP-funded too — low or $0 cost to you.

the real choice
3 of 7 Rs
rehost timeline
days–weeks
refactor timeline
months
assessment cost
often $0
TL;DR
  • Rehost (lift-and-shift) moves the app to AWS with no code changes — fastest and lowest-risk, but no cloud-native savings until you right-size. Replatform (lift-tinker-shift) moves it while swapping a few components for managed services (database → RDS/Aurora, VM → ECS/App Runner) without rewriting it — moderate effort, real operational savings. Refactor (re-architect) rebuilds it cloud-native (serverless, microservices, EKS) — highest effort and risk, highest potential payoff. Retire, Retain, Relocate, and Repurchase are usually obvious; these three are the decision.
  • The default sequencing is migrate-then-modernize: rehost or replatform first to exit the source environment and start saving, then refactor the few high-value apps later as scoped, separately-funded projects once you have real AWS usage data. Trying to refactor everything during the migration — premature refactor — is the single most common way migrations blow their timeline and budget. Its mirror-image mistake is the forever-rehost: lifting-and-shifting everything and never modernizing, so you run on-prem-shaped VMs in the cloud indefinitely.
  • A partner runs the assessment first (AWS Application Discovery Service + a 2–6 week portfolio analysis), scores each app on the cost/effort/risk/time-to-value/payoff axes, and assigns rehost vs replatform vs refactor on evidence. The AWS Migration Acceleration Program (MAP) funds the Assess phase (often free) and credits a large share of the Mobilize + Migrate cost — so for qualifying migrations the whole thing runs at little-to-no cost. CloudRoute routes you to that partner; you pay $0.
framing

IWhy these three are the choice that actually matters

AWS's migration model has seven dispositions — the 7 Rs — but four of them decide themselves once you have discovery data. The real strategy debate, the one that drives most of your migration's cost and risk, is among rehost, replatform, and refactor. This page is the head-to-head on those three.

The 7 Rs are Retire, Retain, Rehost, Relocate, Repurchase, Replatform, and Refactor. (The full set, with the portfolio analysis that distributes them across an estate, lives on the sibling AWS migration strategy page.) Four of the seven are usually obvious after discovery: Retire the apps with near-zero usage, Retain the ones blocked by compliance or an imminent sunset, Relocate a large VMware estate that needs a fast exit, Repurchase a commodity app when a mature SaaS equivalent exists. You rarely lose sleep over those.

The agonizing happens on everything else — the core applications you are keeping and running on AWS. For each of those you face exactly one question with three answers: do you move it as-is (rehost), move it while swapping a few components for managed services (replatform), or rebuild it cloud-native (refactor)? That single choice, repeated per application, is what determines whether your migration finishes in two quarters or drags across two years, and whether the AWS bill afterward is lower than the data center or embarrassingly higher.

The stakes are asymmetric in an instructive way. Choosing rehost when you should have replatformed costs you some ongoing savings you could fix later. Choosing refactor when you should have rehosted can sink the entire migration timeline — because a refactor is a software project, not a migration, and software projects slip. That asymmetry is why the honest default leans conservative: move first, modernize second. The rest of this page makes that concrete, defines each disposition precisely, scores them on five axes, and gives you a per-workload framework for the call.

precise definitions

IIWhat each one actually means — rehost, replatform, refactor

These three terms get used loosely, and the looseness is where bad decisions start. "We'll replatform it" can mean anything from "move the database to RDS" to "rewrite half the app." Here is what each disposition precisely is, what changes, and what tooling does the work.

Rehost — lift-and-shift (change where it runs, nothing else)

What changes: only the hosting. The same operating system, the same application binaries, the same configuration — now running on Amazon EC2 instead of your data center or another cloud. No code changes, no architecture changes. The app does not know it moved.

How it is done: the workhorse is AWS Application Migration Service (MGN). You install a lightweight agent on each source server; MGN block-replicates the server to AWS continuously and keeps it in sync, so the actual cutover is minutes of downtime rather than a multi-day copy. For VMs you cannot put an agent on, agentless and snapshot-based paths exist. The source keeps running until you cut over, which is what makes rollback trivial.

The catch people miss: rehosting on-prem-sized hardware onto equivalently-sized EC2 instances can cost more per month than the data center, because you are now paying cloud rates for over-provisioned capacity. The savings in a rehost come almost entirely from right-sizing during the move (and from Savings Plans / Reserved Instances afterward), not from the move itself. A rehost without right-sizing is the classic way to be surprised by the first AWS invoice.

Replatform — lift-tinker-shift (swap a few components, no rewrite)

What changes: the hosting plus a small number of components, swapped for AWS managed services — but the application code stays essentially the same. The canonical replatform: keep the app, but move its self-managed database onto Amazon RDS or Aurora, put it behind an Application Load Balancer, and containerize the app tier onto ECS, App Runner, or Elastic Beanstalk instead of a raw EC2 VM. You stop managing database patching, backups, and failover yourself; AWS does it.

How it is done: MGN still moves the compute, but now paired with managed-service targets. A same-engine database move (self-managed PostgreSQL → Aurora PostgreSQL, self-managed MySQL → Aurora MySQL) is a clean replatform — the Database Migration Service (DMS) handles the data copy and you point the app at the new endpoint. A change of database family (Oracle → Aurora PostgreSQL) is not a replatform; it requires the Schema Conversion Tool (SCT) plus application changes and sits much closer to refactor in effort.

Why it is the sweet spot: replatform captures most of the cloud-native operational savings — managed databases, auto-scaling, load balancing, automated backups — for a fraction of the effort and risk of a full rewrite. For a large share of web and application workloads, this is where migrate-then-modernize lands its first real modernization step.

Refactor / re-architect (rebuild it cloud-native)

What changes: the architecture itself. You decompose a monolith into microservices, move to serverless (Lambda, API Gateway, EventBridge, DynamoDB, Step Functions), adopt containers on EKS, or split a single data store into purpose-built databases. This is a software engineering project that happens to target AWS — not a migration of the existing app.

How it is done: by your engineering team (or the partner's), writing and shipping code over weeks-to-months, with its own design, testing, and rollout. Migration tooling barely features; this is application development. Often the rehosted or replatformed version runs in production while the refactored version is built alongside it, then traffic is shifted over.

When it actually pays back: only when the current architecture is the bottleneck — it cannot scale past a wall, it cannot ship features fast enough, or its run cost is structurally high in a way a serverless or elastic redesign genuinely fixes. Refactoring an app that works fine and is cheap to run is wasted money and wasted time. The payoff, when the driver is real, is the largest of the three: lowest steady-state cost, highest elasticity, fastest future feature velocity.

the one-line distinction

Rehost changes where the app runs. Replatform changes where it runs plus a few components. Refactor changes what the app is. Effort, cost, risk, and payoff all rise in that order — and so does the chance of blowing your timeline.

the decision dimensions

IIIScoring the three on the five axes that decide it

A good disposition decision weighs five things, not one. Teams that only look at steady-state cost over-refactor; teams that only look at effort forever-rehost. Score each option on all five and the right answer for a given workload usually falls out.

The five axes that matter for the rehost-vs-replatform-vs-refactor call:

  • Cost (upfront migration spend) — Rehost is the cheapest move — agent, replicate, cut over. Replatform adds the cost of swapping components and testing the managed-service changes. Refactor is the most expensive by a wide margin because it is a full development project with design, build, and test cycles.
  • Effort (engineering + project time to move) — Rehost: low — largely a tooling-driven exercise. Replatform: moderate — some re-configuration and integration testing per app. Refactor: highest — sprints of application development, not a migration task. This axis is where premature-refactor timelines die.
  • Risk (chance the cutover or project goes wrong) — Rehost: low — MGN keeps the source live, rollback is reverting DNS. Replatform: moderate — moving the database to RDS/Aurora changes connection handling, backup, and failover, so it must be tested. Refactor: high — scope creep, slipped timelines, and bugs in newly-written code are the failure modes.
  • Time-to-value (how fast you get the benefit) — Rehost: fastest — you exit the source environment in days-to-weeks and stop paying the old bill. Replatform: weeks — slightly slower, but the operational savings arrive sooner than a refactor. Refactor: slowest — months before the rebuilt app is in production, during which you are paying for the build.
  • Long-run payoff (steady-state cost + agility) — Rehost: lowest payoff — source-like cost unless right-sized, no architectural gain. Replatform: solid payoff — managed-service savings and auto-scaling without a rewrite. Refactor: highest payoff when justified — potentially the lowest run cost (serverless/elastic) and the fastest future feature velocity.

Notice the tension: the axis that favors refactor (long-run payoff) is the one that takes longest to materialize, while the axes that favor rehost (cost, effort, risk, time-to-value) are immediate. That is precisely why migrate-then-modernize works — you take the immediate wins first via rehost/replatform, then chase the long-run payoff via refactor on the specific apps where it is worth waiting for. You do not have to choose between "fast and safe" and "high payoff"; you sequence them.

A practical scoring tip the assessment partners use: weight the axes by your actual constraint. If a data-center lease expires in six months, time-to-value and risk dominate — rehost the bulk to hit the deadline. If you have a comfortable runway and a serverless redesign would cut a runaway bill in half, long-run payoff justifies refactoring that workload. The weights are situational; the axes are constant.

per-workload decision criteria

IVWhen to choose which — the per-workload rules of thumb

You assign a disposition per application, not per company. Here are the concrete signals that point a given workload toward rehost, replatform, or refactor — the heuristics a portfolio assessment turns into a disposition map.

Choose rehost (lift-and-shift) when…

You need a fast exit — a data-center lease expiry, a cloud-renewal deadline, an acquisition cutover — and speed beats optimization. Rehost is the only disposition that reliably moves a large estate inside a few months.

The app is stable and untouchable — a legacy system that works, that nobody wants to risk changing, or whose source code is poorly understood. Moving it as-is preserves behavior exactly.

It is a stepping stone — you intend to modernize later but want to be on AWS first, capturing real usage data before deciding how to replatform or refactor it. Most rehosts in a healthy migration are explicitly stepping stones, not endpoints.

It is commercial-off-the-shelf software you cannot change anyway, or a third-party app where re-architecting is not your call.

Choose replatform (lift-tinker-shift) when…

The app carries a self-managed database you are tired of patching, backing up, and babysitting — moving it to RDS or Aurora (same engine) is a high-value, low-rewrite win that sheds a whole category of operational toil.

You want auto-scaling and managed load balancing without re-architecting — containerizing onto ECS or App Runner behind an Application Load Balancer gets you elasticity while the app code stays put.

The workload is a standard web/app tier (the bulk of most estates) where the managed-service savings clearly justify a moderate effort but a full rebuild does not.

You are doing a same-engine database consolidation — self-managed PostgreSQL/MySQL onto Aurora — where DMS handles the move cleanly. (If the engine family changes, that is closer to refactor; see the dedicated database-migration siblings.)

Choose refactor (re-architect) when…

The architecture is hitting a scaling wall — a monolith that cannot scale horizontally, a single database that is a bottleneck, a system that falls over at peak. The redesign solves a problem you actually have today.

Feature velocity is the constraint — the monolith is so coupled that every change is slow and risky, and decomposing it into services would materially speed up the roadmap.

The run cost is structurally high in a way a serverless or elastic redesign genuinely fixes — e.g. a workload that idles 90% of the time but runs always-on servers, where moving to Lambda/Fargate would cut the bill sharply.

It is a core differentiator worth the investment, you have the runway, and ideally you are doing it as a scoped, separately-funded follow-on after the app is already on AWS — not as a gate on the whole migration.

sequencing

VMigrate-then-modernize: how to defer the hard call safely

The most important insight in this whole debate is that rehost-vs-refactor is rarely a permanent fork — it is a sequencing decision. Migrate-then-modernize lets you take the safe, fast path first and still get the high-payoff path later, on the apps that deserve it.

The pattern is simple to state and disciplined to execute: rehost or replatform to exit the source environment first, then refactor selectively once you are on AWS. The logic is that the cost and risk of running in two places — paying two bills, carrying cutover risk, operating a hybrid network — accrue every day you delay the exit. So the first priority is always to get out of the data center or off the old cloud, using the lowest-risk disposition that achieves it.

Once you are on AWS, three things change in your favor. First, you have real usage data — CloudWatch metrics, Cost Explorer breakdowns, actual traffic patterns — so you refactor based on where the spend and the bottlenecks demonstrably are, not on a pre-migration guess. Second, the refactor becomes a scoped, independently-funded project with its own timeline, decoupled from the migration deadline, so a slip in the rebuild does not delay the exit. Third, your team is now fluent in AWS, having operated the rehosted workloads, so the refactor is built on real operational knowledge rather than theory.

The anti-pattern is coupling the two. Trying to refactor while migrating means you are simultaneously solving "how do we move this" and "how do we rebuild this" — two hard problems whose risks multiply rather than add. It is the single most common reason a six-month migration becomes an eighteen-month one. The discipline is to resist the engineering instinct to "do it right while we're in there" and instead move first, modernize second.

the sequencing rule

Rehost or replatform now to exit and start saving. Refactor later, as a scoped follow-on, only on the apps where real usage data proves the payoff. Never gate the migration's exit deadline on a rewrite — that is how migrations slip by quarters.

the three side by side

VIRehost vs replatform vs refactor — the full comparison

rehost vs replatform vs refactor · cost / effort / risk / time-to-value / payoff · 2026
DimensionRehost (lift-and-shift)Replatform (lift-tinker-shift)Refactor (re-architect)
What changesWhere it runs (VM → EC2)Where it runs + a few componentsThe architecture itself
Code changesNoneMinimal (config / managed-service swaps)Significant (re-architecture)
Primary AWS toolingApplication Migration Service (MGN)MGN + RDS/Aurora + ECS/App Runner + DMSLambda / EKS / DynamoDB / API Gateway
Upfront costLowestModerateHighest
EffortLowModerateHighest (a software project)
RiskLow (rollback to source)Moderate (DB/connection changes)High (scope creep, slips, new-code bugs)
Time-to-valueFastest (days–weeks)Fast (weeks)Slowest (months)
Steady-state costSource-like (lower if right-sized)Lower (managed services + right-sizing)Potentially lowest (serverless/elastic)
Long-run payoffLow (no architectural gain)Solid (ops savings, no rewrite)Highest when justified (scale + agility)
Best forFast exit; stable apps; stepping stoneMost web/app workloads; the modernize sweet spotApps where the architecture is the bottleneck
Effort, cost, and risk rise left-to-right; so does long-run payoff. The migrate-then-modernize answer for most workloads is: rehost or replatform now, refactor selectively later. Assign per application, not per company — and weight the axes by your real constraint (a lease deadline favors rehost; a runaway always-on bill favors refactor).
the two big mistakes

VIIPremature refactor and forever-rehost — the mirror-image failures

Almost every disposition mistake is a version of one of two errors: refactoring too much too early, or never modernizing at all. They are mirror images — over-ambition and under-ambition — and both are expensive in different ways.

  • Premature refactor — rewriting during the migration — The over-ambitious failure. The team decides to "do it properly" and re-architect apps into microservices or serverless as part of the move. The migration timeline now depends on a software project, scope creeps, the exit deadline slips, and you keep paying the source-environment bill for the extra quarters. This is the single most common reason migrations blow their budget and timeline. The fix: rehost or replatform to exit on schedule, refactor as a scoped follow-on.
  • Forever-rehost — lift-and-shift and never modernize — The under-ambitious failure. Everything gets lifted-and-shifted, the migration finishes fast, and then nothing ever gets modernized. You end up running on-prem-shaped VMs in the cloud forever — paying for over-provisioned, always-on EC2 instead of managed services and elasticity, capturing none of the cloud-native savings or agility. Migrate-then-modernize only works if the "then-modernize" actually happens; without a funded follow-on plan, "stepping stone" rehosts quietly become permanent.
  • Rehost with no right-sizing — A subtler version of forever-rehost: moving on-prem-sized hardware onto equivalently-sized EC2, then being shocked the AWS bill beats the data center. The savings in a rehost come from right-sizing and purchase commitments (Savings Plans / RIs), not the move. Always right-size during the rehost.
  • Calling a database-family change a "replatform" — Treating an Oracle → Aurora PostgreSQL or SQL Server → Aurora move as a low-effort replatform. A change of database engine family is a heterogeneous migration requiring the Schema Conversion Tool plus application changes — it is closer to refactor in effort and risk. Scope it honestly or it derails the wave it is in.
  • Refactoring an app that did not need it — Re-architecting a workload that works fine and is cheap to run, because re-architecting felt like the "modern" thing to do. Refactor only pays back with a real driver — a scaling wall, a feature-velocity problem, or a structurally high cost. No driver, no refactor.
  • Choosing one disposition for the whole estate — "We are doing a lift-and-shift" or "we are going cloud-native" as a company-wide edict. A 100%-rehost plan leaves most of the cloud savings on the table; a 100%-refactor plan never survives contact with reality. The disposition is per application, assigned on evidence.
the honest verdict

VIIIAn honest verdict framework: which one, for this workload, right now

Strip away the theory and the decision for a single workload comes down to a short cascade of honest questions. This is the framework a good assessment applies per application — and the one you can apply yourself before the partner ever runs discovery.

Walk each workload through these in order; the first one that clearly applies is usually your answer:

  • 1. Is there a hard deadline to exit the source environment? — If a lease, renewal, or acquisition forces a near-term exit and the app is not the bottleneck → rehost now, modernize later. Speed and certainty win; do not let a rewrite jeopardize the deadline.
  • 2. Is the app stable, untouchable, or third-party COTS? — If it works and nobody wants to (or can) change it → rehost. Preserve behavior, take the win, move on.
  • 3. Does it carry self-managed infrastructure you want AWS to run? — If it has a self-managed database (same engine) or you want auto-scaling/managed load balancing without a rewrite → replatform. This is the sweet spot for the bulk of web/app workloads.
  • 4. Is the architecture itself the problem — today? — If it cannot scale, cannot ship features fast enough, or has a structurally high run cost a redesign genuinely fixes → refactor. But ideally do it as a scoped follow-on after the app is already on AWS, funded separately, decoupled from the migration deadline.
  • 5. None of the above clearly applies? — Default to rehost (or replatform if a managed-service swap is obvious), get onto AWS, gather real usage data, and revisit refactor with evidence. When in doubt, migrate-then-modernize.

The honest meta-point: the right migration plan is almost always less ambitious than engineering instinctively wants and more ambitious than finance instinctively fears. Engineering gravitates to refactor (it is the interesting work); finance gravitates to forever-rehost (it looks cheapest on a one-line move cost). The framework above lands between them — rehost/replatform the bulk to move fast and safe, refactor the genuine few where the payoff is real and provable.

This is exactly the judgment a vetted partner brings, and where the funding hook lands. A migration partner runs the MAP Assess phase — AWS Application Discovery Service plus a 2–6 week portfolio analysis — and applies this framework per application against real utilization and dependency data, producing a disposition map you can trust rather than argue about. Under the AWS Migration Acceleration Program (MAP), that Assess phase is frequently AWS-funded (often free), and the Mobilize + Migrate phases that follow are credited a large share too. For qualifying migrations — typically those carrying a meaningful post-migration AWS-spend commitment — this brings the customer's net migration cost to little-or-nothing. Where a migration does not qualify, the value is a vetted partner who de-risks the cutover. CloudRoute tells you which of the two you are looking at, up front, and routes you to the partner — you pay $0 to CloudRoute either way.

the immediate vs the eventual

Move now vs modernize later — what each disposition gives you when

Beyond the per-dimension comparison, it helps to see the three through the migrate-then-modernize lens: what you get on day one versus what you get over the following year. This is the framing that resolves most rehost-vs-refactor arguments.

QuestionRehost (lift-and-shift)Replatform (lift-tinker-shift)Refactor (re-architect)
Get off the source environment in…Days–weeks (fastest)WeeksMonths (slowest)
Savings on day oneOnly if right-sizedYes — managed-service ops savingsNo — you are paying for the build
Risk to the exit deadlineLowestLow–moderateHigh (couples move + rewrite)
Cloud-native agility gainedNone yetSome (managed services, auto-scaling)Most (serverless/microservices)
Reversibility if it goes wrongHigh (roll back to source)ModerateLow (it is new software)
Right role in the sequenceThe exit step — do it firstThe first modernize step — often duringThe deep modernize step — do it later, scoped
The pattern that wins: rehost/replatform to exit and start saving, then refactor the high-value apps as funded follow-ons once real AWS usage data shows where it pays. For the full 7 Rs and the portfolio analysis that assigns them, see the sibling AWS migration strategy page.
not sure whether to rehost, replatform, or refactor?
Get a funded assessment that scores each workload and assigns the call
Start the assessment →
a recent match

A "rewrite everything" plan, talked down to migrate-then-modernize — anonymized

inquiry · B2B SaaS, ~40 services, on a single cloud VM fleet
Mid-market B2B SaaS, ~40 application services on self-managed VMs in another cloud, a self-managed PostgreSQL fleet, and one always-on batch service that idled most of the day

Situation: The engineering team had decided to refactor the entire estate into serverless and microservices as part of the AWS move — a plan that modeled out to roughly 14 months. Finance wanted a flat lift-and-shift to cut the bill fast. The two sides were deadlocked, the cloud-renewal deadline was eight months out, and nobody had scored the workloads individually or modeled whether AWS funding applied to any of it.

What CloudRoute did: Routed within 24 hours to an AWS Advanced partner with a migration + MAP track record. The partner ran a 3-week MAP Assess (AWS-funded, $0 to the customer) and scored each service on cost/effort/risk/time-to-value/payoff: ~24 services → rehost via MGN to hit the renewal deadline (right-sized on the way in); ~12 services → replatform (self-managed PostgreSQL → Aurora PostgreSQL via DMS, app tier → ECS) to shed database toil with no rewrite; and exactly 3 → refactor, flagged as scoped, separately-funded follow-ons — including the always-on batch service, which a Lambda/Fargate redesign would cut sharply. The full 40-service rewrite was retired in favor of migrate-then-modernize.

Outcome: Exited the old cloud with seven weeks to spare on the renewal deadline. Right-sized rehosts plus the Aurora/ECS replatforms landed an estimated ~31% steady-state cost reduction before the refactors even started. The three refactor candidates were sequenced as funded follow-on projects against real post-migration usage data — the batch-service redesign alone is projected to remove a five-figure annual line item. MAP funded the Assess phase and credited a large share of the Mobilize + Migrate cost against a post-migration spend commitment — net migration cost was minimal. CloudRoute's commission was paid by the partner; the customer paid $0 to CloudRoute.

assess phase: 3 weeks · services scored: ~40 · original plan: 14-month rewrite · delivered: exit in <8 months, ~31% cost cut, 3 scoped refactors · assessment cost: $0 (MAP-funded)

faq

Common questions

What is the difference between lift-and-shift and replatform?
Lift-and-shift (rehost) moves an application to AWS with no changes at all — same OS, same code, now running on EC2 via AWS Application Migration Service (MGN). Replatform (lift-tinker-shift) moves it while swapping a few components for managed services — typically moving a self-managed database onto RDS or Aurora and containerizing the app onto ECS or App Runner — without rewriting the application. Rehost is faster and lower-risk but captures no cloud-native savings until you right-size; replatform takes a bit more effort but delivers real operational savings because AWS now runs the database, backups, and load balancing for you.
What is the difference between rehost, replatform, and refactor?
They are three of the 7 Rs of migration, in increasing order of change. Rehost (lift-and-shift) changes only where the app runs — VM to EC2, no code changes. Replatform (lift-tinker-shift) changes where it runs plus a few components — e.g. database to RDS/Aurora, containerize onto ECS — without rewriting the app. Refactor (re-architect) changes the architecture itself — monolith to microservices or serverless on Lambda/EKS/DynamoDB. Effort, upfront cost, and risk rise across the three, and so does long-run payoff. The standard sequencing is migrate-then-modernize: rehost or replatform first to exit and start saving, then refactor selectively.
Should I lift-and-shift or refactor when migrating to AWS?
For most workloads, lift-and-shift (or replatform) first, then refactor selectively later — the migrate-then-modernize pattern. Rehost or replatform to exit the source environment quickly and start capturing savings, then refactor only the handful of apps where the architecture is genuinely the bottleneck (a scaling wall, a feature-velocity problem, or a structurally high run cost), as scoped follow-on projects funded separately from the migration. Refactoring everything during the migration couples two hard problems and is the most common reason migrations blow their timeline. Refactor-first only makes sense for a specific app with a clear, present driver and the runway to wait months for it.
Is replatform always better than lift-and-shift?
No. Replatform delivers more steady-state savings, but it costs more effort and carries more risk per app, and it is slower than a pure rehost. When you need a fast exit (a lease or renewal deadline), when the app is stable and untouchable, or when it is a stepping stone you will modernize later, rehost is the right call even though replatform would eventually save more. The decision is per application and weighted by your real constraint — a deadline favors rehost; a self-managed database you are tired of running favors replatform.
When is refactoring actually worth it?
Refactoring pays back only when the current architecture is the bottleneck today — it cannot scale past a wall, it is so coupled that feature velocity suffers, or its run cost is structurally high in a way a serverless or elastic redesign genuinely fixes (for example, an always-on service that idles most of the time). It is a software project, so it is the highest-effort, highest-risk, slowest disposition — but the highest long-run payoff when the driver is real. Refactoring an app that works fine and is cheap to run is wasted money. Best practice is to refactor as a scoped, separately-funded follow-on after the app is already on AWS, using real usage data to confirm the payoff.
What does migrate-then-modernize mean?
It means moving applications onto AWS first via rehost or replatform to exit the source environment and start saving, then refactoring the high-value apps afterward as scoped, separately-funded projects. It is the recommended sequencing because every day you run in two places you pay two bills and carry cutover risk, so exiting fast is the priority; and because once you are on AWS you have real usage data to refactor against, the refactor is decoupled from the migration deadline, and your team is already fluent in AWS. Coupling the move and the rewrite is the most common way migrations slip by quarters.
What are the most common mistakes choosing a migration strategy?
The two big ones are mirror images. Premature refactor — trying to re-architect apps during the migration — couples moving and rewriting, blows the timeline, and is the most common budget-killer. Forever-rehost — lifting-and-shifting everything and never modernizing — leaves you running on-prem-shaped, over-provisioned VMs in the cloud, capturing none of the cloud-native savings. Related errors include rehosting without right-sizing (so the AWS bill beats the data center), calling a database-engine-family change a low-effort replatform when it is closer to refactor, refactoring apps that did not need it, and picking one disposition for the whole estate instead of assigning per application on evidence.
Does AWS fund the migration, including refactoring work?
For qualifying migrations, largely yes. The AWS Migration Acceleration Program (MAP) funds the Assess phase (often free), provides funding in Mobilize (pilot + landing zone), and credits a large share of the Migrate & Modernize cost — and the "Modernize" in that phase explicitly covers replatform and refactor work, with the partner paid through MAP. Qualification typically requires a meaningful post-migration AWS-spend commitment. Where a migration does not qualify, the value is a vetted partner who de-risks the cutover rather than direct funding. CloudRoute routes you to the partner and tells you up front which applies — you pay $0 to CloudRoute either way.

Get rehost vs replatform vs refactor decided per workload — assessment often AWS-funded

CloudRoute routes you to a vetted AWS partner who runs the MAP Assess (discovery + per-app scoring + disposition map + wave plan), then executes the migration with the right disposition per application. Qualifying migrations are MAP-funded — low or $0 cost. Customer pays $0 to CloudRoute. No procurement theater.

matched within< 24h
assess phase2–6 weeks
cost to youoften $0
Lift-and-Shift vs Replatform vs Refactor (2026 Guide) · CloudRoute