no Amazon Elastic Container Service (Amazon ECS)

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

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

Gerencie seus recursos da AWS

Faça login no console

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



b. Com o Amazon ECS, você tem a opção de 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 da primeira execução (consulte a captura de tela à direita). No momento, esse recurso está disponível em regiões selecionadas. 

  • Caso você não tenha opções do Amazon ECR, avance para a etapa 2.
  • Caso você tenha opções do Amazon ECR, desmarque a caixa próxima à opção Deploy a sample application onto an Amazon ECS Cluster e selecione Continue.
deploy-docker-container-1

(clique para ampliar)

deploy-docker-container-1

Uma definição de tarefa é como um blueprint da sua aplicação. Nesta etapa, você especificará uma definição de tarefa para que o Amazon ECS saiba qual imagem de Docker deverá 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 é disponibilizada pré-carregada com valores de configuração padrão.

  • Revise os valores padrão e selecione Next Step.

Se você preferir modificar as configurações ou deseja saber mais, consulte Task Definition Parameters.

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 uma aplicação 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:

  • Nome de serviço:exemplo de aplicação web padrão é uma aplicação "Hello World" baseada na web disponibilizada pela AWS. Ela foi projetada para ser executada indefinidamente, portanto, ao executá-la como um serviço, ela será reinicializada, caso a tarefa apresente problemas ou interrupções inesperadas.
  • Número desejado de tarefas: para permanecer no nível gratuito da AWS, deixe 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 o 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 do contêiner em que sua tarefa está sendo executada.

  • Nome do contêiner: porta de host: selecione Simple-app:80.
  • Os valores padrão para protocolo de listener do ELB, porta de listener do ELB e verificação de saúde do ELB são configurados para o exemplo de aplicação. Para obter mais informações sobre a configuração de balanceamento de carga, consulte Service Load Balancing.
deploy-docker-container-3b

(clique para ampliar)

deploy-docker-container-3b

c. Antes que você possa anexar um load balancer a um Amazon ECS Service, você deve criar uma função do Identity and Access Management (IAM) para que os seus serviços a utilizem. 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 de serviço do IAM, o Amazon ECS criará uma chamada ecsServiceRole.
  • Se você já tiver uma função do Amazon ECS Service, a selecione no menu suspenso.
deploy-docker-container-3c

(clique para ampliar)

deploy-docker-container-3c

d. Revise suas definições e selecione Next Step.

deploy-docker-container-3d

(clique para ampliar)

deploy-docker-container-3d

Suas tarefas do Amazon ECS são executadas em um cluster, que são o conjunto de instâncias de contêiner em execução no agente de contêiner 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:

  • Nome de cluster: digite sample-cluster.
  • 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 Amazon EC2 Instance Types.
  • Número de instâncias: deixe o valor padrão 1 para executar uma instância do Amazon EC2 no seu cluster para que as tarefas sejam inseridas nele. Quanto mais instâncias você tiver no seu cluster, mais tarefas poderá inserir nele.  
  • Par de chaves: um par de chaves será exigido para o SSH nas suas instâncias posteriormente. Você pode continuar ao selecionar None – unable to SSH, ao selecionar um par de chaves atual ou ao criar um no console do Amazon EC2. 
deploy-docker-container-5a

(clique para ampliar)

deploy-docker-container-5a

b. (Opcional) Security group: o valor padrão (Anywhere) permite o acesso por meio de toda a Internet. Você também tem a opção de selecionar um bloco CIDR que restrinja o acesso às suas instâncias.

deploy-docker-container-5b

(clique para ampliar)

deploy-docker-container-5b

c. 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, a selecione na lista suspensa.
deploy-docker-container-5c

(clique para ampliar)

deploy-docker-container-5c

d. Selecione Review and Launch.

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 blueprint da aplicação), o Amazon ECS Service (que executa e mantém cópias das suas definições de tarefa) e o seu cluster (que é o conjunto de instâncias de contêiner executando o agente de contêiner). Nesta etapa, você revisará, executará e verá os recursos criados.


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

  • Selecione Launch instance & run service
deploy-docker-container-6

(clique para ampliar)

deploy-docker-container-6

b. Você está na página Launch Status 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.
deploy-docker-container-7

(clique para ampliar)

deploy-docker-container-7

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


a. Na página do exemplo de aplicação web, clique no nome do seu load balancer.

deploy-docker-container-10

(clique para ampliar)

deploy-docker-container-10

b. Agora, você testará o exemplo de aplicação:

  • Copie o nome DNS do ELB.
  • Cole-o em uma nova janela do navegador.
  • Aperte Enter no seu teclado para ver o exemplo de aplicação (neste caso, uma página da web estática).
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 mudanç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. Selecione a caixa de seleção próxima à opção sample-webapp e clique em Update.

deploy-docker-container-15

(clique para ampliar)

deploy-docker-container-15

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

  • Defina o número de tarefas como 0 e selecione Update Service.
  • Após a atualização do seu serviço, selecione Delete.
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.
  • Selecione a caixa de seleção próxima à instância chamada ECS Instance – EC2ContainerService-default.
  • Selecione Actions > Instance State > Terminate.

 

 

deploy-docker-container-17

(clique para ampliar)

deploy-docker-container-17

e. Exclua seus load balancers:

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

 

deploy-docker-container-19a

(clique para ampliar)

deploy-docker-container-19a

Parabéns! Você aprendeu a configurar, implantar e excluir um aplicativo compatível com o Docker para o Amazon Elastic Container Service (Amazon ECS). O Amazon ECS é um serviço de gerenciamento de contêineres de alta escalabilidade e grande desempenho compatível com contêineres do Docker. Ele permite que você execute facilmente aplicações em um cluster gerenciado de instâncias do Amazon EC2.

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

Crie um Docker Registry

Sim
Não