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.
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.
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.
Most real .NET migrations carry at least one Framework 4.x app that cannot move to Linux without work. There are three honest options.
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.
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.
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.
Move in waves: landing zone first, the stateless app tier next, SQL Server last, with a tested rollback for every wave.
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.
| Funding | Who files it | Amount | When 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 Founders | Founder applies | $1,000 to start, up to $5,000 | Self-funded startups with no investor or accelerator behind them. |
| AWS Activate Portfolio | Founder applies | up to $200,000 | Startups backed by a VC firm, accelerator or angel investor that is an AWS Activate Provider. |
These do not show up in a comparison table but reliably cost a day each.
"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 |
|---|---|---|
| OS | Windows only | Linux or Windows (Linux is the cheap default) |
| Main AWS targets | EC2 Windows; Windows containers on ECS or EKS | ECS on Fargate; Lambda; EKS |
| Runs on Lambda? | No | Yes |
| Windows Server licence | Required | None on Linux |
| Migration move (7 Rs) | Rehost (MGN) or Windows containers now; port later | Replatform to a managed runtime |
| Porting tool | AWS Transform for .NET (Porting Assistant closed to new customers) | n/a |
| Typical effort | Low to rehost; high to port (WebForms, WCF) | Low: containerise and deploy |
You fill in a short form: what you run today, what you want to move, test or build, your stage and your region.
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.
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.
If the work qualifies, the partner files the funding request with AWS. AWS reviews it and decides. The amount depends on the workload.
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.
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.