Como criar uma tarefa para instâncias gerenciadas do Amazon ECS - Amazon Elastic Container Service

Como criar uma tarefa para instâncias gerenciadas do Amazon ECS

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

Pré-requisitos

Antes de começar o tutorial, conclua as seguintes etapas:

  • Você concluiu as etapas em Configurar o uso do Amazon ECS.

  • As etapas em Configuração para usar o Amazon ECS foram concluídas.

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

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

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

    Para obter informações sobre grupos de segurança e regras, consulte Grupos de segurança padrão para VPCs e Exemplo de regras 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? no Guia do usuário do AWS CloudShell.

Etapa 1: criar um cluster

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

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

  3. No painel de navegação, escolha Clusters.

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

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

  6. Em Infraestrutura, escolha Fargate e EC2 gerenciado.

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

    2. Em Perfil de instância, selecione o ecsInstanceRole que você criou.

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

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

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

    3. Para Security groups, selecione um ou mais security groups.

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

  10. Escolha Criar.

Etapa 2: criar uma definição de tarefa

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.

  2. 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).

  3. 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" }
  4. Escolha Criar.

Etapa 3: criar um serviço

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.

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

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

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

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

  6. Em Rede, configure o seguinte:

    1. Escolha uma VPC existente ou crie uma nova.

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

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

  7. Escolha Criar.

Etapa 4: visualizar o seu serviço

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

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

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

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

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

Etapa 5: limpar

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.

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

  3. Escolha a guia Serviços.

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

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

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

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

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