Rehosting - AWS Prescriptive Guidance


Rehosting (lift and shift) is the process of migrating your on-premises application to the cloud without modifying it. This strategy is used mostly to migrate large-scale applications to satisfy specific business goals, such as launching a product in an accelerated timeline or leaving an on-premises data center. The applications are rehosted on Amazon Elastic Compute Cloud (Amazon EC2) Windows instances that meet the requirements of the applications you migrate.

Use cases

This migration strategy is useful in any of the following scenarios:

  • The legacy .NET application must run as a native Windows application.

  • Time and resources to modernize the application are not available.

  • The legacy .NET application is a commercial off-the-shelf (COTS) application.


Rehosting provides the following benefits, when compared with on-premises .NET applications:

  • Minimum effort, because it requires no code or architectural changes

  • Reduced cost

  • Better compliance and security, because it uses the AWS infrastructure and security best practices


  • Doesn’t take full advantage of the performance, scalability, and resiliency options of the AWS Cloud

  • Difficult to integrate with state-of-the-art cloud services

AWS services


Tool Purpose Resource
Windows Web Application Migration Assistant This tool is an interactive PowerShell script that migrates entire websites and their configurations to Elastic Beanstalk. Migrating ASP.NET applications to Elastic Beanstalk (AWS blog post)

Deployment decisions

You can choose from two deployment options:

  • If you want complete control over the configuration of your compute environment, including memory and storage settings, and control over operating system patches: migrate your .NET application to Amazon EC2.

  • If you don’t require full control over the infrastructure: use Elastic Beanstalk. Elastic Beanstalk automatically sets up a managed environment for your application.

Rehosting .NET applications on Amazon EC2 instances