no Amazon Elastic Container Service (Amazon ECS)

O Amazon Elastic Container Service (Amazon ECS) é o serviço da Amazon Web Services que você usa para executar aplicativos do Docker em um cluster escalável. Neste tutorial, você aprenderá a executar um aplicativo de exemplo habilitado para Docker em um cluster do Amazon ECS por trás de um load balancer, testar o aplicativo de exemplo e excluir seus recursos para evitar cobranças.

Todas as atividades realizadas neste tutorial estão qualificadas para o nível gratuito.

Gerencie seus recursos da AWS

Faça login no Console

O assistente de primeira execução do Amazon ECS orientará você durante a criação de um cluster e a execução de um aplicativo web de exemplo. Nesta etapa, você acessará o console do Amazon ECS e executará o assistente.



b. Com o Amazon ECS, você pode usar o Amazon Elastic Container Registry (Amazon ECR) para criar um repositório de imagens e enviar uma imagem para ele como parte do assistente de primeira execução (consulte a captura de tela à direita). No momento, esse recurso só está disponível em regiões selecionadas. 

  • Caso você não tenha opções do Amazon ECR, pule para a etapa 2.
  • Caso você tenha opções do Amazon ECR, desmarque a caixa ao lado da opção Deploy a sample application onto an Amazon ECS Cluster (Implantar um aplicativo de exemplo em um cluster do Amazon ECS) e selecione Continue (Continuar).
deploy-docker-container-1

(clique para ampliar)

deploy-docker-container-1

Uma definição de tarefa é uma espécie de esquema do seu aplicativo. Nesta etapa, você especificará uma definição de tarefa para que o Amazon ECS saiba qual imagem de Docker usar para os contêineres, quantos contêineres usar na tarefa e a alocação de recursos para cada contêiner.


A definição de tarefa vem pré-carregada com valores de configuração padrão.

  • Revise os valores padrão e selecione Next Step (Próxima etapa).

Se preferir modificar as configurações ou quiser saber mais, consulte Parâmetros de definição de tarefa.

deploy-docker-container-2

(clique para ampliar)

deploy-docker-container-2

Agora que você criou uma definição de tarefa, configure o serviço do Amazon ECS. Um serviço executa e mantém cópias da definição de tarefa no seu cluster. Por exemplo, ao executar um aplicativo como um serviço, o Amazon ECS recuperará automaticamente qualquer tarefa interrompida e manterá o número de cópias que você especificar.


a. Configure as opções de serviço:

  • Service Name (Nome do serviço): o valor padrão sample-webapp  é um aplicativo “Hello World” baseado na web disponibilizado pela AWS. Ele foi projetado para ser executado indefinidamente, portanto, quando executado como um serviço, ele será reinicializado caso a tarefa apresente problemas de integridade ou seja interrompida inesperadamente.
  • Desired number of tasks (Número desejado de tarefas): para permanecer no nível gratuito da AWS, mantenha o valor padrão 1. Isso criará uma cópia da sua tarefa.
deploy-docker-container-3

(clique para ampliar)

deploy-docker-container-3

b. Elastic load balancing: você tem a opção de usar um load balancer com seu serviço. O Amazon ECS pode criar um load balancer do Elastic Load Balancing (ELB) para distribuir o tráfego entre as instâncias de contêiner onde sua tarefa está sendo executada.

  • Container name: host port (Nome do contêiner: porta do host): selecione Simple-app:80.
  • Os valores padrão de ELB listener protocol (Protocolo do listener do ELB), ELB listener port (Porta do listener do ELB) e de ELB health check (Verificação de saúde do ELB) são configurados para o aplicativo de exemplo. Para obter mais informações sobre a configuração do balanceamento de carga, consulte Balanceamento de carga do serviço.
deploy-docker-container-3b

(clique para ampliar)

deploy-docker-container-3b

c. Antes de poder anexar um load balancer a um Amazon ECS Service, você precisa criar uma função do Identity and Access Management (IAM) a ser usada pelos seus serviços. Isso permitirá que o Amazon ECS faça chamadas para as APIs do Amazon EC2 e do Elastic Load Balancing para registrar e cancelar o registro de instâncias nos seus load balancers.

  • Se você ainda não tiver uma função do IAM do serviço, o Amazon ECS criará uma com o nome ecsServiceRole.
  • Se você já tiver uma função do Amazon ECS Service, selecione-a no menu suspenso.
deploy-docker-container-3c

(clique para ampliar)

deploy-docker-container-3c

d. Revise suas configurações e selecione Next Step (Próxima etapa).

deploy-docker-container-3d

(clique para ampliar)

deploy-docker-container-3d

Suas tarefas do Amazon ECS são executadas em um cluster, que é um conjunto de instâncias de contêiner em execução no agente de contêineres do Amazon ECSNesta etapa, você configurará o cluster, revisará as definições de segurança e definirá as funções do IAM. 


a. Siga as definições de configuração abaixo:

  • Cluster name (Nome do cluster): insira sample-cluster.
  • EC2 instance type (Tipo de instância do EC2): o tipo de instância padrão t2.micro manterá você no nível gratuito. Os tipos de instância com mais recursos de CPU e memória podem realizar mais tarefas. Para obter mais informações sobre os tipos de instância diferentes, consulte Tipos de instância do Amazon EC2.
  • Number of instances (Número de instâncias): deixe o valor padrão 1 para executar uma instância do Amazon EC2 no seu cluster, no qual as tarefas serão inseridas. Quanto mais instâncias você tiver no cluster, mais tarefas poderá inserir nele.  
  • Key pair (Par de chaves): será necessário usar um par de chaves para utilizar o SSH nas instâncias mais tarde. Você pode manter a seleção padrão None - unable to SSH (Nenhuma - não habilitado para SSH), selecionar um par de chaves existente ou criar um par no console do Amazon EC2. 
deploy-docker-container-5a

(clique para ampliar)

deploy-docker-container-5a

b. (Opcional) Security Group (Grupo de segurança): o valor padrão (Anywhere [Qualquer lugar]) permite acesso de qualquer ponto da internet. Você também pode selecionar um bloco CIDR que restrinja o acesso a suas instâncias.

deploy-docker-container-5b

(clique para ampliar)

deploy-docker-container-5b

c. Container instance IAM role (Função do IAM da instância de contêiner):

  • Caso não tenha uma função do IAM, o assistente do Amazon ECS criará uma para você.
  • Se você tiver uma função do IAM da instância de contêiner atual, selecione-a na lista suspensa.
deploy-docker-container-5c

(clique para ampliar)

deploy-docker-container-5c

d. Selecione Review and Launch (Revisar e executar).

deploy-docker-container-5d

(clique para ampliar)

deploy-docker-container-5d

Nas etapas anteriores, você configurou sua definição de tarefa (que funciona como um esquema do aplicativo), o Amazon ECS Service (que executa e mantém cópias das definições de tarefa) e seu cluster (que é o conjunto de instâncias de contêiner que executa o agente de contêineres). Nesta etapa, você revisará, executará e visualizará os recursos criados.


a. Você terá uma última chance de revisar a definição da tarefa, além das configurações da tarefa e do cluster, antes da execução.

  • Selecione Launch instance & run service (Iniciar instância e executar serviço). 
deploy-docker-container-6

(clique para ampliar)

deploy-docker-container-6

b. Você está na página Launch Status (Status da execução), que mostra o status da sua execução e descreve cada etapa do processo. 

  • Após a conclusão da execução, selecione View service (Visualizar serviço).
deploy-docker-container-7

(clique para ampliar)

deploy-docker-container-7

Nesta etapa, você apontará o navegador para o nome DNS do load balancer para verificar se o aplicativo de exemplo está em execução.


a. Na página do aplicativo web de exemplo (sample-webapp), clique no nome do seu load balancer.

deploy-docker-container-10

(clique para ampliar)

deploy-docker-container-10

b. Agora, você testará o aplicativo de exemplo:

  • Copie o nome DNS do ELB.
  • Cole-o em uma nova janela do navegador.
  • Pressione Enter no teclado para ver o aplicativo de exemplo (neste caso, uma página estática da web).
deploy-docker-container-12a

(clique para ampliar)

deploy-docker-container-12a

Ao longo deste tutorial, você executou três recursos: um cluster do Amazon ECS, uma instância do Amazon EC2 e um load balancer. Nesta etapa, você limpará todos os seus recursos para evitar cobranças indesejadas.


a. Navegue de volta até a página do console do Amazon ECS 

  • Clique no nome do cluster (sample-cluster).
deploy-docker-container-13

(clique para ampliar)

deploy-docker-container-13

b. Marque a caixa de seleção ao lado da opção sample-webapp e clique em Update (Atualizar).

deploy-docker-container-15

(clique para ampliar)

deploy-docker-container-15

c. Para garantir que você não excluirá acidentalmente um serviço com tarefas ativas, será necessário interromper todas as tarefas antes que o Amazon ECS exclua um serviço. 

  • Defina o campo Number of tasks (Número de tarefas) como 0 e selecione Update Service (Atualizar serviço).
  • Após a atualização do seu serviço, selecione Delete (Excluir).
deploy-docker-container-14

(clique para ampliar)

deploy-docker-container-14

d. Exclua as instâncias do Amazon EC2 que foram executadas com o seu cluster:

  • Acesse o console do Amazon EC2
  • No painel esquerdo, selecione Instances (Instâncias).
  • Marque a caixa de seleção ao lado da instância chamada ECS Instance - EC2ContainerService-default.
  • Selecione Actions > Instance State > Terminate (Ações > Estado da instância > Encerrar).

 

 

deploy-docker-container-17

(clique para ampliar)

deploy-docker-container-17

e. Exclua seus load balancers:

  • No painel esquerdo, selecione Load Balancers.
  • Marque a caixa de seleção ao lado do load balancer criado para seu serviço, que deve começar com EC2Contai-EcsElast
  • Clique com o botão direito do mouse e selecione Delete (Excluir).

 

deploy-docker-container-19a

(clique para ampliar)

deploy-docker-container-19a

Muito bem! Você aprendeu a configurar, implantar e excluir um aplicativo habilitado para Docker no Amazon Elastic Container Service (Amazon ECS). O Amazon ECS é um serviço de gerenciamento de contêineres de alta escalabilidade e alta performance compatível com contêineres do Docker. Ele permite que você execute facilmente aplicativos em um cluster gerenciado de instâncias do Amazon EC2.

Agora que você aprendeu a implantar um aplicativo habilitado para o Docker para o Amazon ECS, poderá avançar para o próximo tutorial em que aprenderá a criar um registro do Docker para armazenar suas imagens de contêiner. Você criará uma imagem de Docker, a enviará para um repositório e a usará para implantar um aplicativo no Amazon ECS.

Crie um registro do Docker

Sim
Não