migrate .net to aws · 2026 guide

Migrate a .NET app to AWS: modern .NET, legacy .NET Framework, and the Windows licences.

One question defines a .NET migration: is it modern .NET or .NET Framework? Modern .NET (Core and .NET 5 onward) runs on Linux, so it lands on ECS with Fargate or Lambda like any container. .NET Framework 4.x is Windows only: it runs on EC2 Windows or Windows containers until you port it, and AWS Transform for .NET is now AWS's tool for that port. SQL Server is the second project.

modern .NET lands on
Linux: ECS, Lambda
.NET Framework lands on
Windows: EC2, containers
porting tool
AWS Transform for .NET
TL;DR
  • Modern .NET (Core 3.1 and .NET 5 onward, including ASP.NET Core) runs on Linux: ECS with Fargate is the default, Lambda suits event-driven and bursty work, EKS if you already run Kubernetes. .NET Framework 4.x is Windows only: EC2 Windows (rehost with MGN) or Windows containers on ECS or EKS, until you port it.
  • Porting Assistant for .NET is no longer open to new customers (sign-up closed November 7, 2025). AWS now points to AWS Transform for .NET, an agentic service that moves .NET Framework code to cross-platform .NET. SQL Server goes to RDS for SQL Server (keep T-SQL and the licence) or Aurora PostgreSQL with Babelfish (drop the licence, check coverage first).
  • A vetted AWS partner can run the move. AWS's Optimization and Licensing Assessment (OLA) is a complimentary licensing review. If the migration qualifies, your matched partner can file MAP funding: typically $50K to $150K for startups. Depends on the workload; AWS approves.
framing

IWhy .NET teams move to AWS, and the one fork that defines the project

Common triggers: an acquirer standardised on AWS, an Azure renewal, AWS strengths the team wants, or ageing on-premises IIS servers. The engineering decision tree is the same.

Classify each application by runtime first. Modern .NET is cross-platform: cheap Linux compute, small images, every AWS container and serverless runtime. .NET Framework (4.8 and earlier) is Windows only: it runs on AWS, but on Windows capacity that carries a Windows Server licence. Many estates are a mix.

The decision tree: rehost as-is (Framework on EC2 Windows, modern .NET on Linux containers), replatform (containerise onto a managed runtime), or port Framework code to modern .NET so it runs on Linux and the Windows licence goes away. Most teams rehost or replatform first, then port the high-value Framework apps.

the target decision

IIWhere modern .NET lands on AWS

For cross-platform .NET there are a few good homes. The choice is how much of the platform you want to own and what the traffic looks like.

  • Amazon ECS on Fargate: The default for most estates: serverless containers, a load balancer, VPC control, per-service scaling and sidecars. For a single simple web app or API, ECS Express Mode creates the Fargate service, load balancer and scaling from one image. (App Runner, the old answer, closed to new customers on April 30, 2026.) ECS also runs Windows containers, which makes it the bridge for .NET Framework during a phased port.
  • AWS Lambda: Modern .NET as managed functions or container images, for event-driven work, spiky APIs and background jobs. ASP.NET Core can run behind API Gateway with the Lambda hosting package. .NET Framework cannot run on Lambda.
  • Amazon EKS: If you already run Kubernetes. Otherwise ECS is simpler for a .NET team.
  • Elastic Beanstalk: A PaaS-style option that still supports .NET on Windows Server and Linux, useful for teams moving off IIS who want a managed environment.
the legacy reality

IIILegacy .NET Framework: EC2, Windows containers, or a port

Most real .NET migrations carry at least one Framework 4.x app that cannot move to Linux without work. There are three honest options.

  • Rehost to EC2 Windows: Lift the IIS VM with AWS Application Migration Service (MGN), which replicates continuously so cutover is short. No code change, but the Windows Server licence (and any SQL Server licence) comes with it.
  • Windows containers on ECS or EKS: Containerise the Framework app and run it on Windows capacity. You get container packaging and CI/CD without porting, still paying Windows licensing. A halfway house.
  • Port to modern .NET: The only option that removes the Windows licence. AWS Transform for .NET is AWS's current tool for porting .NET Framework to cross-platform .NET. Porting Assistant for .NET, the older tool, is no longer open to new customers.
WebForms and WCF are the expensive cases

ASP.NET WebForms has no cross-platform equivalent, so porting means rewriting the UI tier (often to Blazor or a SPA plus an ASP.NET Core API); these usually rehost to Windows first. Classic WCF services need CoreWCF or a move to gRPC or HTTP APIs. Measure before you commit.

the data tier

IVThe database: RDS for SQL Server or Aurora with Babelfish

A .NET app almost always sits on SQL Server, so the migration is two projects: the app tier and the data tier.

Amazon RDS for SQL Server is the low-risk path: same engine, licence-included or bring your own, minimal app change because T-SQL and Entity Framework keep working. AWS DMS can do a full load then ongoing change data capture where the source supports it, so the cutover is a short window.

Aurora PostgreSQL with Babelfish speaks SQL Server's wire protocol and a large subset of T-SQL, so many apps keep connecting with little change while the SQL Server licence goes away. Babelfish does not cover everything (SQL Agent jobs, SSIS, CLR, linked servers and some advanced T-SQL), so run the free Babelfish Compass report per database first. A common pattern: RDS for SQL Server during the move, Babelfish as a follow-on. The full decision is in the SQL Server to AWS guide.

the developer experience

VTooling, IaC and the IIS to ALB translation

Most of the move can happen from Visual Studio, the CLI and your existing pipeline, and IIS concepts map cleanly.

The AWS Toolkit for Visual Studio and the AWS SDK for .NET cover deployment and service calls (Blob to S3, Service Bus to SQS or SNS, Key Vault to Secrets Manager). AWS CDK supports C#, so you can define the landing zone in the same language as the app, or use Terraform. Azure DevOps Pipelines map to CodePipeline and CodeBuild, or GitHub Actions with AWS OIDC.

An IIS site and binding becomes an Application Load Balancer listener and target group; host headers become host-based routing rules; TLS moves to the load balancer with a free ACM certificate. ASP.NET Core runs on Kestrel directly behind the load balancer. Windows integrated authentication has no direct equivalent: move sign-in to ALB OIDC or Amazon Cognito and federate the corporate directory (AWS Directory Service or IAM Identity Center). Inventory where you use it early.

the plan

VIA phased cutover

Move in waves: landing zone first, the stateless app tier next, SQL Server last, with a tested rollback for every wave.

  • Assess: Classify every app by runtime and by the 7 Rs, measure the port effort (AWS Transform for .NET), and review licensing (OLA). Output: a target architecture, a cost case and a per-app verdict.
  • Mobilize: Landing zone, network link back to the source, identity, ECR, pipelines and IaC, plus a pilot of one low-risk .NET service end to end.
  • Migrate the app tier: Modern .NET to ECS or Lambda; Framework apps rehosted with MGN or run as Windows containers. Shift traffic with Route 53 weighted records and roll back by reverting the weight. Ported apps get full regression tests: Kestrel on Linux can differ from IIS (case-sensitive paths, culture defaults, file-system assumptions).
  • Migrate SQL Server: Stand up the target, load it, keep it in sync where CDC is available, then cut over in a short window: stop writes, drain, switch the connection string, verify. Keep the source read-only as a rollback for a defined window.
  • Validate and decommission: Watch CloudWatch and cost for a billing cycle, right-size, then shut the source down.
the money

VIIWindows licensing, OLA, and who can fund the move

For .NET, the money story is often licensing: moving Framework on Windows to modern .NET on Linux removes the Windows Server licence for that app.

The savings land only for apps you actually port, so the port measurement drives the business case. AWS offers the Optimization and Licensing Assessment (OLA), a complimentary review of your utilisation, third-party licensing and dependencies, covering Microsoft workloads. AWS also says AWS Transform for .NET can cut operating costs by removing Windows licence dependencies; treat that as AWS's figure, not your forecast.

Partner-filed funding: AWS says the Migration Acceleration Program (MAP) helps offset initial migration costs, and lists Microsoft workloads among those it supports. Your matched partner files it when the migration qualifies and AWS approves. For startups this is typically $50K to $150K. Depends on the workload; AWS approves. Activate credits are separate, and you apply for those yourself.

CloudRoute matches you with one vetted AWS partner for your mix of modern .NET, Framework and SQL Server. Startups pay CloudRoute nothing; partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.

Who files it
FundingWho files itAmountWhen it fits
Migration Acceleration Program (MAP)Your matched AWS partner$50K to $150K for startups. Depends on the workload; AWS approves.You are not on AWS yet and want to migrate.
AWS Activate FoundersFounder applies$1,000 to start, up to $5,000Self-funded startups with no investor or accelerator behind them.
AWS Activate PortfolioFounder appliesup to $200,000Startups backed by a VC firm, accelerator or angel investor that is an AWS Activate Provider.
Facts checked on October 10, 2026. AWS decides every application.
hard-won

VIIIThe .NET-on-AWS gotchas

These do not show up in a comparison table but reliably cost a day each.

  • Framework cannot run on Linux or Lambda: Until you port, its only AWS homes are EC2 Windows and Windows containers, both with a Windows Server licence.
  • Windows containers are heavy: Large images, slow pulls, Windows capacity. Treat them as a transitional state.
  • Integrated authentication: No one-to-one equivalent. Move to ALB OIDC or Cognito and re-test every auth path.
  • Kestrel on Linux behaves differently: Case-sensitive paths, culture and encoding defaults, temp directories, registry or IIS-module dependencies. Regression-test every ported app.
  • SQL Server features beyond the schema: Stored procedures, SQL Agent jobs and SSIS do not move themselves. Babelfish Compass shows the gap before you commit.
  • Licence savings need an actual port: Rehosting everything to EC2 Windows and never porting carries the full Windows and SQL bill into AWS indefinitely.
the fork at a glance

.NET Framework vs modern .NET on AWS

"Modern .NET" means .NET Core 3.1 and .NET 5 onward (cross-platform). ".NET Framework" means 4.x and earlier (Windows only).

Dimension.NET Framework (4.x)Modern .NET
OSWindows onlyLinux or Windows (Linux is the cheap default)
Main AWS targetsEC2 Windows; Windows containers on ECS or EKSECS on Fargate; Lambda; EKS
Runs on Lambda?NoYes
Windows Server licenceRequiredNone on Linux
Migration move (7 Rs)Rehost (MGN) or Windows containers now; port laterReplatform to a managed runtime
Porting toolAWS Transform for .NET (Porting Assistant closed to new customers)n/a
Typical effortLow to rehost; high to port (WebForms, WCF)Low: containerise and deploy
Most estates are mixed: modern .NET replatforms straight away, Framework apps rehost or get ported based on a measured port effort.
ready to scope the move?
Get matched with a partner who has moved .NET and SQL Server to AWS
Get matched free with a vetted AWS partner who can file it
how a match works

How a match works (example)

  1. You tell us about the work

    You fill in a short form: what you run today, what you want to move, test or build, your stage and your region.

  2. We pick one partner

    We read your answers and pick one vetted AWS consulting partner that fits the work, the stack and the region. We reply within 24 hours; your matched partner reaches out within 5 business days.

  3. The partner checks MAP funding

    Your matched partner scopes the migration with you. Then it checks whether the move qualifies for MAP (Migration Acceleration Program) funding. MAP is for teams that are not on AWS yet.

  4. The partner files, AWS decides

    If the work qualifies, the partner files the funding request with AWS. AWS reviews it and decides. The amount depends on the workload.

  5. You pay nothing

    CloudRoute is free for startups. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.

AWS Activate credits are separate, and you apply for them yourself. Use Activate Founders if no investor backs you. Use Activate Portfolio with the Org ID or invite from your VC, accelerator, incubator or angel group if it is an Activate Provider. A consulting partner cannot apply for Activate on your behalf.

faq

Common questions

Can I run ASP.NET on AWS?
Yes. ASP.NET Core on modern .NET runs on Linux: ECS with Fargate (ECS Express Mode for simple apps), Lambda for event-driven work, or EKS. ASP.NET on .NET Framework 4.x is Windows only: EC2 Windows or Windows containers on ECS or EKS until you port it.
Is Porting Assistant for .NET still available?
Not for new customers. AWS closed Porting Assistant for .NET, App2Container, the Toolkit for .NET Refactoring and Microservice Extractor to new customers (sign-up had to happen before November 7, 2025). AWS points to AWS Transform for .NET, which modernises .NET Framework applications to cross-platform .NET.
Should I move SQL Server to RDS or Aurora with Babelfish?
RDS for SQL Server is the low-risk path: same engine, minimal app change, licence kept. Aurora PostgreSQL with Babelfish can remove the SQL Server licence while many apps keep connecting with little change, but it does not cover SQL Agent jobs, SSIS, CLR or some T-SQL. Run Babelfish Compass per database before choosing.
How does IIS map to AWS?
Sites and bindings become Application Load Balancer listeners and target groups, host headers become routing rules, and TLS moves to the load balancer with a free ACM certificate. ASP.NET Core runs on Kestrel behind the load balancer. Windows integrated authentication moves to ALB OIDC or Cognito with a federated directory.
What is AWS OLA?
The Optimization and Licensing Assessment, a complimentary AWS review of your resource utilisation, third-party licensing and dependencies for Microsoft, VMware and Oracle workloads. It models licensing options for the move.
Can AWS fund a .NET migration?
Through partner-filed funding. Your matched AWS partner can file MAP funding when the migration qualifies and AWS approves. For startups this is typically $50K to $150K. Depends on the workload; AWS approves. Startups pay CloudRoute nothing.

Want a vetted partner to run your .NET to AWS migration?

CloudRoute matches you with one vetted AWS partner for your mix of modern .NET, .NET Framework and SQL Server. The partner runs the move and files MAP funding when the migration qualifies and AWS approves. CloudRoute is free for startups.

we reply within24 hours
partner-filed funding$50K to $150K
CloudRoute fee for startups$0