

# Como criar uma tarefa para instâncias gerenciadas do Amazon ECS
<a name="getting-started-managed-instances"></a>

Aprenda a usar o Amazon ECS com instâncias gerenciadas do Amazon ECS para executar uma aplicação em contêiner.

## Pré-requisitos
<a name="getting-started-prerequisites"></a>

 Antes de começar o tutorial, conclua as seguintes etapas: 
+ Você concluiu as etapas em [Configurar o uso do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/get-set-up-for-amazon-ecs.html).
+ As etapas em [Configuração para usar o Amazon ECS](get-set-up-for-amazon-ecs.md) foram concluídas.
+ Você tem os perfis do IAM necessários para instâncias gerenciadas do Amazon ECS. Isso inclui:
  + Perfil de infraestrutura: permite que o Amazon ECS faça chamadas para serviços da AWS em seu nome para gerenciar a infraestrutura de instâncias gerenciadas do Amazon ECS.

    Para obter mais informações, consulte [Perfil do IAM de infraestrutura do Amazon ECS](infrastructure_IAM_role.md).
  + Perfil de instância: fornece permissões para o agente de contêiner do Amazon ECS e para o daemon do Docker em execução nas instâncias gerenciadas.

    O nome do perfil de instância deve incluir `ecsInstanceRole` como prefixo para corresponder à ação `iam:PassRole` no perfil de infraestrutura. 

    Para obter mais informações, consulte [Perfil de instância de instâncias gerenciadas do Amazon ECS](managed-instances-instance-profile.md).
+ Você tem uma VPC e um grupo de segurança criados para uso. Este tutorial usa uma imagem de contêiner hospedada no Amazon ECR Public, de modo que suas instâncias devem ter acesso à internet. Para fornecer às suas instâncias uma rota para a internet, use uma das seguintes opções:
  + Use uma sub-rede privada com um gateway NAT que tenha um endereço IP elástico.
  + Use uma sub-rede pública e atribua um endereço IP público às instâncias.

  Para obter mais informações, consulte [Criar uma nuvem privada virtual](get-set-up-for-amazon-ecs.md#create-a-vpc).

  Para obter informações sobre grupos de segurança e regras, consulte [Grupos de segurança padrão para VPCs](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#DefaultSecurityGroup) e [Exemplo de regras](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#security-group-rule-examples) no *Guia do usuário da Amazon Virtual Private Cloud*.
+ (Opcional) O AWS CloudShell é uma ferramenta que oferece aos clientes uma linha de comando sem precisar criar a própria instância do EC2. Para obter mais informações, consulte [O que é AWS CloudShell?](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html) no *Guia do usuário do AWS CloudShell*.

## Etapa 1: criar um cluster
<a name="getting-started-step1"></a>

1. Abra o console do Amazon ECS em [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Na barra de navegação, selecione a Região a ser usada.

1. No painel de navegação, escolha **Clusters**.

1. Na página **Clusters**, escolha **Create Cluster** (Criar cluster).

1. Em **Configuração do cluster**, para **Nome do cluster**, digite um nome exclusivo para o cluster.

1. Em **Infraestrutura**, escolha **Fargate e EC2 gerenciado**.

1. Defina as configurações de instâncias gerenciadas:

   1. Em **Perfil de infraestrutura**, selecione o perfil do IAM que você criou para gerenciamento de infraestrutura de instâncias gerenciadas.

   1. Em **Perfil de instância**, selecione o `ecsInstanceRole` que você criou.

   1. Em **Atributos de instância**, escolha **Usar padrões do ECS**.

1. Em **Rede**, configure a VPC e as sub-redes para suas instâncias gerenciadas:

   1. Em **VPC**, selecione a VPC que hospeda as instâncias gerenciadas.

   1. Em **Sub-redes**, selecione uma ou mais sub-redes nas quais suas instâncias gerenciadas serão inicializadas.

   1. Para **Security groups**, selecione um ou mais security groups.

1. (Opcional) Para adicionar tags ao seu cluster, expanda **Tags** e, em seguida, configure suas tags.

1. Escolha **Criar**.

## Etapa 2: criar uma definição de tarefa
<a name="getting-started-step2"></a>

Uma definição de tarefa é como um esquema para sua aplicação. Sempre que você iniciar uma tarefa no Amazon ECS, especifique uma definição de tarefa. Dessa maneira, o serviço sabe qual imagem do Docker usar para os contêineres, quantos contêineres usar na tarefa e a alocação de recursos para cada contêiner. Siga estas etapas para criar uma definição de tarefa:

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

1. Escolha **Create new task definition** (Criar nova definição de tarefa), **Create new task definition with JSON** (Criar nova definição de tarefa com JSON).

1. Copie e cole o seguinte JSON no editor, substituindo o JSON pré-preenchido:

   Substitua **account-id** pelo ID da conta da AWS e **region** pela região que você está usando.

   ```
   {
     "family": "managed-instance-tutorial",
     "networkMode": "awsvpc",
     "executionRoleArn": "arn:aws:iam::account-id:role/ecsTaskExecutionRole",
     "containerDefinitions": [
       {
         "name": "sample-app",
         "image": "public.ecr.aws/docker/library/httpd:latest",
         "essential": true,
         "portMappings": [
           {
             "containerPort": 80,
             "hostPort": 80,
             "protocol": "tcp"
           }
         ],
         "logConfiguration": {
           "logDriver": "awslogs",
           "options": {
             "awslogs-group": "/ecs/managed-instance-tutorial",
             "awslogs-region": "region",
             "awslogs-stream-prefix": "ecs"
           }
         }
       }
     ],
     "requiresCompatibilities": [
       "MANAGED_INSTANCES"
     ],
     "cpu": "1024",
     "memory": "2048"
   }
   ```

1. Escolha **Criar**.

## Etapa 3: criar um serviço
<a name="getting-started-step3"></a>

Um serviço do Amazon ECS permite executar e manter simultaneamente um número especificado de instâncias de uma definição de tarefa em um cluster do Amazon ECS. Siga estas etapas para criar um serviço:

1. No painel de navegação, escolha **Clusters** e, em seguida, selecione o cluster **managed-instance-tutorial**.

1. Na guia **Services** (Serviços), escolha **Create** (Criar).

1. Em **Família de definições de tarefa**, escolha **managed-instance-tutorial**.

1. Em **Nome do serviço**, digite **managed-instance-tutorial-service**.

1. Em **Ambiente**, escolha **Estratégia do provedor de capacidade**.

1. Em **Rede**, configure o seguinte:

   1. Escolha uma VPC existente ou crie uma nova.

   1. Em **Sub-redes,** selecione a sub-rede que será usada.

   1. Em **Grupos de segurança**, escolha um grupo de segurança existente ou crie outro que permita tráfego de entrada na porta 80.

1. Escolha **Criar**.

## Etapa 4: visualizar o seu serviço
<a name="getting-started-step4"></a>

Depois que seu serviço for inicializado, você poderá visualizá-lo para saber mais sobre ele e testá-lo.

1. Escolha o serviço **managed-instance-tutorial-service**.

1. Na guia **Tarefas**, escolha o ID da tarefa em execução.

1. Em **Rede**, em **IP público**, escolha **Endereço de abertura**.

1. Você deve ver a página de teste do Apache HTTP Server, que confirma que o servidor web está funcionando corretamente.

## Etapa 5: limpar
<a name="getting-started-step5"></a>

Ao concluir este tutorial, você deverá limpar os recursos associados para evitar cobranças por recursos que você não está usando.

1. No painel de navegação, escolha **Clusters**.

1. Na página **Clusters**, selecione o cluster **managed-instance-tutorial**.

1. Escolha a guia **Serviços**.

1. Selecione o serviço **managed-instance-tutorial-service** e, em seguida, escolha **Excluir**.

1. No prompt de confirmação, insira **delete** e, em seguida, escolha **Excluir**.

1. Depois que o serviço for excluído, escolha **Clusters** no painel de navegação.

1. Na página **Clusters**, selecione o cluster **managed-instance-tutorial** e escolha **Excluir cluster**.

1. No prompt de confirmação, insira **delete managed-instance-tutorial** e, em seguida, escolha **Excluir**.