

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

# Tutorial: Implantar um aplicativo no Amazon ECS
<a name="tutorial-ecs-deployment"></a>

 Neste tutorial, você aprende como implantar um aplicativo no Amazon ECS usando CodeDeploy. Você começa com um aplicativo que já criou e implantou no Amazon ECS. A primeira etapa é atualizar o aplicativo modificando seu arquivo de definição de tarefa com uma nova tag. Em seguida, você usa CodeDeploy para implantar a atualização. Durante a implantação, CodeDeploy instala sua atualização em um novo conjunto de tarefas de substituição. Depois, ele muda o tráfego de produção da versão original do serviço do seu aplicativo do Amazon ECS, que está em seu conjunto de tarefas original, para a versão atualizada no conjunto de tarefas de substituição.

 Durante uma implantação do Amazon ECS, CodeDeploy usa um balanceador de carga configurado com dois grupos-alvo e um ouvinte de tráfego de produção. O diagrama a seguir mostra como o balanceador de carga, o receptor de produção, os grupos de destino e o aplicativo do Amazon ECS são relacionados antes do início da implantação. Este tutorial usa um Application Load Balancer. Você também pode usar um Network Load Balancer. 

![\[O Application Load Balancer ou o Network Load Balancer, um receptor de produção, dois grupos de destino, um conjunto de tarefas e um serviço do Amazon ECS.\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-with-no-test-listener-step-1.png)


 Após uma implantação bem-sucedida, o listener do tráfego de produção atende ao tráfego do novo conjunto de tarefas de substituição e o conjunto de tarefas original é encerrado. O diagrama a seguir mostra como seus recursos estão relacionados após uma implantação bem-sucedida. Para obter mais informações, consulte [O que acontece durante uma implantação do](deployment-steps-ecs.md#deployment-steps-what-happens). 

![\[O Application Load Balancer ou o Network Load Balancer, um receptor de produção, dois grupos de destino e um conjunto de tarefas de substituição.\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-with-no-test-listener-step-5.png)


Para obter informações sobre como usar o AWS CLI para implantar um aplicativo no Amazon ECS, consulte [Tutorial: Criando um serviço usando uma blue/green implantação](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html). Para obter informações sobre como usar CodePipeline para detectar e implantar automaticamente alterações em um serviço do Amazon ECS com CodeDeploy, consulte [Tutorial: Criar um pipeline com uma fonte e ECS-to-CodeDeploy implantação do Amazon ECR.](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html) 

Depois de concluir este tutorial, você pode usar o CodeDeploy aplicativo e o grupo de implantação que você criou para adicionar um teste de validação de implantação[Tutorial: Implantar um serviço do Amazon ECS com um teste de validação](tutorial-ecs-deployment-with-hooks.md). 

**Topics**
+ [Pré-requisitos](tutorial-ecs-prereqs.md)
+ [Etapa 1: Atualizar o código do aplicativo do Amazon ECS](tutorial-ecs-update-the-ecs-application.md)
+ [Etapa 2: criar o AppSpec arquivo](tutorial-ecs-create-appspec-file.md)
+ [Etapa 3: usar o CodeDeploy console para implantar seu aplicativo](tutorial-ecs-deployment-deploy.md)
+ [Etapa 4: limpar](tutorial-ecs-clean-up.md)

# Pré-requisitos
<a name="tutorial-ecs-prereqs"></a>

Para concluir este tutorial, você deve primeiramente:
+  Concluir as etapas 2 e 3 em [Começando com CodeDeploy](getting-started-codedeploy.md). 
+  Criar um Application Load Balancer configurado com dois grupos de destino e um receptor. Para obter informações sobre como criar um load balancer usando o console, consulte [Configure um balanceador de carga, grupos-alvo e ouvintes para implantações do CodeDeploy Amazon ECS](deployment-groups-create-load-balancer-for-ecs.md). Para obter informações sobre como criar um balanceador de carga usando o AWS CLI, consulte [Etapa 1: Criar um Application Load Balancer no Guia](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html#create-blue-green-loadbalancer) do usuário do *Amazon Elastic Container Service*. Ao criar o load balancer, anote o seguinte para este tutorial: 
  +  O nome do seu load balancer. 
  +  Os nomes dos seus grupos de destino. 
  +  A porta usada pelo listener do load balancer. 
+  Crie um cluster e serviço do Amazon ECS. Para obter mais informações, consulte as etapas 2, 3 e 4 no [Tutorial: Criando um serviço usando uma blue/green implantação](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html) no *Guia do usuário do Amazon Elastic Container Service*. Anote o seguinte para este tutorial: 
  +  O nome do cluster do Amazon ECS. 
  +  O ARN da definição de tarefa usado pelo serviço do Amazon ECS. 
  +  O nome do contêiner usado pelo serviço do Amazon ECS. 
+  Crie um bucket do Amazon S3 para seu AppSpec arquivo. 

# Etapa 1: Atualizar o código do aplicativo do Amazon ECS
<a name="tutorial-ecs-update-the-ecs-application"></a>

 Nesta seção, você atualiza o aplicativo do Amazon ECS com uma nova revisão de sua definição de tarefa. A revisão atualizada adiciona um novo par de chave e tag. No [Etapa 3: usar o CodeDeploy console para implantar seu aplicativo](tutorial-ecs-deployment-deploy.md), você implanta a versão atualizada do aplicativo do Amazon ECS. 

**Para atualizar a definição da tarefa**

1. Abra o console na [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1.  No painel de navegação, selecione **Definições de tarefas**. 

1. Escolha a definição de tarefa usada pelo serviço do Amazon ECS.

1. Selecione a revisão da definição de tarefa e escolha **Criar nova revisão**, **Criar nova revisão**.

1.  Para este tutorial, faça uma pequena atualização na definição de tarefa adicionando uma tag. Na parte inferior da página, em **Tags**, crie uma nova tag inserindo um novo par de chave e valor. 

1.  Escolha **Criar**. 

   O número de revisão da definição da sua tarefa foi incrementado em um. 

1.  Selecione a guia **JSON**. Anote o seguinte, pois você precisará dessas informações na próxima etapa. 
   +  O valor de `taskDefinitionArn`. O formato é `arn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision`. Esse é o ARN da sua definição de tarefa atualizada. 
   +  No elemento `containerDefinitions`, o valor de `name`. Esse é o nome do contêiner. 
   +  No elemento `portMappings`, o valor de `containerPort`. Essa é a porta do contêiner. 

# Etapa 2: criar o AppSpec arquivo
<a name="tutorial-ecs-create-appspec-file"></a>

 Nesta seção, você cria seu AppSpec arquivo e o carrega no bucket do Amazon S3 que você criou na [Pré-requisitos](tutorial-ecs-prereqs.md) seção. O AppSpec arquivo para uma implantação do Amazon ECS especifica a definição da tarefa, o nome do contêiner e a porta do contêiner. Para obter mais informações, consulte [AppSpec Exemplo de arquivo para uma implantação do Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs) e [AppSpec seção 'recursos' para implantações do Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Para criar seu AppSpec arquivo**

1.  Se você quiser criar seu AppSpec arquivo usando YAML, crie um arquivo chamado`appspec.yml`. Se você quiser criar seu AppSpec arquivo usando JSON, crie um arquivo chamado`appspec.json`. 

1.  Escolha a guia apropriada, dependendo se você usa YAML ou JSON para seu AppSpec arquivo, e copie o conteúdo para o AppSpec arquivo que você acabou de criar. Para a propriedade `TaskDefinition`, use o ARN da definição de tarefa que você anotou na seção [Etapa 1: Atualizar o código do aplicativo do Amazon ECS](tutorial-ecs-update-the-ecs-application.md). 

------
#### [ JSON AppSpec ]

   ```
   {
     "version": 0.0,
     "Resources": [
       {
         "TargetService": {
           "Type": "AWS::ECS::Service",
           "Properties": {
             "TaskDefinition": "arn:aws:ecs:aws-region-id:aws-account-id:task-definition/ecs-demo-task-definition:revision-number",
             "LoadBalancerInfo": {
               "ContainerName": "your-container-name",
               "ContainerPort": your-container-port
             }
           }
         }
       }
     ]
   }
   ```

------
#### [ YAML AppSpec ]

   ```
   version: 0.0
   Resources:
     - TargetService:
         Type: AWS::ECS::Service
         Properties:
           TaskDefinition: "arn:aws:ecs:aws-region-id:aws-account-id:task-definition/ecs-demo-task-definition:revision-number"
           LoadBalancerInfo:
             ContainerName: "your-container-name"
             ContainerPort: your-container-port
   ```

------
**nota**  
 O conjunto de tarefas de substituição herda a sub-rede, o grupo de segurança, a versão da plataforma e os valores de IP públicos atribuídos de seu conjunto de tarefas original. Você pode substituir esses valores para seu conjunto de tarefas de substituição definindo suas propriedades opcionais em seu AppSpec arquivo. Para obter mais informações, consulte [AppSpec seção 'recursos' para implantações do Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs) e [AppSpec Exemplo de arquivo para uma implantação do Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs). 

1.  Faça upload AppSpec do arquivo para o bucket do S3 que você criou como pré-requisito para este tutorial. 

# Etapa 3: usar o CodeDeploy console para implantar seu aplicativo
<a name="tutorial-ecs-deployment-deploy"></a>

 Nesta seção, você cria um CodeDeploy aplicativo e um grupo de implantação para implantar seu aplicativo atualizado no Amazon ECS. Durante a implantação, CodeDeploy transfere o tráfego de produção do seu aplicativo para sua nova versão em um novo conjunto de tarefas de substituição. Para concluir esta etapa, você precisa dos seguintes itens: 
+  O nome do cluster do Amazon ECS. 
+  O nome do serviço do Amazon ECS. 
+  O nome do Application Load Balancer. 
+  A porta do listener de produção. 
+  Os nomes dos grupos de destino. 
+  O nome do bucket do S3 que você criou. 

**Para criar um CodeDeploy aplicativo**

1. Faça login no Console de gerenciamento da AWS e abra o CodeDeploy console em [https://console.aws.amazon.com/codedeploy/](https://console.aws.amazon.com/codedeploy/).

1. Escolha **Criar aplicativo**.

1. Em **Nome do aplicativo**, insira **ecs-demo-codedeploy-app**.

1. Em **Compute platform (Plataforma de computação)**, selecione **Amazon ECS**.

1. Escolha **Criar aplicativo**.

**Para criar um grupo CodeDeploy de implantação**

1. Na guia **Deployment groups (Grupos de implantação)** da página do aplicativo, escolha **Create deployment group (Criar grupo de implantação)**.

1. Em **Nome do grupo de implantação**, insira **ecs-demo-dg**.

1. Em **Função de serviço**, escolha uma função de serviço que conceda CodeDeploy acesso ao Amazon ECS. Para obter mais informações, consulte [Gerenciamento de identidade e acesso para AWS CodeDeploy](security-iam.md).

1. Em **Configuração de ambiente**, selecione os nomes de cluster e serviço do Amazon ECS.

1. Em **Balanceadores de carga**, escolha o nome do balanceador de carga que distribui o tráfego para seu serviço do Amazon ECS.

1. Em **Porta do listener de produção**, escolha a porta e o protocolo do receptor que atende ao tráfego de produção para o serviço do Amazon ECS (por exemplo, **HTTP: 80**). Este tutorial não inclui um listener de teste opcional, portanto, não escolha uma porta em **Test listener port (Porta do listener de teste)**. 

1. Em **Target group 1 name (Nome do grupo de destino 1)** e **Target group 2 name (Nome do grupo de destino 2)**, escolha dois grupos de destino diferentes para rotear o tráfego durante a implantação. Certifique-se de que esses são os grupos de destino criados para o load balancer. Não importa qual é usado para o grupo de destino 1 nem qual é usado para o grupo de destino 2.

1. Escolha **Reroute traffic immediately (Redirecionar tráfego imediatamente)**.

1. Em **Original revision termination (Encerramento da revisão original)**, escolha 0 dias, 0 horas e 5 minutos. Isso permite que você veja a implantação concluída mais rapidamente do que se você usar o padrão (1 hora).  
![\[A seção de configuração do ambiente do CodeDeploy console.\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/images/ecs-demo-create-acd-dg.png)

1. Selecione **Criar grupo de implantação**.

**Para implantar o aplicativo do Amazon ECS**

1. Na página do console do grupo de implantação, escolha **Criar implantação**.

1.  Em **Grupo de implantação**, escolha **ecs-demo-dg**. 

1.  Em **Tipo de revisão**, escolha **Meu aplicativo está armazenado no Amazon S3**. Em **Revision location, (Local da revisão)**, insira o nome do bucket do S3. 

1.  Em **Tipo de arquivo de revisão**, escolha **.json** ou **.yaml**, conforme apropriado. 

1.  (Opcional) Em **Descrição da implantação**, digite uma descrição para a implantação. 

1. Escolha **Criar implantação**.

1.  Em **Deployment status (Status da implantação)**, é possível monitorar a implantação. Depois que 100% do tráfego de produção for roteado para o conjunto de tarefas de substituição e antes do tempo de espera de cinco minutos expirar, você poderá escolher **Encerrar conjunto de tarefas original** para encerrar imediatamente o conjunto de tarefas original. Se você não escolher **Terminate original task set (Encerrar conjunto de tarefas original)**, o conjunto de tarefas original será encerrado após o tempo de espera de cinco minutos especificado expirar.  
![\[A seção de status de implantação do CodeDeploy console.\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/images/ecs-tutorial-deployment-status-without-test-listener.png)

# Etapa 4: limpar
<a name="tutorial-ecs-clean-up"></a>

 O próximo tutorial, [Tutorial: Implantar um serviço do Amazon ECS com um teste de validação](tutorial-ecs-deployment-with-hooks.md), se baseia neste tutorial e usa o aplicativo do CodeDeploy e o grupo de implantação que você criou. Se você quiser seguir as etapas desse tutorial, ignore esta etapa e não exclua os recursos que você criou. 

**nota**  
 Sua AWS conta não incorre em cobranças pelos CodeDeploy recursos que você criou. 

Os nomes dos recursos nessas etapas são os nomes sugeridos neste tutorial (por exemplo, **ecs-demo-codedeploy-app** para o nome do seu CodeDeploy aplicativo). Se você tiver usado nomes diferentes, certifique-se de usá-los durante a limpeza. 

1. Use o [delete-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-deployment-group.html)comando para excluir o grupo CodeDeploy de implantação.

   ```
   aws deploy delete-deployment-group --application-name ecs-demo-codedeploy-app --deployment-group-name ecs-demo-dg --region aws-region-id
   ```

1. Use o comando [delete-application](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-application.html) para excluir o aplicativo. CodeDeploy 

   ```
   aws deploy delete-application --application-name ecs-demo-codedeploy-app --region aws-region-id
   ```