Serverless Application Modernization Playbook (2026): Strangler, Lambda, LMI, and Event Seams
Quick summary: For a .NET monolith (~220 endpoints, ~$28k/mo EC2), strangling 14 endpoints to Lambda cut p95 on those routes 1.4s → 210ms — an early LMI move on spiky traffic wasted ~$3.2k in idle capacity provider hours.
Key Takeaways
- NET monolith (~220 endpoints, ~$28k/mo EC2), strangling 14 endpoints to Lambda cut p95 on those routes 1
- 4s → 210ms — an early LMI move on spiky traffic wasted ~$3
- 2k in idle capacity provider hours
- Most modernization programs still start with standard Lambda and event seams, not a fleet of capacity providers
- This is the serverless modernization playbook

Table of Contents
Lambda Managed Instances (LMI) lets functions run on selected EC2 instance types with Lambda’s programming model — useful for steady, high-performance workloads that need specialized compute or EC2 pricing models (LMI launch coverage, ICYMI). Most modernization programs still start with standard Lambda and event seams, not a fleet of capacity providers.
This is the serverless modernization playbook. It is not general refactor/replatform/rearchitect, not scale-in-place before decomposition, not ECS Fargate zero-downtime migration, and not the LMI operations guide.
Artifacts: compute-path matrix, strangler checklist, architecture diagram (draw.io).
Benchmark silhouette (not a cited client) — .NET Framework monolith, ~220 endpoints, ~$28k/mo EC2+ALB, change lead time ~12 days. Strangled 14 high-churn endpoints to API Gateway + Lambda: those routes p95 1.4s → 210ms, deploy lead time same day. Premature LMI on a spiky reporting endpoint left capacity providers warm: ~$3.2k idle in a month — moved back to standard Lambda. Lesson: traffic shape picks compute, not fashion.
Strangler sequence
- Map top endpoints by RPS × change frequency
- Extract one capability behind API Gateway
- Anti-corruption layer to shared data — no casual dual-write
- Publish domain events to EventBridge
- Retire monolith path within 30 days of 100% traffic
Opinionated take: Prefer standard Lambda for the first three extracts. Introduce LMI only when metrics show steady concurrency and EC2 economics win — then read the LMI ops guide.
Compute path
Use compute-path-decision-matrix.md:
| Shape | Pick |
|---|---|
| Spiky, event-driven | Standard Lambda |
| Steady high RPS / special EC2 | LMI |
| Container service | ECS Fargate / Express Mode |
| Still meeting SLOs, data-bound | Scale in place first |
Reference flow
Monolith (remaining)
│
├── unchanged routes
│
└── strangled routes ──► API Gateway ──► Lambda or LMI
│
├── Aurora / DynamoDB (owned tables)
└── EventBridge ──► SQS consumersWhat broke — LMI on spiky traffic
What broke — Reporting extract moved to LMI in week 2 because “we might need Graviton4.” Traffic was weekday 9–11 only. Capacity provider hours stayed warm. Detection: Cost Explorer + capacity provider metrics. Fix: return to standard Lambda; revisit LMI when p95 concurrency stays high >12 hours/day for two weeks.
What to Do This Week
- Complete the strangler checklist Week 0 section.
- Pick one endpoint; ship behind a flag.
- Score Lambda vs LMI vs Fargate with the matrix — write the choice in the PR.
- If the monolith is still fine on SLOs, read scale-in-place before a rewrite program.
What This Post Doesn’t Cover
- Full ECS/EKS platform builds
- LMI capacity provider operations (dedicated post)
- Mainframe or packaged ERP exits
- GenAI/agent rewrites of business logic
AWS Cloud Architect & AI Expert
AWS-certified cloud architect and AI expert with deep expertise in cloud migrations, cost optimization, and generative AI on AWS.




