Ir para o conteúdo
  • Empresa
    • SOBRE NÓS
    • TRABALHE CONOSCO
  • Soluções
    CONSULTORIA CLOUD
    • GET STARTED
    • DESIGN
    • IMPLANTAÇÃO
    MIGRAÇÃO
    SQUAD AS A SERVICE
    WELL ARCHITECTED
    SEGURANÇA E COMPLIANCE
    • ASSESSMENT DE VULNERABILIDADE
    • CENTRO DE OPERAÇÕES DE SEGURANÇA (SOC)
    • ASSESSMENT LGPD
    • UTM - GERENCIAMENTO UNIFICADO DE AMEAÇAS
    BIG DATA & MACHINE LEARNING
    • Analytics
    • AI/ML
    SERVIÇOS GERENCIADOS
    • MONITORAMENTO E SUPORTE 24X7
    • DAREDE MSP
    • GERENCIAMENTO DEVOPS
    • GERENCIAMENTO DEVSECOPS
    • GERENCIAMENTO FINOPS
    • GERENCIAMENTO DE BANCO DE DADOS
    • GERENCIAMENTO DE PABX IP
    • LICENCIAMENTO DE SOFTWARE
    COMPETÊNCIAS AWS
    • AWS CLOUD FRONT
    • AWS AURORA
    • AMAZON RDS
    • DEVOPS
    • MICROSOFT WORKLOADS
    • MIGRATION
    • PUBLIC SECTOR
    • PUBLIC SECTOR NPO
    • PUBLIC SECTOR EDUCATION
    • WELL ARCHITECTED
    • VMWARE CLOUD ON AWS
    • API GATEWAY
    • LAMBDA
    • NETWORKING ON AWS
    • FINANCIAL SERVICES
  • Cases
  • Blog
Darede Portugal
  • Fale Conosco
  • Canal Compliance
  • Seja Parceiro Autorizado
Aprenda a migrar uma aplicação .NET para o ECS da AWS com o App2Container de forma prática e automatizada. Confira o passo a passo!

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:
  1. A aplicação tem uma dependência relacionada ao sistema operacional do Windows;
  2. Está usando arquivos e registros fora dos diretórios de aplicativos da web do IIS;
  3. 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:

C:\Users\Administrator\AppData\Local\app2container\iis-site-darede-8b4f3b1e

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:

aws cloudformation deploy --template-file C:\Users\Administrator\AppData\Local\app2container\iis-site-darede-8b4f3b1e\EcsDeployment\ecs-master.yml --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND --stack-name a2c-iis-site-darede-8b4f3b1e-ECS

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

  1. Acesse o serviço ECS no AWS Console.
  2. No painel à esquerda, clique em Clusters.
  3. 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

  1. Na aba Services, clique no serviço recém-criado. No nosso caso, o nome começa com “a2c-iis-site-darede”.
  2. 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:

https://aws.amazon.com/pt/app2container/ https://community.aws/content/2Zssp5TsUcm6Z5iFDDTdzOQuk6L/dockerize-asp-net-framework-application-using-app2container-deploy-to-aws-ecs https://docs.aws.amazon.com/whitepapers/latest/replatform-dotnet-apps-with-windows-containers/walkthrough.html https://docs.aws.amazon.com/app2container/latest/UserGuide/iam-a2c.html#iam-user-containerize https://aws.amazon.com/pt/app2container/faqs/
foto-thiago-Carlos Adriano De Souza
Carlos Adriano De Souza Especialista Microsoft | Workloads na Darede
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.

  • #AplicaçõesWeb, #BackEnd, #DesenvolvimentoWeb, #FrontEnd, #InterfacesInterativas, #JavaScript, #LinguagensDeProgramação, #NodeJS, #Programação, tecnologia

OUTRAS PUBLICAÇÕES

Novidades da Semana 15 a 19 de fevereiro

Todos os dias a AWS lança uma série novidades e atualizações em seus produtos que visam melhorar a vida de seus usuários. Reunimos algumas delas

Lambda – Muito além de uma função

Entenda de forma prática como funciona o AWS Lambda e como ele pode ajudar sua empresa a aumentar a produtividade do ambiente em cloud.

O que é Disaster Recovery?

Para evitar surpresas, possuir um plano de Disaster Recovery é essencial para garantir o bom funcionamento de um ambiente de TI. Veja o artigo que explica esse conceito!

Os Desafios de um Setor de Qualidade em empresas de Cloud.

Veja alguns dos principais desafios enfrentados pelos profissionais da qualidade em uma empresa de nuvem e como eles podem ser superados.

Entendendo o AWS Security Hub

Entenda de forma prática e simplificada como o AWS Security Hub pode auxiliar seu negócio e mantê-lo mais protegido!

O que é Infrastructure as Code (IaC)?

A Infrastructure as Code é um modo de automatizar o provisionamento da infraestrutura de TI e aliada com a cultura DevOps pode ser de grande ajuda para as empresas. Confira o artigo do blog sobre esse conceito.

« Anterior Página1 Página2 Página3 Página4 Página5 Página6 Página7 Página8 Página9 Página10 Próxima »
  • Alameda Araguaia, 2044 - Bloco 1 - CJ 210/211
    06455-000 - Alphaville,
    Barueri São Paulo - Brasil
  • +55 11 3900-1010 | 3995-6919
Acesse Darede Portugal
Darede Portugal

Conecte-se conosco

  • E-books
  • Blog

Mais

  • Fale Conosco
  • Canal Compliance
  • Seja Parceiro Autorizado
  • Governança Corporativa

newsletter

  • Política de Privacidade e Cookies
  • Perguntas Frequentes
© Copyright 2025 Darede à nuvem
Todos os direitos reservados | By Damidia Marketing & Conteúdo

Nós usamos cookies para garantir e oferecer a melhor experiência de navegação em nosso site! Mais informações

ACEITAR & FECHAR
RECUSAR