Replatform Windows applications with App2Container
Overview
AWS App2Container is a command-line tool for migrating and modernizing Java and .NET web applications into containers. App2Container analyzes and builds an inventory of all applications running in bare metal, virtual machines, Amazon Elastic Compute Cloud (Amazon EC2) instances, or in other cloud providers. You select the application you want to containerize. App2Container packages the application artifacts and dependencies into container images, configures the network ports, and generates the necessary Amazon Elastic Container Service (Amazon ECS) and Amazon Elastic Kubernetes Service (Amazon EKS) deployment artifacts, which are infrastructure as code (IaC) templates. App2Container provisions the cloud infrastructure and CI\CD pipelines required to deploy the containerized application into a production environment. For more information, see How App2Container works in the App2Container documentation.
With App2Container, you can migrate to AWS and modernize your applications as containers while also standardizing the deployment and operations for your applications. You can use App2Container to help quickly build a proof of concept (PoC) or accelerate deployment of production workloads in containers.
There are several things to keep in mind when working with Windows applications. App2Container supports containerization of ASP.NET applications deployed on Microsoft Internet Information Services (IIS), including IIS-hosted Windows Communication Foundation (WCF) applications that run on Windows Server 2016, Windows Server 2019, or Windows Server Core 2004. For more information, see Supported applications for Windows in the App2Container documentation. App2Container uses Windows Server Core as a base image for its container artifacts, matching the Windows Server Core container version to the operating system (OS) version of the server where you run containerization commands. This approach decouples the application from the underlying OS so that you can upgrade the OS without performing a traditional migration.
If you use a worker machine to containerize your application, the container base image, such as Windows Server 2019 long-term servicing channel (LTSC), matches your worker machine OS, such as Windows Server 2019. If you are running containerization directly on application servers, the version matches your application server OS. If your applications are running on Windows Server 2008 or 2012 R2, you can still use App2Container by setting up a worker machine for containerization and deployment steps. App2Container does not support applications running on Windows client operating systems, such as Windows 7 or Windows 10. App2Container supports Tomcat, TomEE, and JBoss (standalone mode) frameworks for Java processes. For more information, see App2Container compatibility.
Cost benefits
Containerizing and consolidating your applications can yield up to 60% compute savings
-
App2Container is offered at no additional charge.
-
App2Container supports multiple applications in a container image.
-
Address operating systems that are approaching end of support by using App2Container to move your legacy .NET applications to containers. You can move to a newer operating system, avoid paying for extended support, and reduce security risks.
-
Containers are an efficient and cost-effective method of packaging your .NET applications. Review the benefits of containers in the MACO Recommendation - Moving to containers
. -
Application consolidation and containerization help reduce your compute, storage, and licensing footprint by using your compute resources more efficiently.
-
Moving to containers can reduce operational overhead and infrastructure costs and increase development portability and deployment agility.
Cost optimization recommendations
For instructions about how to use App2Container, see Getting started with AWS App2Container. For information about the App2Container commands, see the App2Container command reference.
Next steps
App2Container can accelerate the process of containerizing applications and deploying to Amazon EKS or Amazon ECS. The deployment of applications to containers reduces compute, networking, and storage costs and reduces the operational overhead for application operators.
For a hands-on experience with App2Container, see the Modernize with AWS App2Container Workshop
Additional resources
-
Containerizing Complex Multi-tier Windows Applications using AWS App2Container
(AWS blog post) -
Containerizing legacy ASP.NET applications using AWS App2Container
(AWS blog post) -
App2Container supported applications (AWS documentation)
-
Modernize with AWS App2Container Workshop
(AWS Workshop Studio) -
AWS App2Container FAQs
(AWS website)