Primeiras aulas do curso Amazon ECS: Gerencie Docker na nuvem da AWS

Amazon ECS: Gerencie Docker na nuvem da AWS

Conhecendo o Elastic Container Service - Introdução

Olá! Sejam bem-vindos a mais um curso. Eu sou o Ricardo Mercês. E vamos estudar sobre a Extração de Container dentro da Plataforma AWS. Que é ECS o nome desse serviço.

Vamos conhecer como é que ele funciona. Essas nomenclaturas. Como os serviços internos se interagem. A parte de cluster, a parte de tarefas, a parte de balanceamento. A possibilidade escalar essa infraestrutura quando necessário.

Vamos conhecer também o registry que está ligado ao serviço. E nesse registry você pode ter as tuas imagens controladas de forma privada. Para a gente fazer isso tudo, vamos trabalhar da seguinte maneira, vamos utilizar essa infra para abrigar uma aplicação monolítica e também a mesma infra para abrigar micro serviços.

Ricardo, você acabou de falar sobre várias tecnologias. Eu preciso de algum pré-requisito para esse curso? Bom, o interessante é você conhecer a parte docker, saber fazer push-pull.

Entender como é que o docker funciona e também a parte da AWS que o básico. Ou seja ter a tua conta criada lá na AWS, subir uma instância EC2. E aí você se familiariza com alguns conceitos iniciais, que a gente vai precisar ao longo do curso. Então com isso tudo em mãos. Vamos início ao nosso projeto.

Conhecendo o Elastic Container Service - Criando o primeiro Cluster

Uma vez logado na AWS, aqui na parte de serviços tem, logicamente, aquelas trilhões de opções diferentes. O serviço que a gente vai estar utilizando é o "Elastic Container Service", Ok? Então, clica nele aqui para a gente dar início.

Se você ainda não criou nenhum componente do serviço, ele vai abrir uma telinha parecida com essa daqui. Então dentro lá do ECS o botão que a gente tem único é para poder iniciar.

Então eu venho aqui... E vamos entender um pouquinho essas definições. Tá? Isso aqui é a base para tudo que a gente vai fazer. Você pode observar que nesse modelo aqui ele tem quatro camadas. Ricardo, o que é isso?

Então vamos dar um overview sobre essa tecnologia. Eu tenho no centro de tudo o container. Que é o container docker, a tua imagem lá prontinha, a tua aplicação já dockerizado, ou seja, aplicação lá em formato docker rodando aqui.

Depois que a gente tem a aplicação, ele tem uma outra camada que é essa definição da "task" aqui da tarefa. O que é a definição da task? São os parâmetros para a imagem, como a imagem vai rodar.

Então a gente diz aqui quanto de memória vai ser alocada e coisas do tipo, a gente dá essas definições aqui. Depois das definições, a gente tem o serviço. O serviço é um componente aqui interessante.

Porque o serviço ele faz com o que, nele você pode dizer o seguinte: olha eu quero duas instâncias, dois containers iguais deste rodando 3, 4. Eu vou fazer, eu vou criar um serviço para administrar essas tarefas que, por sua vez, estão associadas a um container.

É sempre a gente descendo aqui e a gente subindo a escada. E tudo isso - do serviço para baixo - tudo isso vai ficar dentro de um cluster. Que nada mais é... O que é o cluster? É um agrupamento de instâncias. As instâncias dentro da Amazon, no serviço de computação que eles chamam, se chamam EC2.

Então as estâncias, a reunião de algumas instâncias, ou seja, o agrupamento dessas instâncias vai ser um cluster. Eu vou criar um cluster, por exemplo, com duas instâncias. Se uma falhar a outra continua operando sem problema nenhum.

Então vamos começar a fazendo o seguinte: vamos dar início usando esse exemplo de aplicação. Que é uma aplicação PHP simplezinha para se entender o passo a passo aqui. Então a gente vem aqui, marquei, já está marcada essa de exemplo.

E eu venho aqui: definir a imagem, etapa 1. Eu vou definir a task. Na definição dessa nossa task, que já tá aqui preenchida, porque eu tô usando um modelo, você pode observar aqui o seguinte.

Memória, ele está alocando 512 para essa imagem. E está alocando 025256 nada mais é do que um quarto da CPU da instância onde vai rodar essa imagem. Então essa é a definição da task, ok? Criamos o container. A task não tem mais muita coisa para mexer, é só informativo. Avançar. Olha, já preencheu aqui. Container e a tarefa foi criada.

A próxima etapa é o serviço. O que é o serviço? O nome do serviço está aqui: quantas tarefas eu quero executar simultaneamente? Nesse exemplo aqui, mais uma vez que já está pré - definido, ele já veio como um, ou seja, só vai rodar uma tarefa, só vai estar rodando um container por vez. Ok?

Vou usar algum balanceamento? Por enquanto, não. Só para a gente entender como isso funciona. Avançar, criou o serviço. E aí? Bom container, task, service. Ele tá pedindo agora para criar um cluster.

E aí eu queria dar uma rápida pausa aqui, só para comentar com você o seguinte: Vamos escolher um nome, tá aqui default e os outros valores gente não precisa, não tem como alterar agora. Se eu der next aqui, next, ele vai criar o cluster.

Então vale a pena aqui comentar o seguinte. Nesse exemplo, vamos subir aqui um pouquinho. Então vamos dar uma olhada no que tá escrito aqui. "Amazon ECS Fargate".

O que é o fargate? No serviço de administração de containers da Amazon, a gente tem, hoje... Tem outros ainda em desenvolvimento e logo vai estar disponível, mas hoje, aqui na gravação do curso, a gente pode administrar o nosso ambiente utilizando o fargate e utilizando o EC2, que são aquelas instâncias lá que a gente já conhece, aquela plataforma onde a gente sobe máquinas e tudo mais, dentro da AWS.

Então tem como criar o cluster usando essas duas tecnologias. Qual seria então a diferença entre uma e outra? Esse fargate aqui, você tem o mínimo de interação com essa camada lá de instância. Ou seja, com a camada das máquinas onde elas estão abrigando os teus containers.

Nessa tecnologia fargate no descritivo aqui de precificação da AWS, você vai estar pagando por tarefa. O número de tarefas vai ser a forma como ele vai te bilhetar o serviço. Ou seja, como ele vai te tarifar, vai gerar essa cobrança para você. Isso é um ponto positivo porque você está com menos, vamos dizer assim, com menos contato lá com a tua infraestrutura.

Por outro lado, no modelo EC2, que é aonde a gente também vai criar o nosso cluster, eu tenho um gerenciamento melhor dessa infraestrutura. Tem coisas que a gente não consegue fazer no fargate, que a gente só consegue fazer lá dentro do EC2. Algumas definições, alguns settings lá do serviço.

A gente vai estar vendo isso ao longo do curso. É só para, no início, apresentar a você, e você já está ciente, que existem duas tecnologias diferentes. Fargate, que é cobrado por tarefa e a outra que é a tarifação, vamos dizer assim, normal, que é pelas quantidades de instâncias que você tem alocado.

Nesse exemplo, como é só next, next, next, ele cria uma instância fargate até para te mostrar a facilidade. Então para esse cluster aqui, vamos usar o nome sugerido, que é o default. E eu vou clicar aqui em next... Olha lá: As quatro etapas definidas. Tarefas, serviço, cluster. Com o tempo você vai se acostumando com as nomenclaturas. Tarefa, serviço, cluster, e mandei criar.

Então ele vai fazer a criação aqui. Enquanto ele cria o cluster e tudo mais para gente, vale a pena olhar aqui o seguinte: Toda a parte de rede, para quem está acostumado a fazer o gerenciamento lá utilizando instâncias EC2, independente de estar utilizando o docker, a AWS ela usa esses conceitos lá de VPC, que são as faixas de rede nas quais as tuas instâncias estão associadas.

Ele vai criar isso tudo sozinho para a gente. Ele vai criar o range da rede, as sub-redes, o security group que é um... O que o security group faz? É onde a gente coloca as regras para permitir os tipos de acesso que a gente quer dar às aplicações.

Por exemplo, nessa aplicação de exemplo, ela vai nos atender na porta 80. Então tem uma regrinha aqui dizendo que todo mundo pode fazer acesso na porta 80. Já terminou então de criar aqui todos os componentes.

E eu queria deixar mais uma dica que é a seguinte: Eu vou utilizar toda essa parte da ECS no EC2. Você pode estar dizendo assim: Não quero o fargate, porque eu não tenho alguns recursos. No EC2 eu tenho mais flexibilidade.

Ok, apoio a tua ideia. Só peço o seguinte: Cria esse exemplo aqui, para que toda essa parte de rede, aqueles requisitos iniciais, caso, veja bem, caso a tua conta esteja zerada, ele já cria isso tudo para você.

Se não, não tem problema nenhum. Não precisa passar por esse exemplo aqui. A ideia é que a gente conheça esses componentes e essas nomenclaturas também nesse serviço fargate. Então vamos lá, visualizar o serviço. Ele vai mostrar o seguinte: Detalhes, tarefas, eventos e tudo mais.

Olha o que é que ele diz aqui em cima: Que o fargate é um novo tipo de ECS... E ele permite que você gerencie lá, rode as tasks e os serviços na tua infraestrutura, sem ter que gerenciar as tuas instâncias EC2. É um modelo novo de serviço que é legal também da gente conhecer.

Então ó, cluster. Olha o nosso cluster aqui rodando, o cluster default. Eu tenho um serviço e uma task associada a ele. Se eu clicar aqui, default, está lá o serviço. O serviço chama a task e essa task aqui chama o nosso container.

Eu vou clicar aqui. Ele mostra lá o que está rodando, a aplicação que a gente usou como exemplo. Olha aqui o IP público da nossa aplicação. Então copiar, colar aqui... E está lá. A Amazon ECS, exemplo de aplicação.

Parabéns, você está rodando lá um container dentro do serviço ECS. Então agora no próximo vídeo a gente vai explorar melhor esses recursos, para a gente conhecer mais e mais dessa plataforma.

Então segue esse exemplo, vê se roda tudo certinho. Faz a criação desse primeiro cluster e volta no próximo vídeo para a gente dar continuação.

Conhecendo o Elastic Container Service - Detalhes do Fargate

Terminamos o nosso vídeo anterior com a nossa aplicação já rodando dentro do container. O que eu queria continuar aqui mostrando alguns detalhes importantes dessa tecnologia que a gente utilizou o fargate.

Então olha só, eu vou voltar aqui na parte lá do meu cluster e eu vou entrar lá nas instâncias de EC2. Então AWS... Está aqui, o serviço EC2. Olha só que curioso, né? Como é que isso tá funcionando? Instâncias em execução.

Eu não tenho nenhuma. "Ricardo, mas que loucura isso... Esse negócio tá rodando onde? Onde é que esse cluster foi montado?". Lembra que eu te falei que é diferente usar um cluster com EC2 ou usar ele com fargate? Exatamente isso.

Nesse modelo fargate, ele não cria nenhuma máquina EC2. Então ele vai te tarifar isso. Deixa eu abrir uma outra página, vou deixar os links para vocês. Nessa parte aqui do AWS do fargate, a parte de precificação, depois você lê essa documentação com calma, ele te explica como ele te cobra isso.

E o resumo desse texto todo é que ele vai te fazer a cobrança por tarefa. Ou seja, por quantidade de imagem e computação em recursos que essas imagens estão consumindo.

Ele vai te precificar dessa forma, não deixa de dar uma lida aqui. O objetivo é exatamente esse, que a gente montou lá o nosso cluster. Ele chama aqui os "benefícios".

A gente não gerencia cluster. Isso é transparente para a gente. Aí tem a parte de escalabilidade, as integrações e tudo mais. A ideia é que a parte do cluster para baixo seja transparente.

Qual é o próximo passo? Vamos voltar aqui. Vamos voltar, vamos criar uns atalhos aqui para a gente não ficar indo e voltando? Eu coloquei um EC2, IAM. E como é que você faz isso? Isso aqui é bem útil. Se você clicar nesse pinuzinho... Elastic container service. Você pega esse negócio e arrasta aqui para cima.

Então eu tenho o EC2, o elastic container service, assim é mais fácil da gente pular. Cliquei de novo aqui, tá resolvido. Eu fico alternando entre as aplicações.

Então vamos voltar lá para o nosso ECS. E dentro da ECS está lá o nosso cluster ligado. Então eu venho aqui: Default. Está lá, o serviço, as tarefas... Qual é a ideia? A ideia é: Como que eu vou gerenciar esse cluster aqui? Como é que eu faço esse gerenciamento? Como é que eu controlo esses serviços e essas tarefas? A gente vai ver isso já já no próximo vídeo. Parando a Tarefa

Com o nosso cluster aqui criado, vamos começar a ensaiar a nossa orquestra. Ou seja, vamos começar a fazer a orquestração aqui dos containers.

E vamos fazer o seguinte: Vamos intercalar tanto a parte de console como a nossa CLI. Então vamos fazer o seguinte: "Ricardo, olha só, eu tenho um serviço e eu tenho uma tarefa rodando, eu quero parar essa tarefa".

Então olha só o detalhe: Eu venho aqui no cluster. Se eu vier na tarefa... Tá? Serviço e tarefa. Se eu vier na tarefa, marcar ela e simplesmente clicar em parar, olha o que ele vai dizer para a gente.

Ele vai dar uma mensagem que essa tarefa foi iniciada por um processo automático. Essa tarefa ela é iniciada por um serviço. Aquele link que a gente viu no início. A tarefa está associada ao serviço.

Então tem que cancelar e fazer um update para poder parar a tarefa. Como assim? Eu vou ignorar isso aqui e vou clicar em parar. O que ele faz? Olha só que legal. Você vê que a tarefa parou, certo? Será que parou mesmo? Eu vou dar um reload aqui. Já está rodando de novo, como é que isso pode? Nós definimos lá no serviço... Olha, vou reload. Provisionando e ela vai estar rodando de novo.

A gente ficou em parar, certo? Se você voltar aqui, que dá uma visão macro... Pendente, se você ficar dando reload você vai ver que ela vai voltar a executar. O que acontece? Não adianta você ir lá na tarefa e tentar forçar a parada dela. Por quê? Porque nós programamos aqui, olhe, estou no cluster... Eu programei dentro do meu serviço, eu vou abrir ele aqui.

Vou clicar no update, ok? Dentro do meu serviço está programado o seguinte, olha que legal: Número de tarefas. Então o serviço ele fica olhando lá para as tarefas em execução.

Se por acaso alguma delas, der problema, sei lá, deu problema no teu container, aconteceu alguma coisa e essa tarefa for interrompida, ou seja, se ela parar, fica a cargo do serviço reiniciar a tarefa automaticamente. Ou seja, ele publica uma nova tarefa com a imagem que você já tem associada lá do teu container.

Então aqui, número de tarefas igual a um. Sempre vai ter uma em execução. Se a gente voltar aqui mais uma vez, deixa eu dar um back. Já tá rodando. Só mais uma visualização aqui. Ele vai... É que demora um pouquinho. Pronto, está lá uma tarefa rodando.

Você viu que eu não precisei fazer nenhum start automático. Isso já faz parte dessa questão de orquestramento, ou seja, de um auto gerenciamento da tua infraestrutura. Você não precisa ficar parando e iniciando. A ideia é que a gente configure todas essas coisas de forma automática.

Mas vamos ver efetivamente parar. Como é que a gente faz para parar isso? Então, estou lá no cluster... Eu preciso fazer o seguinte: Eu preciso dizer para o meu serviço... Marquei o serviço, update. Eu preciso dizer para o meu serviço o seguinte: Serviço, número de tarefas que você vai rodar: 0. Olha, next... Next.

Vou só dar uns nexts aqui, a gente não vai mexer em nenhuma mudança, a não ser a quantidade de tarefas. Então next, next, next, update. Eu reconfigurei o meu serviço para não ter nenhuma tarefa associado. O que é que ele faz? Vamos visualizar... Se tem alguma pendência, ainda tem lá uma rodando.

Você vai ver que... Voltar aqui. Pode ser por aqui também. Cluster... Olha só, não tem nenhuma tarefa rodando, né? Muito legal. Ou seja, eu tenho lá o serviço criado.

"Ricardo, eu preciso agora executar três tarefas daquela". Não tem problema nenhum. Foi lá no serviço, mudou o número para 3, deu o update, você já tem 3 tarefas subindo já automaticamente. Se uma morrer a outra sobe. Não tem problema nenhum.

Então essa é a primeira parte aí para você aprender, que é como parar efetivamente uma tarefa. Ok? Qual é a ideia? Vamos dar sequência nisso olhando a CLI, para a gente fazer o mesmo trabalho via CLI.

Sobre o curso Amazon ECS: Gerencie Docker na nuvem da AWS

O curso Amazon ECS: Gerencie Docker na nuvem da AWS possui 153 minutos de vídeos, em um total de 50 atividades. Gostou? Conheça nossos outros cursos de Cloud em DevOps, ou leia nossos artigos de DevOps.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Cloud acessando integralmente esse e outros cursos, comece hoje!

  • 1269 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1269 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1269 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1269 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas