Skip to content
Contact Us
Migration & Integration5 min

The AWS-to-Azure Migration That Stalled on an Enterprise Agreement: A Recovery Playbook

A Microsoft EA discount looked like free money. Then DynamoDB, IAM, and S3 egress froze the migration. Here is how to triage and restart it.

A dashboard showing cloud migration cost overruns comparing AWS and
Azure expenditures.
Figure 01 A dashboard showing cloud migration cost overruns comparing AWS and Azure expenditures.
Answer summary

The practical answer

Short answer
A Microsoft EA discount looked like free money. Then DynamoDB, IAM, and S3 egress froze the migration. Here is how to triage and restart it.
Best fit
Industry: B2B SaaS & Technology Services. Function: IT Infrastructure & Engineering
Operating path
Migration & Integration -> Turnaround & Restructuring -> Transaction Advisory Services -> Transaction Execution Services
Key metric
43% of enterprises experience significant cost overruns during cloud migrations.

A 20% discount on the wrong number

The deck that justified this migration had one slide that mattered. A Microsoft Enterprise Agreement, sized against the portfolio's combined Azure consumption commitment, knocked roughly 20% off list. For a sponsor consolidating five tech-services and SaaS holdings under one vendor relationship, that line item is irresistible — it shows up as margin, it simplifies governance, and it gives the operating partner a clean story for the next board meeting. The discount is real. The problem is what it's a discount on.

The 20% applies to Azure consumption. It does not apply to the cost of getting your workloads to behave like Azure workloads — and that's the entire migration. In the last stalled program we inherited, a B2B SaaS target had already spent $1.2 million in systems-integrator fees doing nothing but mapping AWS native services to their nearest Azure cousin. The board was looking at the EA savings; the engineering org was looking at a DynamoDB table with no clean Cosmos DB equivalent and a Slack channel full of people quietly updating their resumes. According to IDC's 2025 Cloud Migration Survey, 43% of enterprises hit significant delays or overruns on cross-cloud programs, with the average overrun north of 35% of the original budget. That 35% does not get netted against your EA discount in any honest model — it sits on top of it.

Here is the disconnect, stated plainly. Procurement bought a price. Engineering inherited an architecture. AWS and Azure are not two interchangeable rooms full of servers; they are two opinionated ecosystems that disagree about identity, data, and how compute is supposed to scale. McKinsey's 2025 Cloud Migration Transformation Analysis found 38% of migration initiatives slip more than a full quarter behind schedule. The slippage isn't laziness. It's the gap between a spreadsheet that treats clouds as commodities and a codebase that was written against one of them specifically.

Where AWS-to-Azure actually breaks

This direction has its own failure signature, and it's worth naming the exact seams because they're what your team is fighting right now. Three of them do most of the damage.

The serverless services have no drag-and-drop equivalent. An EC2 instance becomes an Azure VM in an afternoon — that part lulls everyone into thinking the whole thing is easy. Then the team hits the workloads that actually carry the product. Amazon RDS, AWS Lambda, DynamoDB, SQS — none of these lift cleanly into Azure SQL, Azure Functions, Cosmos DB, or Service Bus. The behavior differs, the SDKs differ, the consistency models differ, and the code has to be rewritten, not relocated. When the team hits this wall against an M&A deadline, they make the choice that kills the deal value: they stop modernizing and start cramming legacy code into oversized Azure IaaS VMs running 24/7. They abandon the elastic, serverless scaling AWS gave them for free.

That panic pivot is exactly how unit economics invert. Flexera's 2025 State of the Cloud Report puts cloud waste at roughly 32% of spend on underutilized resources — and a fleet of always-on VMs sized for peak is how you manufacture that 32% on purpose. I have watched a portfolio company double its monthly infrastructure bill the month it moved off serverless. That cost lands directly on the post-acquisition cloud cost line and bleeds straight out of EBITDA.

IAM does not translate into Entra ID. AWS IAM is policy-and-resource. Microsoft Entra ID (the artist formerly known as Azure AD) is hierarchical and role-based. There is no transpiler between them. Security teams spend months trying to re-express AWS permission boundaries as Entra role assignments, and in the gap between "old policies turned off" and "new roles fully mapped," you get compliance holes that an acquirer's diligence team — or an auditor — will eventually find. This is the work that has no visible output and so gets deprioritized, right up until it becomes the reason the migration can't be signed off.

The S3 egress tax eats week two. AWS prices data leaving its perimeter aggressively, and that's not an accident — it's the retention moat. When you go to drag historical data out of S3 to a competitor's storage, the egress meter runs hard. I've seen migration budgets evaporate in the second week purely on the cost of moving the data, before a single line of application code was touched. Stack the egress bill, the dual-runtime cost of paying for AWS and Azure simultaneously during cutover, and the inflated VM provisioning, and you've built a financial pressure cooker. McKinsey's Cloud Economics Analysis finds migration inefficiencies cost the average company 14% more than planned each year. You are paying that premium to manufacture brand-new Azure technical debt on top of the AWS debt you were trying to escape.

Engineering architecture diagram highlighting the complexity
of mapping AWS native services to Azure PaaS.
Engineering architecture diagram highlighting the complexity of mapping AWS native services to Azure PaaS.

Restarting it: what we do in the first two weeks

Recovery starts with an uncomfortable board conversation, not an architecture diagram. The original timeline is dead — say it out loud and reset expectations, because Gartner's 2025 Cloud Migration Failure Research projects that through 2025, 85% of cloud migrations miss expectations on planning and execution alone. The sunk $1.2 million is gone. Chasing it with more lift-and-shift just moves the debt across vendors faster. Halt every in-flight lift-and-shift the moment you arrive.

Then triage every AWS asset into exactly three buckets, and make the CTO own the calls:

  • Replatform — adapt a native service to its Azure analog where the swap is mechanical and low-risk. SQS to Service Bus, an RDS Postgres to Azure Database for PostgreSQL. Fast wins that don't touch business logic.
  • Refactor — rewrite the code to use Azure PaaS properly. This is your DynamoDB-to-Cosmos and Lambda-to-Functions work. It's slow, it's the real cost, and it's where the EA savings actually get earned back.
  • Retire — kill the stale apps that were on the migration list only because nobody dared cut them. In a typical estate this bucket is larger than anyone admits, and every workload you retire is one you never have to pay egress on.

Freeze the product roadmap while this runs. No new features until the core infrastructure mapping — especially the IAM-to-Entra model — is resolved. You can't re-engine the plane mid-flight, and a half-migrated identity layer is the thing that will ground a sign-off. Critically, treat this as a product-engineering initiative, not an IT chore: the people who built the AWS estate are the only ones who can architect the Azure version, so incentivize them to learn it. Run it as ops-only and your migration talent walks, taking the tribal knowledge with them.

Finally, install cost governance on day one in Azure, not after the bill arrives. Mandatory tagging, defined auto-scaling, locked-down provisioning, and a single target: reach parity with your old AWS unit economics — not merely "it runs." Track it on the same week-by-week board you use for M&A technology integration. A real recovery doesn't just relocate the code; it rebuilds the architecture to use Azure the way Azure wants to be used, so the EA discount finally shows up as value instead of as a line item that justified a stalled project.

Continue the operating path
Topic hub Migration & Integration Post-merger integrations that hold customer and staff retention. 95% / 100% achieved on complex divestitures. Pillar Turnaround & Restructuring Integrations fail when they're run as status meetings. We run them as Integration Management Offices that own outcomes — the difference shows up in retention numbers. Service Transaction Advisory Services Operator-led buy-side and sell-side diligence for technology middle-market deals. Financial rigor, technical diligence, and integration risk in one workstream. Service Transaction Execution Services Integration management, carve-outs, system consolidation, and post-close execution for technology acquisitions that must turn thesis into EBITDA. Service Turnaround & Restructuring Services Crisis intervention, runway extension, project recovery, technical rescue, and restructuring support for technology middle-market firms.
Related intelligence
Sources
  1. IDC's 2025 Cloud Migration Survey
  2. McKinsey's 2025 Cloud Migration Transformation Analysis
  3. Flexera's 2025 State of the Cloud Report
  4. McKinsey's Cloud Economics Analysis
  5. Gartner's 2025 Cloud Migration Failure Research
Move on this

A 14-day operator-led diagnostic, before the gap is priced into your multiple.

No retainer until we agree on the work.

Request a Turnaround Assessment →