Alura > Cursos de DevOps > Cursos de Infraestrutura como Código > Conteúdos de Infraestrutura como Código > Primeiras aulas do curso Infraestrutura como código: montando uma infraestrutura elástica na AWS

Infraestrutura como código: montando uma infraestrutura elástica na AWS

Usando o launch template - Apresentação

Boas-vindas! Eu sou o Leonardo Sartorello e vou ser seu instrutor nesse curso de infraestrutura como código. Então, o que vamos ver nesse curso?

Vamos dar uma olhada em Infraestrutura elástica, o que é uma infraestrutura elástica e como ela pode nos ajudar a reduzir custos, aumentar o desempenho e você quer que essa aplicação responda de forma mais rápida aos nossos usuários, a tornando mais dinâmica.

Também vamos dar uma olhada no que é e como configuramos um load balancer. E por fim vamos dar uma olhada de como conseguimos fazer com que as máquinas que criarmos possam se auto configurar, sem que termos que intervir entrando na CSH ou utilizando uma ferramenta na nossa máquina para configurar as máquinas no iCloud.

Legal, mas quais ferramentas vamos utilizar para fazer tudo isso? Vamos utilizar o Ansible para fazer as configurações das máquinas e o Terraform para podermos mexer na nossa infraestrutura, tanto cria-la quanto gerenciá-la futuramente.

E onde vamos subir essa infraestrutura? Vamos subir na AWS. Porém, você pode utilizar algum outro provedor, só vai precisar fazer algumas adaptações durante o nosso percurso nesse curso.

Para quem é esse curso? Esse curso é focado para aquelas pessoas que estão estudando ISE e já fizeram esse curso pré-requisito desse curso. Se você não fez ainda, dá uma passada lá, que vamos utilizar várias coisas nesse curso, que acabamos vendo no curso de pré-requisito.

E fazendo esse curso eu vou conseguir fazer o que de diferente? Você vai conseguir criar uma infraestrutura mais dinâmica e com uma maior organização, utilizando recursos como variáveis e condicionais. Sim, vamos utilizar if e else dentro do Terraform para definir quais recursos vamos querer criar e quais não vamos querer. Ou mudar alguma configuração dentro de algum ambiente.

E aí, ficou interessado? É só continuar nesse curso e vamos lá.

Usando o launch template - Launch template

Fazemos parte do time de develops em uma empresa. Essa empresa por sua vez tem uma aplicação que é montada em Python e tem uma biblioteca chamada de Django para responder as requisições. Para cuidar dessa aplicação, existem dois times, um time de produção e um time de desenvolvimento.

E esse time de produção pediu para nós, de develops, por uma infraestrutura elástica, ou seja, uma infraestrutura que pode crescer com a demanda e encolher quando a demanda diminuir. Assim, conseguimos ter um custo menor, já que essa quantidade necessária de máquinas vai estar ligadas quando precisarmos.

Então como essa infraestrutura elástica vai funcionar? Durante a noite, por exemplo, quando tivermos poucas requisições, vamos ter só uma ou duas máquinas ligadas. Já durante o dia, quando começarmos a ter mais requisições, vão sendo criadas máquinas automaticamente para comportar essas requisições que estamos colocando na nossa aplicação.

Assim não temos o problema da nossa aplicação ficar fora do ar e ao mesmo tempo conseguimos responder rapidamente novos clientes, novas pessoas que estão fazendo novas requisições para a aplicação, tornando a nossa aplicação mais rápida e mais interativa.

Vamos ver como podemos fazer isso na AWS através do Terraform. Vamos mexer na infraestrutura, já que queremos transformar nossa infraestrutura em elástica.

Então vamos na nossa pasta de infra, entrar no nosso “main.tf”, que é onde descrevemos toda a nossa infraestrutura, e começar a mexendo no recurso de instância, porque não queremos mais criar uma instância, queremos que as instâncias sejam criadas automaticamente.

Então não vamos ter esse recurso de instância, mas eu vou usá-lo, porque o que vamos criar no lugar é bem parecido com o que já temos escrito nesse curso. Então ao invés de aws_instance, a instância AWS, vamos criar um launch template, que é um template de máquina, um template que vamos criar nossas máquinas com base nele.

Então vou tirar o instance, então ”aws_launch_template”. Temos o launch_template. Outra mudança que eu vou fazer é trocar o nome lógico dentro do Terraform, de ”app_server”, para “máquina”, para ficar fácil de entendermos que houve essa mudança.

E agora vamos mexer nas configurações dele. O que vai precisar mexer? O launch_template não tem ami, ele tem uma coisa que substitui o ami, que vai ter a mesma configuração, que vai ser o nosso número de ami, então ami-03d5, assim por diante, mas não é esse campo chamado ami, chama image_id, mas ele tem a mesma função, então não precisamos ficar nos preocupando com isso.

Ele precisa do tipo de instância, que já temos definido. E caso quisermos acessá-lo via SSH, vamos precisar de um key_name e uma chave, que já temos definida também. Eu também vou deixar a nossa tag, que é para aparecer no nosso console da AWS. Então quando nossa máquina for criada, vai aparecer “Terraform Ansible Python”, para sabermos as tecnologias que estamos utilizando nessa máquina.

Com isso terminamos o nosso launch template. Ele está pronto, mas é importante lembrarmos que nesse momento temos uma descrição de uma máquina, que vamos utilizar depois para construir uma máquina.

Não temos mais uma instância da S2, não conseguimos mais ir no Terraform Apply e ver que temos uma instância. Se quisermos usar o Terraform Apply agora, ele vai criar essa template da AWS, mas não vai criar nenhuma instância para nós. Mas vamos usar esse template mais para frente, para as máquinas subirem automaticamente.

Usando o launch template - Separando os grupos de segurança

Anteriormente já criamos os grupos de segurança, mas por enquanto as nossas máquinas não estão ligadas a ele. E ambientes de Dev e de produção tem o mesmo grupo de segurança atribuído, que é aquele grupo que criamos que chama “Acesso geral”. Vamos ver agora como podemos fazer para configurar esses grupos de segurança, separar os dois e configurá-los nos nossos ambientes.

Vamos começar vindo no nosso arquivo de variáveis, o “variables.tf”. Nele nós vamos criar uma variável para um nome de grupo de segurança, que assim podemos dividir os grupos de segurança, introdução e desenvolvimento.

Então vamos criar essa variável, variable “grupoDeSeguranca”. É importante não usar cedilha, evitar alguns acentos, para você não ter nenhum tipo de problema no futuro.

Qual vai ser o tipo dessa variável? Então temos que deixar o type = string, o tipo dessa variável vai ser string, que é um tipo de texto, já que vamos colocar um nome no grupo de segurança. Vamos agora no grupo de segurança, para alterarmos o nome para ser essa variável. Então dentro de “infra.tf > Grupo_de_Segurança.tf”.

No campo name ele vai ser name = var.grupoDeSeguranca. E a descrição não faz mais sentido, porque não é mais só “Grupo de Dev” ou “Grupo de Prod”, então vamos tirar a descrição.

Já separamos os grupos de segurança. Agora, vamos atribuir esses grupos ao nosso launch_template, as nossas futuras máquinas. Vamos voltar no “main.tf”, vamos no nosso launch_template, vamos abrir uma nova linha e vamos colocar security_group_names.

E podemos observar que o IntelliSense, que é essa janela trazendo as dicas para nós, está dizendo para colocarmos uma string, só que entre colchetes, porque você pode definir vários grupos de segurança, então você pode definir o nome do grupo, vírgula, o nome do grupo, e assim por diante.

No nosso caso só vamos ter um, que e o security_group_names = [ var.grupoDeSeguranca ]. Então agora nossa máquina está configurada para usar esse grupo de segurança.

E agora só precisamos definir o nome do nosso grupo de segurança nos nossos ambientes. Então vamos em produção, o “main.tf” de produção e vamos colocar que queremos o grupo de segurança, então grupoDeSeguranca = “Producao”.

E no nosso Dev, o “main.tf” do nosso Dev, o grupo de segurança vai ser “DEV”, então grupoDeSeguranca = “DEV”. Com isso já temos o nosso grupo de segurança separado e configurado para as nossas futuras máquinas, tanto em produção quanto em desenvolvimento. E agora eles estão realmente desaplicados e podemos começar a utilizá-los.

Sobre o curso Infraestrutura como código: montando uma infraestrutura elástica na AWS

O curso Infraestrutura como código: montando uma infraestrutura elástica na AWS possui 85 minutos de vídeos, em um total de 43 atividades. Gostou? Conheça nossos outros cursos de Infraestrutura como Código 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 Infraestrutura como Código acessando integralmente esse e outros cursos, comece hoje!

Plus

De
R$ 1.800
12X
R$109
à vista R$1.308
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

Matricule-se

Pro

De
R$ 2.400
12X
R$149
à vista R$1.788
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Luri, a inteligência artificial da Alura

    Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com Luri até 100 mensagens por semana.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

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