Re-architecting as a Linux container
By porting your .NET Framework applications to .NET Core or .NET 6, you can run your applications on multiple platforms, reduce your license costs, increase performance, and improve scalability.
Use cases
This migration strategy is useful in any of the following scenarios:
-
You have the resources and time available to refactor your application.
-
You’re able to resolve all .NET Framework dependencies.
-
You have a long-running application.
Advantages
This migration approach provides the following benefits, when compared with on-premises .NET applications:
-
Lower total cost of ownership (TCO)
-
Improved security and performance
-
Accelerated innovation
-
Benefits of converting to cloud-native applications
-
Open-source
Disadvantages
-
Effort and cost of refactoring
AWS services
For storing container images:
For orchestrating containers:
-
Amazon ECS
, or Amazon ECS with AWS Fargate -
Amazon EKS
, or Amazon EKS with Fargate
AWS Fargate is a serverless, pay-as-you-go compute engine that lets you focus on building applications without managing servers. Fargate is compatible with both Amazon ECS and Amazon EKS.
Tools
Tool | Purpose | Resource |
---|---|---|
Porting Assistant for .NET | This analysis tool scans .NET Framework applications and generates a .NET Core compatibility assessment. The assessment helps you port your applications to Linux faster. | |
AWS App2Container (A2C) | A2C is a command line tool for modernizing .NET and Java applications by converting them into containerized applications with minimal effort. |
Deployment decisions
You can choose from five 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: deploy your application as a Linux container on an EC2 instance.
-
If you want the container to be managed by Kubernetes and run as a serverless container: deploy your application as a Linux container on Amazon EKS with Fargate.
-
If you want the container to be managed by Amazon ECS and run as a serverless container: deploy your application as a Linux container on Amazon ECS with Fargate.
-
If you want the container to be managed by Kubernetes, but you want to manage the compute resources of the container yourself: deploy your application as a Linux container on Amazon EKS.
-
If you want the container to be managed by Amazon ECS, but you want to manage the compute resources of the container yourself: deploy your application as a Linux container on Amazon ECS.