"Lift and shift" — moving an application to the cloud with minimal changes — is often pitched as the low-risk migration path. It's low-risk in the sense that the application's behavior doesn't change. It's high-risk in a different sense: the cost structure and operational model rarely translate cleanly from on-premises to cloud.

An application designed around fixed, always-on servers doesn't automatically benefit from cloud elasticity just because it's now running on EC2 instead of a rack in a data center. Without redesigning around managed services and autoscaling, a lift-and-shift migration frequently ends up costing more than the on-premises setup it replaced.

The migrations that go well tend to treat the move as a two-phase project: get the workload running in the cloud first, then invest a second phase in re-architecting the pieces that benefit most from managed services — usually the database layer and anything with unpredictable load.