

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 EC2) Auto Scaling, Amazon Simple Storage Service (Amazon S3) e Amazon Route 53 53. 

O aplicativo web.NET é implantado no AWS Elastic Beanstalk, que é executado em um grupo de 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. Para um banco de dados, você pode usar o Amazon RDS em um Multi-AZ ambiente 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**
+ O AWS Elastic Beanstalk é executado 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\#
+ 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 fácil de usar para implantar e escalar aplicativos web.NET. O Elastic Beanstalk gerencia automaticamente o provisionamento de capacidade, o balanceamento de carga e o escalonamento automático.
+ [Grupo do Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html): o Elastic Beanstalk inclui um grupo do Auto Scaling que gerencia as instâncias do Amazon EC2 no ambiente. 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 balanceador de carga, o grupo é configurado com um intervalo de instâncias a serem executadas, 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 do EC2 no ambiente.
+ [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. NET/IIS plataforma. 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 ASP.NET do Elastic Beanstalk Core](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\# Corner)
+ [Escalar o tamanho do seu grupo de Auto Scaling (Documentação d](https://docs.aws.amazon.com/autoscaling/ec2/userguide/scaling_plan.html)o Amazon EC2)
+ [Alta disponibilidade (Multi-AZ) para Amazon RDS (documentação](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) 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, baixe e descompacte o seguinte arquivo: attachment.zip](samples/p-attach/df606a2d-b0a8-4035-b377-0a760e7300c9/attachments/attachment.zip)