Aprenda a migrar suas aplicações .Net do servidor IIS Windows para o Elastic Beanstalk usando o assistente WWAMA da AWS.

Por Carlos Adriano de Souza 
05/09/2023 

Hoje iremos falar sobre migração de aplicações.Net de um servidor IIS Windows para Elastic Beanstalk, usando o assistente WWAMA, fornecido pela AWS.

Exemplo da página a ser migrada para AWS Elastic Beanstalk:

Visão geral WWAMA:

O Windows Web Application Migration Assistant (WWAMA) para AWS Elastic Beanstalk é um utilitário PowerShell que migra aplicações ASP.NET e ASP.NET Core de servidores IIS Windows para  Elastic Beanstalk. O assistente de migração pode migrar um site inteiro e sua configuração para o Elastic Beanstalk com o mínimo ou nenhuma alteração no aplicativo. Depois que o assistente migra o aplicativo, o Elastic Beanstalk lida automaticamente com os detalhes contínuos de provisionamento de capacidade, balanceamento de carga, dimensionamento automático, monitoramento da integridade do aplicativo e aplicação de patches e atualizações.

Pré-requisitos WWAMA:

  •  IIS 8.0 ou superior | Windows Server 2012 ou superior;
  •  MS PowerShell version 3.0 ou superior;
  •  Microsoft Web Deploy version 3.6 ou superior;
  •  Modulo AWSPowerShell;
  •  NET Framework 4.x, 2.0, 1.x ou .NET Core 3.0.0, 2.2.8, 2.1.14;
  •  Módulo WebAdministration for MS PowerShell. Você pode chegar essa dependência ao executar o comando “Import-Module WebAdministration”;
  • O servidor precisa ter acesso full a Internet para AWS.
O que é o Elastic Beanstalk?

O Elastic Beanstalk facilita ainda mais para os desenvolvedores implementarem e gerenciarem com rapidez aplicativos na Nuvem AWS. Os desenvolvedores simplesmente carregam seus aplicativos e o Elastic Beanstalk administra automaticamente os detalhes de implantação do provisionamento da capacidade, do balanceamento de carga, do Auto Scaling e do monitoramento da integridade do aplicativo.

Por que o AWS Elastic Beanstalk?

O Elastic Beanstalk é um serviço para implementar e escalar aplicações e serviços da Web. Envie seu código e o Elastic Beanstalk gerencia automaticamente à implantação, desde o provisionamento de capacidade, balanceamento de carga e escalabilidade automática até o monitoramento da integridade de aplicações.

 Limitações:
  • Caso tenha alguma dependência de software no servidor de origem, o WWAMA não detecta e não migra.
  • Pode haver no máximo uma porta HTTP e no máximo uma porta HTTPS vinculada ao site. Quando o site é migrado para o Elastic Beanstalk, as portas são vinculadas às portas 80 e 443, respectivamente.
  • Para migrar os certificados SSL existentes, exporte-os manualmente do servidor IIS, importe-os para o AWS Certificate Manager (ACM) e configure-os para o load balancer do Elastic Beanstalk. Para maiores informações: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https.html
Procedimento de migração
1. Criar um usuario do IAM

a. Crie o usuário como Programmatic Access e armazene as credenciais AccessKey e SecretKey que serão usadas posteriormente;

b. Anexe as politicas IAMReadOnlyAccess, AdministratorAccess-AWSElasticBeanstalk e AmazonS3FullAccess, conforme abaixo:

2. Configurar as credenciais para acesso a AWS 

Para usar o Elastick Beanstalk precisamos configurar as credenciais de acesso a AWS, no terminal do powershell como administrador digite o seguinte comando para configurar as credenciais da AWS:

Set-AWSCredential -AccessKey AccessNewUser -SecretKey SecretNewUser -StoreAs default;

As informações de AccessKey e SecretKey estão no arquivo .CSV gerado durante a criação do usuario no IAM no passo 1.

Para maiores informações referente CLI AWSPowerShell: https://aws.amazon.com/pt/powershell/

3. Clonar repositório do WWAMA no Gitgub

A ferramenta WWAMA encontra-se no repositório https://github.com/awslabs/windows-web-app-migration-assistant.git, ela deve ser baixada/clonada e armazenada em um diretório local no servidor onde encontra-se a aplicacao .NET, após isso descompacte-a.

4. A ferramenta WWAMA tem um assistente de migração conforme abaixo:

a. Descobre sites locais.

b. Seleciona site para migrar.

c. Descobre strings de conexao com banco de dados.

d. Atualiza strings de conexao com banco de dados.

e. Gera pacote para ser publicado no Elastic Beanstalk.

f. Publica aplicacao no Elastic Beanstalk

5. Executando o assistente WWAMA

Navegue até o diretório onde foi descompactado a ferramenta WWAMA (conforme o passo 3), para iniciar o assistente dentro do diretório digite o seguinte comando .\MigrateIISWebsiteToElasticBeanstalk.ps1

6. O assistente solicita informações de localização das credenciais, como não foi definido, pressione ENTER.
7. Nesta tela insira o nome do perfil que foi configurado com o comando Set-AWSCredential no passo 2, no nosso caso foi definido como “default”, pressione ENTER.
8. Insira a região em que deseja que o Elastic Beanstalk seja executado, iremos manter a opção padrão (us-east-1) e pressione ENTER.
9. O assistente lista os sites identificados, no nosso caso iremos selecionar a opcao 3(Sitedarede), pressione ENTER.
10. A seguir o assistente solicita que seja alterado quaisquer strings existentes, como não há strings existentes, pressione ENTER.
11. Em seguida defina um nome para sua aplicação no Elastic Beanstalk, no nosso caso iremos definir como "sitedarede”, pressione ENTER.
12. A seguir, selecionar a plataforma desejada, a plataforma deverá corresponder ao servidor de origem, no nosso caso selecionaremos "Windows Server 2019" na opção 6, pressione ENTER.
13. No tipo de Instância, selecione a opção desejada, no nosso caso selecionaremos a opção t2.micro, pressione ENTER.
14. Nesta tela o tipo de ambiente, iremos selecionar a opção 1 (SingleInstance), pressione ENTER.
15. Após isso o assistente migrara sua aplicação para o Elastic Beanstalk. Aguarde alguns minutos.
16. Quando a migração concluir, será mostrado uma tela conforme abaixo.
17. Logar no console AWS e selecionar Elastic Beanstalk, na tela do Beanstalk clicar no ambiente que foi criado recentemente, no nosso caso "sitedarede-env".
18. Na próxima tela clicar em "Versões de aplicativo".
19. A seguir, selecionar o bundle recém-criado e no menu Ações clicar em "Implantar".
20. Selecionar o ambiente criado(sitedarede-env) e depois em Implantar.  
21. Neste momento deverá aguardar o processo de deploy do bundle.
22. Quando o processo for concluído, Aparecerá uma mensagem semelhante a mensagem abaixo. Para acessar o site basta clicar no endereço conforme abaixo.
23. Pronto, site acessível via Elastic Beanstalk.
Importante: Caso esteja realizado essa atividade em ambiente de teste, não esqueça de remover após conclusão, para não gerar custos.
Conclusão

A vantagem do Elastic Beanstalk é que ele proporciona implantar aplicações WEB na nuvem AWS de uma maneira rápida, fácil e gerenciada com alta disponibilidade, balanceamento de carga, escalabilidade e redundância, tudo isso em apenas alguns minutos. Podemos considerar que o Elastic Beanstalk é o início da jornada de modernização para um ambiente Cloud. Uma outra vantagem é que a migração para o Elastic Beanstalk abstrai toda as configurações necessárias para criar um ambiente dentro da AWS que envolve a criação de recursos tais como instancias EC2, VPCs, armazenamentos, monitoramento e segurança do ambiente. 

foto-carlos-adriano
Carlos Adriano De Souza Especialista Microsoft Workloads
carlos.souza@darede.com.br

Profissional certificado com mais de 12 anos de experiência atuando com administração de servidores Windows 2003/2008/2012/2016/2019, desde a implantação a sustentacao do ambiente.

OUTRAS PUBLICAÇÕES

EBS Snapshot

EBS Snapshot O pai ta on!! No ecossistema da Amazon Web Services (AWS), o Amazon Elastic Block Store (EBS) desempenha um papel fundamental no armazenamento persistente de dados para instâncias do Amazon EC2.  Uma das ferramentas poderosas oferecidas pelo EBS é o EBS Snapshot, que permite criar cópias incrementais de volumes do EBS, fornecendo uma camada adicional de proteção e permitindo a rápida recuperação de dados.  Neste artigo, exploraremos o conceito de EBS e EBS Snapshots, discutiremos os problemas que essa ferramenta resolve e forneceremos um passo a passo sobre como criar um snapshot.  Além disso, demonstraremos como realizar snapshots de todas as instâncias EC2 por meio de código Python utilizando a biblioteca boto3 e como executar o mesmo processo usando a AWS CLI. EBS O Amazon Elastic Block Store (EBS) é um serviço de armazenamento de blocos persistentes fornecido pela AWS. Ele oferece volumes de armazenamento altamente disponíveis e duráveis que podem ser anexados a instâncias do EC2.  O EBS permite que você crie, anexe, restaure e faça backup de volumes facilmente, fornecendo armazenamento persistente e confiável para suas cargas de trabalho na nuvem. EBS Snapshot O EBS Snapshot é uma funcionalidade do EBS que permite criar cópias pontuais de volumes do EBS.  Esses snapshots são armazenados no Amazon S3 de forma incremental, capturando apenas as alterações nos dados desde o último snapshot. Essa abordagem de captura incremental economiza espaço de armazenamento e torna os snapshots extremamente eficientes.  Os EBS Snapshots são consistentes e podem ser usados para criar novos volumes EBS, permitindo a rápida recuperação de dados em caso de falhas ou necessidades de restauração. Fonte: Backup Diferencial VS Backup Incremental – EaseUS Todo Backup Problemas resolvidos pelo EBS Snapshot O EBS Snapshot resolve vários problemas relacionados à proteção de dados e recuperação de desastres. Aqui estão algumas das principais maneiras pelas quais essa ferramenta é útil: 1.Backup e restauração: Com o EBS Snapshot, você pode criar cópias de segurança de volumes do EBS e restaurá-las rapidamente em caso de falhas do sistema, erros operacionais ou exclusão acidental de dados. 2.Retenção de dados: Os snapshots fornecem uma maneira fácil de reter dados importantes. Você pode criar snapshots periódicos para manter pontos de recuperação históricos e estabelecer uma política de retenção de acordo com suas necessidades de negócios. 3.Clonagem de volumes: Os EBS Snapshots permitem criar novos volumes a partir de snapshots existentes. Isso é útil para criar clones de volumes para testes, desenvolvimento ou outras finalidades, sem afetar os dados originais. 4.Migração de dados: Os snapshots podem ser usados para migrar dados entre regiões da AWS. Você pode criar um snapshot em uma região e restaurá-lo em outra região, facilitando a transferência de dados de maneira segura e eficiente. Utilizando scripts Abaixo um exemplo utilizando python, onde o script roda todas as instancias de uma conta e executa o snapshot do volume root das instancias. import boto3   def create_snapshots():     ec2_client = boto3.client(‘ec2’)     ec2_list = ec2_client.describe_instances()         for instances in ec2_list [‘Reservations’]:         for instance in instances[‘Instances’]:             instance_id = instance[‘InstanceId’]             snapshot_description = f”Snapshot for instance {instance_id}”                         response = ec2_client.create_snapshot(                 Description = snapshot_description,                 VolumeId = instance[‘BlockDeviceMappings’][0][‘Ebs’][‘VolumeId’]             )                         print(f”Created snapshot {response[‘SnapshotId’]} for instance {instance_id}”)   # Executando a função para criar os snapshots create_snapshots() Caso queria executar pontualmente o snapshot via AWS CLI: aws ec2 create-snapshot –volume-id <volume-id> –description “Snapshot by AWS CLI” Conclusão Os EBS Snapshots oferecem uma maneira fácil de criar cópias pontuais de volumes, permitindo backup, recuperação de desastres, clonagem e migração de dados.  Neste artigo, discutimos o conceito de EBS e EBS Snapshots, destacamos os problemas que essa ferramenta resolve e fornecemos um passo a passo de como criar um snapshot usando a biblioteca boto3 em Python e a AWS CLI.  Xero no suvaco!!  Be Happy!!! Thiago Marques Technical Account Manager thiago.marques@darede.com.br Technical Account Manager da Darede, formato em Rede de Computadores, e pós graduado em Segurança da Informação. Possui ampla experiência em Datacenters e Service Providers, além de ser um entusiasta em DevOps e mercado financeiro.

Novidades da Semana – 28 de junho a 02 de julho

Por Cassius Oliveira e Flávio Rescia 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 que fazem mais sentido para nosso mercado e que certamente aplicaremos em nosso dia a dia. Confira as novidades das últimas semanas. Security & Governance AWS WAF – 15 novas transformações de texto O AWS WAF agora oferece suporte a 15 novas transformações de texto adicionais, o que permite a reformulação de solicitações da web com o objetivo de remover qualquer formatação incomum ou limpar entradas antes da avaliação da regra. Esse recurso pode também ser utilizado para identificar ameaças que estejam em overshadow devido a ação de invasores. AWS IAM – Access Analyzer adiciona novas verificações de política O AWS IAM adicionou mais de 100 novas verificações de políticas para facilitar a criação de permissões seguras e funcionais. Essas verificações têm a capacidade de analisar o bloqueio de condição em sua declaração de política e relatar avisos de segurança, erros e trazer sugestões de acordo com as características do sistema. AWS Systems Manager – Suporte a buscas de servidores em diversos campos do node O AWS Systems Manager, através do Session Manager, agora suporta a busca de servidores na barra de pesquisa da ferramenta. Amazon Cloudwatch – 14 novas funções matemáticas para métricas O Amazon Cloudwatch Metric Math adicionou 14 novas funções matemáticas para calcular métricas, permitindo a visualização de métricas personalizadas, valores logarítmicos e a mudança de latência ao longo do tempo. https://aws.amazon.com/pt/about-aws/whats-new/2021/06/cloudwatch-adds-new-metric-math-functions/ Compute & Operations AWS ParallelCluster – Suporte a Ubuntu 20.04 O AWS ParallelCluster é uma solução de gerenciamento de clusters open source que facilita a implementação e gestão de clusters de computação de alto desempenho (HPC) na nuvem AWS, e agora está suportando a versão 20.04 do Ubuntu. Além disso, a solução também incluiu o suporte ao Amazon FSx for Lustre. AWS DataSync – Novo recurso de sincronizar dados de arquivos do Amazon FSx for Windows File Server O AWS DataSync agora permite sincronizar dados de arquivos do Amazon FSx for Windows File Server dentro da ferramenta, fazendo com que ela tenha exatamente os mesmos arquivos que o ambiente on premises. AWS Amplify – Novo recurso O AWS Amplify adicionou um novo recurso de CI/CD full-stack, possibilitando a construção de backends condicionais, a geração automática de aws-exports.js, entre outras features. Amazon ECS – A AMI do Bottlerocket está disponível para produção O Amazon ECS anunciou que a AMI do Bottlerocket está disponível para produção. O Bottlerocket é um SO open source baseado em Linux construído para rodar containers, aumentando a segurança e diminuindo os custos de manutenção de clusters no ECS. AWS Lambda – Suporte a autenticação SASL/PLAIN para funções do Apache Kafka O AWS Lambda agora pode acessar usuários e senhas protegidas pelo AWS Secrets Manager usando autenticação SASL/PLAIN, quando são acionadas a partir de tópicos autogerenciados do Apache Kafka. Amazon EC2 – Novos recursos para as instâncias inf1 O Amazon EC2 adicionou novos recursos para as instâncias inf1, que promete aumentar a performance além de preços mais baixos. AWS Glue – Suporte a JSON Schema O AWS Glue Schema Registry agora suporta schema no formato JSON, permitindo o gerenciamento de dados de streaming nesse formato. Quer saber as novidades da AWS das últimas semanas? Leia nosso blog! E acompanhe toda sexta-feira em nosso canal do Youtube nossa live sobre as Novidades da Semana.

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