Primeiras aulas do curso Amazon Elastic Beanstalk Parte 1: Container Docker

Amazon Elastic Beanstalk Parte 1: Container Docker

Configurando Elastic Beanstalk - Introdução

Olá, pessoal. Tudo bem? Eu sou o Rafael Nercessian e eu vou dar uma introdução sobre o que a gente vai estar vendo nesse curso, onde faremos a publicação do projeto lá da Casa do Código, que é uma plataforma de vendas de livros de tecnologia, na Amazon, através do serviço do Elastic Beanstalk.

Esse curso vai ser dividido em duas partes. Logo no início dessa primeira parte aqui, nós vamos receber o projeto da Casa do Código, onde nós vamos começar fazendo um teste aqui local, pra verificar que a aplicação está funcionando tudo certo e uma vez que a gente verificar que a nossa aplicação está funcionando aqui localmente, a gente vai pro ambiente de produção da Amazon.

A gente vai aqui no ambiente de produção da Amazon, vamos seguir as etapas de configuração do Elastic Beanstalk pra que no final a gente tenha justamente esse ambiente, onde a gente já vai ter a plataforma do Tomcat instalada.

A gente vai ver que vai ver que o Elastic Beanstalk vai ajudar bastante a gente nesse processo de configuração e a gente vai tentar acessar a nossa aplicação na Casa do Código, mas a gente vai ver que a gente não vai conseguir acessar essa aplicação logo de início. A gente vai discutir os motivos por que isso pode estar acontecendo e a gente vai conseguir resolver essa questão aqui justamente com o Docker.

Então a gente vai vir aqui, depois voltar nossa atenção pro ambiente local de desenvolvimento e nós vamos montar o arquivo do Docker Compose, pra justamente fazer esse teste local, pra verificar que tudo está funcionando.

Nessa etapa, se a gente acessar aqui uma nova janela no browser, colocar o endereço IP do Docker Machine, a gente deve ser capaz de visualizar a aplicação da Casa do Código funcionando aqui com o Docker. E uma vez que a gente viu que a nossa aplicação da Casa do Código está funcionando com o Docker, a gente vai levar essas imagens customizadas que a gente vai construir lá para os repositórios que a gente vai montar no Docker Hub.

Então a gente vai colocar aqui – só abrir uma nova janela, que eu acabei fechando – o hub.docker.com, a gente vai criar esses repositórios ao longo do curso e aqui a gente vai levar justamente as nossas imagens customizadas que a gente vai montar aqui, da nossa aplicação da Casa do Código, pra que depois o serviço lá do Elastic Beanstalk consiga pegar essas imagens pra montar os containers.

Uma vez que a gente já enviou essas imagens customizadas pra esses repositórios do Docker Hub, a gente vai voltar aqui e montar justamente o arquivo necessário pra configurar o nosso ambiente do Elastic Beanstalk pra trabalhar com esses containers docker. Então a gente vai ter esse arquivo de configuração que a gente vai montar e depois nós teremos aqui no Elastic Beanstalk outro ambiente que vai ser justamente pra trabalhar com o Docker, então a gente vai ter aqui essa configuração.

E se a gente for acessar agora a nossa aplicação na Casa do Código, a gente vai ser capaz de acessar a nossa aplicação que agora vai estar rodando em um container e a gente vai cadastrar os livros, a gente vai verificar que tudo está funcionando. Então isso daqui vai ser o que a gente vai ver aqui nessa primeira parte.

Pra gente poder seguir melhor com o curso é recomendado que você já tenha trabalhado previamente com a Amazon, então se você não chegou a trabalhar com a Amazon Web Services antes é recomendado que você faça os cursos que vão estar como pré-requisitos aqui abaixo do vídeo.

E é importante que você também já tenha certa familiaridade com o Docker, porque a gente vai fazer aqui a nossa implementação usando o Docker, que também vai estar lá como pré-requisito, caso você não tenha feito os cursos, vão ficar lá pra você dar uma olhadinha, ver se você está confortável com os pré-requisitos sugeridos pra seguir com esse curso.

Eu agradeço a vocês por terem visto essa introdução, eu espero que o curso ajude no crescimento profissional de vocês e depois a gente se encontra lá na segunda parte, onde a gente vai ver mais alguns cenários aqui, onde nós vamos fazer algumas configurações adicionais e verificar alguns itens a mais do Elastick Beanstalk. Vamos lá.

Configurando Elastic Beanstalk - Fazendo teste local

Nós fomos contratados pela Casa do Código pra justamente levar o projeto que eles desenvolveram, de uma plataforma de vendas de livros de tecnologia, para o ambiente de produção, que será a Amazon.

Nós temos aqui o arquivo referente ao projeto que foi desenvolvido pela Casa do Código, aqui no Eclipse, e antes de a gente fazer esse processo de levar essa aplicação lá pro ambiente de produção, vamos fazer inicialmente um teste local aqui na nossa máquina, no nosso ambiente de desenvolvimento, pra que a gente possa ver como é que essa aplicação funciona.

Eu vou colocar aqui Ctrl + Shift + R e eu vou até a classe, que é a ServletSpringMVC, essa daqui, e eu vou só confirmar que eu estou trabalhando no perfil de desenvolvimento aqui, pra funcionar nesse nosso ambiente local do computador da gravação. Então eu venho nesse último método, o método onStartup e eu verifico aqui que eu estou trabalhando de fato no ambiente de dev, no ambiente desenvolvimento.

Uma vez que eu já confirmei que a gente está aqui rodando essa nossa aplicação com esse perfil de desenvolvimento, basta eu vir aqui, inicializar o Tomcat e a gente vai fazer esse teste local pra verificar como é que a aplicação funciona. Só esperar alguns segundos aqui pro Tomcat terminar de ser inicializado e a gente faz esse teste. Legal.

Ele já foi inicializado, vamos abrir então uma nova janela no nosso browser e a gente coloca aqui localhost:8080, que é a porta de comunicação do Tomcat e o nosso projeto recebe o nome lá de Casa do Código (localhost:8080/casadocodigo), então vamos só esperar. Legal.

Aqui a gente tem justamente a home da Casa do Código onde depois vão estar disponibilizados lá os livros para os usuários poderem acessar, poderem ver mais detalhes, enfim. Vamos justamente realizar um cadastro, nós, administradores da Casa do Código, vamos cadastrar um livro aqui pra justamente a gente verificar se tudo está funcionando, antes de a gente levar pro ambiente de produção.

Pra gente poder cadastrar um livro aqui, eu vou acessar o endereço, que é o produtos/form e aí eu vou colocar um título do livro que a gente vai cadastrar, que vai ser “Algoritmos em Java”. A descrição, eu também vou colocar uma descrição simples, só “Algoritmos em Java”. Quantidade de páginas, um número fictício de 100 páginas. Hoje é dia 7 de março, então vou colocar 7 de março de 2018. O preço do ebook, valores fictícios de 30 reais. O impresso eu vou colocar 60 reais e o combo também um valor fictício, que é o ebook mais o livro impresso, de 90 reais.

E aí a gente vem aqui e escolhe a imagem do nosso livro, do Algoritmos em Java, e a gente coloca aqui cadastrar e nós temos a informação de que o produto foi cadastrado com sucesso. Então se a gente voltar na nossa home, a gente deve ver o quê? A gente deve ser capaz de justamente visualizar esse livro que a gente acabou de cadastrar, do Algoritmos em Java. Se a gente clicar aqui, a gente tem também a informação dos detalhes desse livro pra que o usuário possa futuramente ver mais detalhes e poder realizar a compra desse livro, enfim.

Legal, então a gente viu aqui que a nossa aplicação está funcionando nesse nosso ambiente local de desenvolvimento. Então o que a gente tinha feito nos outros cursos aqui, pessoal? Vamos só colocar a apresentação pra gente lembrar um pouco como é que a gente fez esse processo de levar a aplicação da Casa do Código lá pra Amazon.

A gente tinha que fazer o quê? A gente tinha que ir lá na Amazon e configurar um servidor através do serviço do EC2. Só que dependendo da quantidade de acessos que essa nossa aplicação teria, a gente poderia eventualmente ter uma indisponibilidade desse servidor pela quantidade de tráfego, pela quantidade de acessos, e a gente viu que era importante o quê? Realizar um escalonamento dessa nossa aplicação.

Então a gente tinha que ir lá na Amazon, criar um grupo de auto escalonamento pra que a Amazon pudesse, dependendo da quantidade de acessos que essa nossa aplicação tivesse, configurar esses outros servidores aí pra justamente dividir os acessos dos usuários nesses vários servidores.

Só que pra poder fazer o acesso dessas instâncias que estariam lá na Amazon com a nossa aplicação, a gente tinha que ir lá e configurar o grupo de segurança, que eu abreviei aqui por SG, de security group em inglês, grupo de segurança, que a gente tinha que ir lá e justamente habilitar as portas de comunicação dessas instâncias. Tínhamos que ir lá e habilitar a porta 80, que é utilizada pela comunicação web, pelo protocolo HTTP ou 8080, se gente estivesse trabalhando com o Tomcat nesses servidores.

E depois, pra poder fazer o balanceamento entre esses servidores que a gente tinha criado no grupo de auto escalonamento, a gente tinha que ir lá e configurar um balanceador de cargas, um load balancer, que eu coloquei aqui a abreviação LB, de load balancer em inglês, pra poder, sim, finalmente depois, ter lá o nosso usuário que acessaria esse load balancer pra poder fazer o acesso à nossa aplicação.

Então toda esse tapa de configuração que a gente tinha que fazer era o quê? Era uma etapa manual de configuração, a gente tinha que ir lá, tinha que ir no serviço do EC2, tínhamos que fazer toda a configuração, tínhamos que instalar o Tomcat, tínhamos que liberar as portas de comunicação no grupo de segurança, tínhamos que associar essas instâncias ao load balancer, ao balanceador de cargas, pra aí sim, finalmente, o nosso usuário lá da internet poder acessar a nossa aplicação.

É um processo um pouco trabalhoso, não é? Justamente por isso que a Amazon tem outros serviços que têm o objetivo de ajudar nesse processo de configuração aqui. Então esse serviço que a gente vai estar trabalhando agora e que a gente vai utilizar pra poder realizar esse envio do nosso projeto lá para a Amazon, esse serviço que vai ajudar a gente é justamente o Elastic Beanstalk.

O Elastic Beanstalk, pessoal, vai justamente o quê? Abstrair pra gente todo esse processo de configuração mais pesado de infraestrutura pra que a nossa aplicação funcione, então eu ainda tenho total controle sobre todos esses serviços aqui que o Beanstalk vai configurar.

Mas o Beanstalk vai facilitar pra gente, a gente não vai precisar configurar cada uma dessas etapas manualmente como a gente fez nos demais cursos. O Beanstalk vai abstrair pra gente, vai montar um guia passo a passo lá do que a gente deve fazer e aí sim, se eu quiser fazer algum ajuste manual, algum ajuste mais fino, eu ainda tenho esse total controle. O Beanstalk tem o objetivo de ajudar nesse processo, tornar esse processo mais fácil e mais rápido pro usuário final.

Esse local de configuração que vai ser realizado pelo Beanstalk, é o que a gente vai chamar ajustamento o quê? De ambiente. Então nesse ambiente do Beanstalk é que a gente vai ter todos esses serviços configurados pra nós, com servidores, aqui no caso, utilizando o serviço do EC2, o load balancer, pra poder fazer o balanceamento dos acessos dos usuários nesses vários servidores que a gente pode vir a ter, toda essa etapa de configuração que o Beanstalk vai realizar pra gente, vai estar dentro aqui de um ambiente.

Então justamente agora que a gente já entendeu um pouco mais a premissa do Beanstalk, que é justamente facilitar esse processo de configuração dos serviços da Amazon, vamos lá na Amazon na sequência e justamente começar a trabalhar com o Beanstalk pra levar a nossa aplicação da Casa do Código. Vamos fazer isso na próxima etapa. Vamos lá.

Configurando Elastic Beanstalk - Configurando Elastic Beanstalk

Nós fizemos um teste da aplicação da Casa do Código aqui nesse nosso ambiente local de desenvolvimento e a gente viu que tudo estava funcionando. Agora a gente precisa ir lá na Amazon e justamente configurar o ambiente no Elastic Beanstalk pra poder levar essa aplicação da Casa do Código para o ambiente de produção.

Pra isso vamos abrir aqui uma nova janela no browser e a gente vai justamente pra URL que a gente já conhece, que é o aws.amazon.com pra que a gente possa interagir com os serviços da Amazon Web Services.

Uma vez que a gente está aqui na home da Amazon Web Services, basta a gente clicar na aba referente a minha conta e a gente vem aqui em AWS Management Console, pra que a gente possa colocar lá as nossas informações do e-mail e da senha que a gente tem cadastrados aqui com a Amazon. Se você não tem uma conta criada juntamente aqui com a Amazon, logo nas atividades que vão ficar abaixo do vídeo, eu coloco lá o espaço pra você criar a sua conta.

Então a gente tem aqui já o e-mail, eu vou colocar minha senha aqui e a gente será redirecionado pra parte inicial do painel de console, onde a gente tem listados os vários serviços que a gente pode estar trabalhando com a Amazon Web Services.

Antes de a gente começar a trabalhar com o Elastic Beanstalk, só certifica aqui que a gente está trabalhando na região do norte da Virgínia. Então se você não estiver aqui no norte da Virgínia, basta clicar nessa aba e seleciona a primeira opção, US East North Virginia, que o nosso projeto está configurado pra trabalhar nessa região do norte do Virgínia.

Uma vez que a gente está nessa região, basta nós virmos nessa parte de pesquisa dos serviços e a gente vai pesquisar pelo Elastic Beanstalk, então vou colocar aqui “Elastic Beanstalk” e a gente já vai ser direcionado pra parte de configuração desse serviço do Elastic Beanstalk.

Aqui a gente tem até um pequeno descritivo sobre esse serviço e a gente tem justamente aquela parte de descrição, que o foco do Elastic Beanstalk é justamente o quê? Deixar a Amazon fazer toda essa parte pesada, que eles colocam até aqui como esse heavy lifting, essa parte pesada de configuração da infraestrutura.

Uma vez que a gente está aqui nessa parte de configuração do Elastic Beanstalk, a gente deve selecionar qual é o nome dessa aplicação que a gente vai querer estar trabalhando aqui no Elastic Beanstalk.

A gente vem nesse botão “Create New Application” e nós vamos dar um nome pra essa nossa aplicação, poderia ser o nome que a gente quiser, mas como a gente está trabalhando com aplicação da Casa do Código, vamos dar esse nome aqui pra ficar mais semântico. Vou colocar o nome dessa nossa aplicação como sendo “casadocodigo” e a gente pode vir aqui e clicamos no botão “Next”.

[02:28] Uma vez que eu já defini o nome pra essa nossa aplicação, a gente deve, de fato, justamente configurar o ambiente que vai ser utilizado depois pelo Beanstalk pra subir o servidor lá com o serviço do EC2 e fazer todas aquelas etapas de configuração que nós fizemos manualmente nos cursos anteriores.

Agora eu tenho que falar pro Beanstalk qual que é o tipo de ambiente que eu quero trabalhar. Olha só, a gente tem duas opções aqui. A primeira opção, que é esse “Web Server Environment”, que seria justamente o quê? Um ambiente pra trabalhar com servidor web pra justamente receber essas nossas aplicações web e tem outra opção que é esse ambient worker, esse “Worker Environment”.

Essa opção Worker Environment é mais indicada se a nossa aplicação tem atividades que vão demandar um alto tempo de processamento como, por exemplo, a parte de mensageria ou eventualmente realizar um processamento de um vídeo, algo que tem esse alto tempo de processamento. No nosso caso, na aplicação da Casa do Código, não vai ter essa necessidade. Pra nós já vai ser suficiente trabalhar aqui com o ambiente web server.

Uma vez que a gente já definiu o que esse nosso ambiente web server já vai atender bem a nossa necessidade, basta a gente clicar nessa opção “Create web server” e aí o que a gente tinha que fazer lá nos cursos anteriores? A gente tinha que acessar a nossa instância pra poder instalar o Tomcat manualmente. Mas agora com o Beanstalk esse trabalho pesado é responsabilidade do Beanstalk fazer pra nós.

Uma vez que a gente já especificou que eu quero trabalhar com esse ambiente de web server, de servidor web, basta vir aqui e falar pro Beanstalk: “já instala o Tomcat aqui pra gente”. Então nessa parte de plataforma de configuração basta eu vir aqui e selecionar pro Beanstalk instalar o Tomcat pra nós.

Uma vez que eu já especifiquei que eu quero que o Beanstalk já instale o Tomcat pra gente, eu tenho a opção também de falar pro Beanstalk se eu quero trabalhar já com esse nosso ambiente configurado pra realizar um auto escalonamento, um balanceamento entre várias instâncias que pode ter.

Nesse nosso caso, como a gente está fazendo esse primeiro teste, eu não preciso criar logo de cara esse ambiente já preparado pra trabalhar com várias instâncias, com balanceamento de cargas dos usuários que vão acessar nossa aplicação, eu só estou fazendo esse primeiro teste com o Beanstalk, então eu quero trabalhar somente com uma instância, com um único servidor no momento. Eu venho nessa opção de tipo de ambiente e eu vou colocar aqui pra trabalhar pra somente ter uma instância, um único servidor.

Com isso o Beanstalk já sabe que a gente vai trabalhar com ambiente web, que a gente só quer um único servidor por hora e que ele já deve instalar também o Tomcat pra nós. Feito isso basta clicar no botão “Next” e agora eu preciso falar pro Beanstalk: “qual é a aplicação que você deve utilizar pra instalar nesse Tomcat aí que vai ser configurado?”. O arquivo que a gente tem que passar é justamente o quê? O do nosso projeto na Casa do Código, pra que o Beanstalk faça a instalação desse projeto no Tomcat. Vamos fazer isso na próxima etapa. Vamos lá.

Sobre o curso Amazon Elastic Beanstalk Parte 1: Container Docker

O curso Amazon Elastic Beanstalk Parte 1: Container Docker possui 120 minutos de vídeos, em um total de 42 atividades. Gostou? Conheça nossos outros cursos de Cloud em Infraestrutura, ou leia nossos artigos de Infraestrutura.

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!

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

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • 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

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

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • 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

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

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • 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

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

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • 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
Procurando planos para empresas?
Acesso por 1 ano
Estude 24h/dia onde e quando quiser
Novos cursos toda semana