

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Migre uma aplicação .NET do Microsoft Azure App Service para o AWS Elastic Beanstalk
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk"></a>

*Raghavender Madamshitti, Amazon Web Services*

## Resumo
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-summary"></a>

Esse padrão descreve como migrar um aplicativo web.NET hospedado no Microsoft Azure App Service para o AWS Elastic Beanstalk. Há duas maneiras de migrar aplicativos para o Elastic Beanstalk:
+ Use o AWS Toolkit for Visual Studio: Esse plug-in para o IDE do Microsoft Visual Studio fornece a maneira mais fácil e direta de implantar aplicativos.NET personalizados na AWS. Você pode usar essa abordagem para implantar código.NET diretamente na AWS e criar recursos de suporte, como o Amazon Relational Database Service (Amazon RDS) para bancos de dados SQL Server, diretamente do Visual Studio.
+ Carregar e implantar no Elastic Beanstalk: cada Serviço de Aplicativo do Azure inclui um serviço em segundo plano chamado Kudu, que é útil para capturar despejos de memória e registros de implantação, visualizar parâmetros de configuração e acessar pacotes de implantação. Você pode usar o console Kudu para acessar o conteúdo do Azure App Service, extrair o pacote de implantação e, em seguida, carregar o pacote no Elastic Beanstalk usando a opção de upload e implantação no console do Elastic Beanstalk.

Esse padrão descreve a segunda abordagem (fazer o upload do seu aplicativo para o Elastic Beanstalk por meio do Kudu). O padrão também usa os seguintes serviços da AWS: AWS Elastic Beanstalk, Amazon Virtual Private Cloud (Amazon VPC), Amazon, Amazon Elastic Compute Cloud ( CloudWatchAmazon) Auto Scaling, EC2 Amazon Simple Storage Service (Amazon S3) e Amazon Route 53. 

O aplicativo web.NET é implantado no AWS Elastic Beanstalk, que é executado em um grupo Amazon EC2 Auto Scaling. Você pode configurar uma política de escalabilidade com base nas CloudWatch métricas da Amazon, como a utilização da CPU. No caso de banco de dados, você pode usar o Amazon RDS em um ambiente Multi-AZ ou o Amazon DynamoDB, dependendo do seu aplicativo e dos requisitos comerciais. 

## Pré-requisitos e limitações
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um aplicativo web.NET em execução no Serviço de Aplicativo do Azure
+ Permissão para usar o console Kudu do Serviço de Aplicativo do Azure

**Versões do produto**
+ .NET Core (x64) 1.0.1, 2.0.0 ou superior, ou .NET Framework 4.x, 3.5 (consulte [.NET no histórico da plataforma do Windows Server](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-dotnet.html))
+ Serviços de Informações da Internet (IIS) versão 8.0 ou superior, em execução no Windows Server 2012 ou superior
+ .NET 2.0 ou 4.0 runtime.

## Arquitetura
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-architecture"></a>

**Pilha de tecnologia de origem**
+  Aplicativo desenvolvido usando o .NET Framework 3.5, ou superior, ou .NET Core 1.0.1, 2.0.0 ou superior e hospedado no Serviço de Aplicativo do Azure (aplicativo web ou aplicativo de API)

**Pilha de tecnologias de destino**
+ AWS Elastic Beanstalk em execução em um grupo do Amazon EC2 Auto Scaling

**Arquitetura de migração**

![\[O Kudu acessa o conteúdo do Azure App Service, obtém o pacote de implantação e faz o upload dele para o Elastic Beanstalk.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/df606a2d-b0a8-4035-b377-0a760e7300c9/images/dd15f97b-9cf2-4bcc-af45-44df1c4ca4a5.png)


 

**Fluxo de trabalho de implantação**

![\[Fluxo de implantação para criar a aplicação, publicá-la no ambiente de lançamento e, em seguida, gerenciar esse ambiente.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/df606a2d-b0a8-4035-b377-0a760e7300c9/images/accec77d-c753-4166-8f27-bd4932b3d884.png)


## Ferramentas
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-tools"></a>

**Ferramentas**
+ .NET Core ou .NET Framework
+ C\$1
+ IIS
+ Console Kudu

**Serviços e atributos da AWS**
+ [AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) — O Elastic Beanstalk é um serviço para implantar e easy-to-use escalar aplicativos web.NET. O Elastic Beanstalk gerencia automaticamente o provisionamento de capacidade, o balanceamento de carga e o escalonamento automático.
+ Grupo [Amazon EC2 Auto Scaling — O Elastic Beanstalk inclui um grupo](https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html) de Auto Scaling que gerencia as instâncias da Amazon no ambiente. EC2 Em um ambiente de instância única, o grupo de Auto Scaling garante que sempre haja uma instância em execução. Em um ambiente com balanceamento de carga, você pode configurar o grupo com uma variedade de instâncias para execução, e o Amazon EC2 Auto Scaling adiciona ou remove instâncias conforme necessário, com base na carga.
+ [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) — Quando você ativa o balanceamento de carga no AWS Elastic Beanstalk, ele cria um balanceador de carga que distribui o tráfego entre as instâncias no ambiente. EC2 
+ [Amazon CloudWatch — O](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) Elastic Beanstalk CloudWatch usa automaticamente a Amazon para fornecer informações sobre seus recursos de aplicativo e ambiente. A Amazon CloudWatch oferece suporte a métricas padrão, métricas personalizadas e alarmes.
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html): o Amazon Route 53 é um web service de Sistema de Nomes de Domínio (DNS) altamente disponível e dimensionável. Você pode usar os registros de alias do Route 53 para mapear nomes de domínio personalizados para ambientes do AWS Elastic Beanstalk.

## Épicos
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-epics"></a>

### Configurar uma VPC
<a name="set-up-a-vpc"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configurar uma nuvem privada virtual (VPC). | Na sua conta da AWS, crie uma VPC com as informações necessárias. | Administrador de sistema | 
| Crie sub-redes. | Crie duas ou mais sub-redes em sua VPC. | Administrador de sistema | 
| Crie uma tabela de rotas. | Crie uma tabela de rotas com base em seus requisitos. | Administrador de sistema | 

### Configurar Elastic Beanstalk
<a name="set-up-elastic-beanstalk"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Acessar o console Kudu do Serviço de Aplicativo do Azure. | Acesse o Kudu por meio do portal do Azure navegando até o painel do Serviço de Aplicativo e escolhendo **Ferramentas Avançadas**, **Go**. Ou então, você pode modificar a URL do Serviço de Aplicativo do Azure da seguinte forma: `https://<appservicename>.scm.azurewebsites.net`. | Desenvolvedor de aplicativos, administrador do sistema | 
| Baixe o pacote de implantação do Kudu. | Navegue até o Windows PowerShell escolhendo a **DebugConsole**opção. Isso abrirá o console do Kudo. Vá até a pasta `wwwroot` e faça o download. Isso baixará o pacote de implantação do Serviço de Aplicativo do Azure como um arquivo zip. Para ver um exemplo, consulte o anexo. | Desenvolvedor de aplicativos, administrador do sistema | 
| Crie um pacote para o Elastic Beanstalk. | Descompacte o pacote de implantação que você baixou do Serviço de Aplicativo do Azure. Crie um arquivo JSON chamado `aws-windows-deployment-manifest.json` (esse arquivo é necessário somente para aplicativos.NET Core). Crie um arquivo zip que inclua `aws-windows-deployment-manifest.json` e o arquivo do pacote de implantação do Serviço de Aplicativo do Azure. Para ver um exemplo, consulte o anexo. | Desenvolvedor de aplicativos, administrador do sistema | 
| Crie um novo aplicativo do Elastic Beanstalk. | Abra o console do Elastic Beanstalk. Escolha um aplicativo existente ou crie um aplicativo novo. | Desenvolvedor de aplicativos, administrador do sistema | 
| Criar o ambiente | No menu **Ações** do console do Elastic Beanstalk, escolha **Criar ambiente**. Selecione o ambiente do servidor web e a plataforma .NET/IIS. Em Código do aplicativo, escolha **Fazer upload**. Faça upload do arquivo zip que você preparou para o Elastic Beanstalk e escolha **Create Environment.** | Desenvolvedor de aplicativos, administrador do sistema | 
| Configure a Amazon CloudWatch. | Por padrão, o CloudWatch monitoramento básico está ativado. **Se você quiser alterar a configuração, no assistente do Elastic Beanstalk, escolha o aplicativo publicado e, em seguida, escolha Monitoramento.** | Administrador de sistema | 
| Verifique se o pacote de implantação está no Amazon S3.  | Quando o ambiente do aplicativo for criado, você poderá encontrar o pacote de implantação no bucket do S3. | Desenvolvedor de aplicativos, administrador do sistema | 
| Testar o aplicativo. | Quando o ambiente for criado, use a URL fornecida no console do Elastic Beanstalk para testar a aplicação. | Administrador de sistema | 

## Recursos relacionados
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-resources"></a>
+ [Conceitos do AWS Elastic Beanstack](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.html) (Documentação do Elastic Beanstalk)
+ [Conceitos básicos do .NET no Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/dotnet-getstarted.html) (Documentação do Elastic Beanstalk)
+ [Consola Kudu](https://github.com/projectkudu/kudu/wiki/Kudu-console) () GitHub
+ [Using “Kudu” to Manage Azure Web Apps](https://www.gslab.com/blogs/kudu-azure-web-app/) (artigo do GS Lab)
+ [Implantações personalizadas do ASP.NET Core Elastic Beanstalk](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/deployment-beanstalk-custom-netcore.html) (guia do usuário do AWS Toolkit for Visual Studio)
+ [Documentação do Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html)
+ [Plataformas com suporte do AWS Elastic Beanstalk](https://docs.amazonaws.cn/en_us/elasticbeanstalk/latest/platforms/platforms-supported.html) (Documentação do Elastic Beanstalk)
+ [Implante um aplicativo web na AWS](https://www.c-sharpcorner.com/article/deploying-a-web-application-to-aws/) (artigo da C\$1 Corner)
+ [Dimensionando o tamanho do seu grupo de Auto Scaling (documentação](https://docs.aws.amazon.com/autoscaling/ec2/userguide/scaling_plan.html) da Amazon EC2 )
+ [Alta disponibilidade (Multi-AZ) para o Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) (Documentação do Amazon RDS)

## Mais informações
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-additional"></a>

**Observações**
+ Se você estiver migrando um banco de dados on-premises ou do Azure SQL Server para o Amazon RDS, também deverá atualizar os detalhes da conexão do banco de dados. 
+ Para fins de teste, um exemplo de aplicativo de demonstração é anexado.

## Anexos
<a name="attachments-df606a2d-b0a8-4035-b377-0a760e7300c9"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/df606a2d-b0a8-4035-b377-0a760e7300c9/attachments/attachment.zip)