Back to blog
Cloud

From Lift-and-Shift to Landing Zones

A lift-and-shift migration gets you to the cloud. It doesn't get you a cloud architecture. Here's what we build instead for clients migrating for real.

DC
Daniel ChoPrincipal Cloud Architect
Share
Server room with blue lighting and data infrastructure

Nearly every cloud migration we're brought in on has already had a first attempt: lift-and-shift the existing servers into VMs, call the migration done. It works, in the sense that the lights stay on. It also means the client is now paying cloud prices for on-premises architecture, with none of the actual benefits of the platform they just moved to.

What lift-and-shift actually preserves

Lift-and-shift preserves your existing architecture's assumptions — fixed capacity, manual scaling, a single region, security groups that were designed for a data center's physical perimeter rather than a cloud provider's identity model. None of that is wrong on-premises. All of it is expensive and fragile once it's running as VMs in someone else's data center.

What a landing zone actually is

A landing zone is the account and network structure a workload lands into before any application code is deployed — multi-account separation by environment and function, centralized identity and logging, and network boundaries defined by traffic patterns rather than physical topology.

hcl
# Simplified shape of our standard landing zone account split
module "landing_zone" {
  accounts = {
    security  = { purpose = "centralized logging, guardrails" }
    network   = { purpose = "shared VPC, transit gateway" }
    prod      = { purpose = "production workloads" }
    nonprod   = { purpose = "staging, dev" }
  }
  scp_guardrails = ["deny-root-account-usage", "require-encryption-at-rest"]
}
Note

The account structure is the part clients most often want to skip, because it feels like overhead before any application work happens. It's also the part that's genuinely painful to retrofit later — every workload deployed into the wrong structure has to be migrated twice.

The migration we actually recommend

We now run every cloud migration in two distinct phases, explicitly separated: first the landing zone (accounts, identity, network, guardrails), then application migration into that structure — never both at once, and never application-first. Clients who've done lift-and-shift before are often surprised how much faster the second, "real" migration goes, because the landing zone removes a whole category of decisions from every subsequent workload move.

"The landing zone isn't infrastructure you build once and forget. It's the decision you're making, once, on behalf of every workload you'll ever migrate after this one."

Landing zone account structure with security, network, prod, and nonprod accounts

What changes for the client afterward

Beyond cost (most clients see meaningful savings simply from right-sizing instead of matching on-premises specs 1:1), the bigger shift is operational: security reviews go from "audit every server" to "audit the guardrails," and onboarding a new workload becomes a known, repeatable process instead of a bespoke project every time.

Stay in the loop

One email, every other Friday

Engineering notes, new articles, and things we learned the hard way — no marketing, ever.

Read by 2,400+ engineers. Unsubscribe anytime.

Let's talk

Let's build what's next.

If any of this sounds like the kind of work you want done on your systems, our engineers are the ones who'll actually do it.