O que é App2Container?
O AWS App2Container (A2C) é uma ferramenta de linha de comando para ajudar você a realizar migração e modernização de aplicações executados em data centers locais ou em máquinas virtuais, para que sejam executados em contêineres gerenciados pelos serviços Amazon ECS, Amazon EKS ou Amazon App Runner. O principal objetivo do App2Container é simplificar o processo de migração de aplicações.
Como app2container funciona
Você pode usar o App2Container para gerar imagens de container para uma ou mais aplicações rodando em servidores Linux ou Windows. É possivel usar o App2Container diretamente nos servidores que estao rodando a aplicação ou executar as etapas de container e deployment em uma máquina remota.

Requisitos:
- Windows Powershell versao 5.1 ou superior;
- Possuir 1 ou mais aplicações rodando no IIS;
- Docker tools;
- AWS CLI.
Limitações:
- App2Container não oferece suporte a aplicações ASP.NET com as seguintes características:
- A aplicação tem uma dependência relacionada ao sistema operacional do Windows;
- Está usando arquivos e registros fora dos diretórios de aplicativos da web do IIS;
- Tem dependências de outros serviços ou processos do Windows fora do IIS;
- App2Container atualmente não oferece suporte ao modo Cluster/HA para aplicações Java;
- Em sistemas operacionais Windows, suporte apenas .NET Framework versões 3.5 e 4.x
- Exceto para aplicações Tomcat e JBoss 7+, a conteinerização de aplicativos Java genéricos da App2Container envolve empacotar todo o sistema de arquivos sem arquivos de sistema e kernel. Isso pode resultar em uma imagem de contêiner maior. Talvez seja necessário excluir arquivos manualmente para reduzir o tamanho das imagens, se desejar;
- Para aplicações Tomcat e JBoss v7+, a imagem do contêiner App2Container inclui apenas arquivos utilizados diretamente pelo aplicativo. A imagem do contêiner não inclui arquivos relacionados ao gerenciamento e controle de versões de pacotes. Se você usar a imagem de contêiner gerada pelo App2Container como imagem base e tentar atualizar os aplicativos ou suas dependências por meio de um gerenciador de pacotes, essas atualizações poderão falhar;
- App2Container não conteineriza componentes da camada de banco de dados. Se o seu aplicativo exigir acesso a um banco de dados, você deverá configurar o contêiner da aplicação para ter acesso ao servidor de banco de dados.
Antes de iniciarmos o App2Container, configuramos uma aplicação de exemplo com .Net 4.8 no IIS em um servidor Windows 2019. Como mostrado abaixo, estamos acessando a aplicação pelo endereço 172.31.86.54. Utilizaremos o App2Container desde a descoberta e análise da aplicação até o deploy no serviço ECS da AWS. Também será necessário configurar um usuário com permissões IAM. No nosso caso, utilizamos a política AdministratorAccess, mas, caso prefira uma permissão mais restritiva, consulte a documentação oficial para mais detalhes.

Step 1: Instalação App2Container
Para usar o App2Container, o primeiro passo é baixar, descompactar e instalar a aplicação.
https://app2container-release-us-east-1.s3.us-east-1.amazonaws.com/latest/windows/AWSApp2Container-installer-windows.zip
Após baixar e descompactar o arquivo .ZIP, execute o script dentro da pasta onde o extraiu.
.\install.ps1

Step 2: Inicialização App2Container
O processo de conteinerização consiste em algumas etapas. Essa etapa foca na inicialização do App2Container.
- A. Primeiro crie um bucket S3, armazene o nome deste bucket, ele sera usados posteriormente. No nosso caso criamos um bucket com o nome “bucket-site-darede”.
- B. No servidor onde se encontra a aplicação IIS execute o comando abaixo:
“app2container init”

- C. Você será solicitado a fornecer as seguintes informações:
Parâmetro | Valor |
---|---|
Workspace directory path | Um diretório onde o App2Container pode armazenar artefatos durante o processo de conteinerização. O padrão é C:\Users\Administrator\AppData\Local\app2container . |
AWS profile | Contém informações necessárias para executar o App2Container, tais como AWS Access Keys e Secret Key. |
Amazon S3 bucket | Insira o nome do bucket S3 que foi criado anteriormente. |
Permission to collect usage metrics | Essa opção permite o App2Container coletar informações sobre o sistema operacional, tipos de aplicação e os comandos que o App2Container executa. O padrão é yes . |
Upload logs | Você pode opcionalmente carregar logs e artefatos automaticamente para o suporte do App2Container quando encontrar erros. O padrão é yes . |
Whether to enforce signed images | Opcionalmente você pode exigir que imagens sejam assinadas. O padrão é no . |
Step 2: Descoberta e análise de aplicação
Depois de ter configurado e inicializado, você precisa analisar suas aplicações, durante essa fase você precisa listas as aplicações que estao executando nos servidores de aplicação e analisá-las.
Para isso faça o seguinte:
- A. Execute o comando “app2container inventory” para listar as aplicações que estão rodando em seu servidor. A saída conterá detalhes referente as aplicações que estão executando no servidor. Tome nota do ID da aplicação que será usado posteriormente, no nosso caso será o “iis-site-darede-8b4f3b1e“.
app2container inventory

- B. Após tomar nota do id (passo anterior) da aplicação que será conteinerizado, execute o comando abaixo:
“app2container analyze –application-id iis-site-darede-8b4f3b1e”

O parâmetro analyze do comando App2Container cria um diretório/workspace para cada aplicação no caminho “C:\Users\Administrator\AppData
\Local\app2container\”. Caso queira, você pode editar as informações na seção containerParameters do arquivo analysis.json, que é criado durante esse processo.
Principais ajustes:
- “diretorio” → “diretório” (correção de acentuação).
- “diretorio/workspace” → “diretório/workspace” (mantendo coerência na acentuação).
- “no diretorio” → “no caminho” (evita repetição e melhora a fluidez).
- Pequenos ajustes de pontuação e destaque nos nomes dos arquivos e parâmetros para facilitar a leitura.
Step 3: Transformar sua aplicação
Agora que sua aplicação passou pela fase de análise, ela está pronta para a conteinerização. Esse processo criará os containers nos quais sua aplicação será executada no Amazon ECS, Amazon EKS ou App Runner, se aplicável.
Por fim, execute o seguinte comando para conteinerizar sua aplicação:
app2container containerize –application-id iis-site-darede-8b4f3b1e

Após executar o comando acima, a imagem do container da sua aplicação será criada. Para visualizar a aplicação, execute: docker images
Principais ajustes:
- “observe que a imagem do container para sua aplicação é criada” → “a imagem do container da sua aplicação será criada” (melhora a fluidez e mantém a concordância).
- Formatação do comando como código para facilitar a leitura.

O que este comando faz?
Ao executar o comando app2container containerize, um arquivo deployment.json é criado no diretório/workspace da aplicação:
Esse arquivo contém várias configurações definidas para cada serviço da AWS. Você pode modificá-las conforme necessário para se adequar ao seu ambiente.
Como faremos o deploy em um ambiente Amazon ECS, manteremos o valor padrão do campo createEcsArtifacts como true e alteraremos o vpcId em reuseResources para o ID de uma VPC customizada.
Observação: Se o campo vpcId não for alterado, o deploy será realizado na VPC padrão. No nosso caso, alteraremos para vpc-08f2297e91fd57053.
Principais ajustes:
- Melhor organização do texto em tópicos para facilitar a leitura.
- Destaque em negrito para termos técnicos importantes.
- Melhoria na explicação sobre a configuração do deployment.json.
- Uso de código para caminhos de diretórios e valores específicos.

Step 4: Criar artefatos da aplicação
Nesta etapa, o App2Container cria os artefatos necessários para implantar sua aplicação na AWS. Esse processo pode levar alguns minutos para ser concluído.
Para gerar os artefatos, execute o seguinte comando:
app2container generate app-deployment –application-id iis-site-darede-8b4f3b1e
Principais ajustes:
- “criar” → “cria” (concordância com o sujeito).
- “demora alguns minutos para finalizar” → “pode levar alguns minutos para ser concluído” (mais natural).
- Melhoria na formatação para facilitar a leitura.

O que este comando faz?
- Cria um repositório no Amazon ECR (Elastic Container Registry).
- Copia a imagem Docker da aplicação para o repositório recém-criado.

O que este comando faz?
- Cria localmente, no diretório da aplicação, uma Task Definition (taskDef) do Amazon ECS.
- Faz o upload para um bucket S3 (previamente criado) de todos os arquivos que serão usados posteriormente.

- Cria o template do Cloudformation

Step 5: Deploy da aplicação no ECS da AWS
Nesta etapa, o deploy da aplicação será realizado na AWS usando o serviço ECS, por meio do AWS CloudFormation.
Para isso, será criada uma stack no CloudFormation com o seguinte comando:
Após executar o comando, acesse o AWS Console, vá até CloudFormation e clique em Stacks. Você verá que a stack foi criada com o nome a2c-iis-site-darede-8b4f3b1e-ECS. Aguarde até a conclusão do processo.

Após a finalização da stack no CloudFormation
- Acesse o serviço ECS no AWS Console.
- No painel à esquerda, clique em Clusters.
- Selecione o cluster recém-criado. No nosso caso, o nome começa com “a2c-iis-site-darede-XXX“.

Verificando o serviço no ECS
- Na aba Services, clique no serviço recém-criado. No nosso caso, o nome começa com “a2c-iis-site-darede”.
- Observação: A aplicação estará com o status Running e ACTIVE.

Obtendo o endereço DNS da aplicação
- Dentro da aba Services, clique em Configuration and Networking.
- Copie o endereço exibido no campo “DNS Names”.

- Dentro de Services, clique em Configuration and Networking e copie o endereço do campo “DNS Names”.
- Cole o endereço copiado em um navegador e pronto… aplicação .NET migrada com sucesso.

Considerações
Neste artigo, migramos uma aplicação .NET de um servidor Windows Server 2019 para o serviço ECS da AWS usando a ferramenta App2Container. Seguimos todos os passos, desde a instalação do App2Container até o deploy no ECS.
No entanto, também é possível criar apenas a imagem com um Dockerfile e realizar as configurações manualmente, como fazer o upload da imagem para o ECR, criar as Task Definitions, Services, configurar o Load Balancer, entre outros.
Esperamos que este tutorial tenha ajudado você a aprimorar seus conhecimentos sobre o App2Container.
Principais correções:
- “Windows 2019” → “Windows Server 2019” (nome correto do sistema operacional).
- “Porém é possivel” → “No entanto, também é possível” (evita início de frase com “Porém” e melhora a fluidez).
- “realizar as configurações manuais (fazer upload da imagem para o ECR, criar as tasks definitions, services, Load Balance e etc.)” → “realizar as configurações manualmente, como fazer o upload da imagem para o ECR, criar as Task Definitions, Services, configurar o Load Balancer, entre outros.” (melhoria na estrutura e correção do termo “Load Balance” para “Load Balancer”).
- Ajustes menores na pontuação para melhor fluidez.
Referência:

carlos.souza@darede.com.br
Profissional certificado com mais de 15 anos de experiência em ambientes On-premise e Cloud. Especialista em workloads Microsoft, possui certificações Microsoft e AWS, além de ampla experiência com serviços AWS, Kubernetes, Docker e automação com PowerShell e Ansible. Atua com CI/CD, pipelines e virtualização, sempre focado em inovação e alta performance.