

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á.

# Implantar uma aplicação ASP.NET Core 2.0 no Amazon ECS (EC2)
<a name="deployment-ecs-aspnetcore-ec2"></a>

Esta seção descreve como usar o assistente **Publicar contêiner na AWS**, fornecido como parte do kit de ferramentas para Visual Studio, para implantar uma aplicação ASP.NET Core 2.0 em contêineres direcionados para Linux por meio do Amazon ECS usando o tipo de execução do EC2. Como uma aplicação web é desenvolvida para funcionar continuamente, ela será implantada como um serviço.

## Antes de publicar o contêiner
<a name="tkv-deploy-ecs-netcore-prerequisites"></a>

Antes de usar **Publicar contêiner na AWS** para implantar sua aplicação ASP.NET Core 2.0:
+  [Especifique suas credenciais da AWS](deployment-ecs-specify-credentials.md) e [faça a configuração no Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/get-set-up-for-amazon-ecs.html).
+  [Instale o Docker](https://docs.docker.com/engine/installation). Existem algumas opções de instalação diferentes, incluindo o [Docker para Windows](https://docs.docker.com/docker-for-windows/install/).
+  [Crie um cluster do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-cluster.html) de acordo com as necessidades de seu aplicativo web. São necessárias apenas algumas etapas.
+ No Visual Studio, crie (ou abra) um projeto para uma aplicação ASP.NET Core 2.0 em contêiner direcionada para Linux.

## Acessando o contêiner de publicação no AWS assistente
<a name="tkv-deployment-ecs-netcore-accessing"></a>

Para implantar uma aplicação ASP.NET Core 2.0 em contêiner direcionada para Linux, clique com o botão direito no projeto no Solution Explorer e selecione **Publicar contêiner na AWS**.

Você também pode selecionar **Publicar contêiner na AWS** no menu Compilar do Visual Studio.

## Publicar contêiner no AWS assistente
<a name="tkv-deploy-ecs-pubtoaws"></a>

 **Perfil de conta a usar** — selecione o perfil de conta a ser usado.

 **Região** — escolha uma região de implantação. O perfil e a região são usados para configurar os recursos do ambiente de implantação e selecionar o registro padrão do Docker.

 **Configuração** — selecione a configuração da compilação para a imagem do Docker.

 **Repositório do Docker** — escolha um repositório existente do Docker ou digite o nome de um novo repositório e ele será criado. Este é o repositório para onde a imagem do contêiner de compilação é enviada.

 **Tag** — selecione uma tag existente ou digite o nome de uma nova tag. As tags podem rastrear detalhes importantes, como versão, opções ou outros elementos exclusivos da configuração de contêineres do Docker.

 **Implantação** — selecione **Service on an ECS Cluster (Serviço em um cluster do ECS)**. Use esta opção de implantação para aplicativos de execução prolongada (como um aplicativo web ASP.NET Core 2.0).

 **Salvar as configurações no `aws-docker-tools-defaults.json` e configurar o projeto para ser implantado pela linha de comando**: marque essa opção se você deseja ter flexibilidade para implantar pela linha de comando. Use `dotnet ecs deploy` a partir do diretório do projeto para implantar e para `dotnet ecs publish` o contêiner.

## Página de configuração da execução
<a name="tkv-deploy-ecs-launch-config"></a>

 **Cluster do ECS** — selecione o cluster que executará a imagem do Docker. Você pode [criar um cluster ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html) usando o AWS Management Console.

 **Tipo de execução** — escolha EC2. Para usar o tipo de execução Fargate, consulte [Implantar de um aplicativo ASP.NET Core 2.0 no Amazon ECS (Fargate)](deployment-ecs-aspnetcore-fargate.md).

## Página de configuração do serviço
<a name="tkv-deploy-ecs-service"></a>

 **Serviço** — selecione um dos serviços na caixa suspensa para implantar seu contêiner em um serviço existente. Ou escolha **Create New (Criar novo)** para criar um novo serviço. Os nomes de serviço devem ser exclusivos em um cluster, mas é possível ter serviços nomeados similarmente em vários clusters de uma ou várias regiões.

 **Número de tarefas** — o número de tarefas a implantar e manter em execução em seu cluster. Cada tarefa é uma instância do seu contêiner.

 **Porcentagem de integridade mínima** — a porcentagem de tarefas que precisam permanecer em estado `RUNNING` durante uma implantação, arredondada para cima e para o valor inteiro mais próximo.

 **Porcentagem máxima** — a porcentagem de tarefas que são permitidas no estado `RUNNING` ou `PENDING` durante uma implantação, arredondada para baixo e para o valor inteiro mais próximo.

 **Modelos de posicionamento** — selecione um modelo de posicionamento de tarefas.

Quando você inicia uma tarefa em um cluster, o Amazon ECS precisa determinar onde posicionar a tarefa com base nos requisitos especificados na definição da tarefa, como CPU e memória. Do mesmo modo, quando você reduz proporcionalmente a contagem de tarefas, o Amazon ECS deve determinar que tarefas serão concluídas.

O modelo de posicionamento controla como as tarefas são executadas em um cluster:
+ AZ Balanced Spread (Distribuição balanceada de AZ) – Distribua tarefas por zonas de disponibilidade e entre instâncias de contêiner na zona de disponibilidade.
+ AZ Balanced BinPack - distribua tarefas entre zonas de disponibilidade e entre instâncias de contêiner com a menor memória disponível.
+ BinPack - distribua tarefas com base na menor quantidade disponível de CPU ou memória.
+ One Task Per Host (Uma tarefa por host) – Posicione, no máximo, uma tarefa do serviço em cada instância de contêiner.

Para obter mais informações, consulte [Posicionamento de tarefas no Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement.html).

## Página do application load balancer
<a name="tkv-deploy-ecs-app-load-balancer"></a>

 **Configurar Application Load Balancer** — marque para configurar um Application Load Balancer.

 **Selecionar função do IAM para o serviço** — selecione uma função existente ou escolha **Create New (Criar nova)** e uma nova função será criada.

 **Load balancer** — selecione um load balancer existente ou escolha **Create New (Criar novo)** e digite o nome do novo load balancer.

 **Porta de ouvinte** — selecione uma porta de ouvinte ou escolha **Create New (Criar nova)** e digite um número de porta. O padrão, a porta `80`, é adequado para a maioria dos aplicativos web.

 **Grupo de destino** — por padrão, o load balancer envia solicitações para destinos registrados usando a porta e o protocolo especificados por você para o grupo de destino. Você pode substituir essa porta ao registrar cada destino no grupo de destino.

 **Padrão do caminho** — o load balancer usará o roteamento com base no caminho. Aceite o padrão `/` ou forneça um padrão diferente. O padrão do caminho diferencia maiúsculas de minúsculas, pode ter até 128 caracteres e conter um [conjunto de caracteres selecionados](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions).

 **Caminho de verificação de integridade** — o caminho de ping que é usado como destino para as verificações de integridade. Por padrão, é `/`, e é adequado para a maioria dos aplicativos web. Insira um caminho diferente, se necessário. Se o caminho inserido for inválido, a verificação de integridade falhará e será considerada não íntegra.

Se você implantar vários serviços, e cada serviço for implantado em um caminho ou local diferente, você poderá precisar de caminhos de verificação personalizados.

## Página de definição de tarefas do ECS
<a name="tkv-deploy-ecs-task-definition"></a>

 **Definição de tarefa** — selecione uma definição de tarefa existente ou escolha **Create New (Criar nova)** e digite o nome da nova definição de tarefa.

 **Contêiner** — selecione um contêiner existente ou escolha **Create New (Criar novo)** e digite o nome do novo contêiner.

 **Memória (MiB)** — forneça valores para o **Limite flexível** ou **Limite rígido**, ou ambos.

O *limite flexível* (em MiB) de memória a ser reservado para o contêiner. O Docker tenta manter a memória do contêiner abaixo do limite flexível. O contêiner poderá consumir mais memória, até o limite rígido especificado pelo parâmetro de memória (se aplicável), ou toda a memória disponível na instância do contêiner, o que ocorrer primeiro.

O *limite rígido* (em MiB) de memória a ser apresentado ao contêiner. Caso tente exceder a memória especificada aqui, o contêiner será excluído.

 **Função** da tarefa - Selecione uma função de tarefa para uma função do IAM que permita ao contêiner chamar as AWS APIs que estão especificadas nas políticas associadas em seu nome. Esta é a forma como as credenciais são passadas para o seu aplicativo. Veja [como especificar credenciais AWS de segurança para seu aplicativo](deployment-ecs-specify-credentials.md).

 **Mapeamento de porta** — adicione, modifique ou exclua os mapeamentos de portas para o contêiner. Se um load balancer estiver ativo, a porta do host será definida por padrão como 0 e a atribuição de portas será dinâmica.

 **Variáveis do ambiente** — adicione, modifique ou exclua as variáveis de ambiente do contêiner.

Quando estiver satisfeito com a configuração, clique em **Publish (Publicar)** para iniciar o processo de implantação.

## Contêiner de publicação em AWS
<a name="tkv-deploy-ecs-publishing"></a>

Os eventos são exibidos durante a implantação. O assistente é fechado automaticamente quando a conclusão é bem-sucedida. Você pode substituir isso desmarcando a caixa na parte inferior da página.

Você pode encontrar o URL das suas novas instâncias no AWS Explorer. Expanda o Amazon ECS e os clusters e, em seguida, clique no seu cluster.