Criando Infra na AWS com Terraform (IaC)

19.66k views6848 WordsCopy TextShare
Fernanda Kipper | Dev
Nesse vídeo iremos aprender como automatizar o processo de criação das nossas infraestruturas usando...
Video Transcript:
no vídeo de hoje a gente vai entender como automatizar o processo de criação das nossas infraestruturas na nuvem usando ferramentas de infrastructure ascod então sem mais enrolações Bora pro [Música] vídeo Então o que a gente vai explorar no vídeo de hoje é o conceito de infrastructure as code Então vamos primeiro entender o que que é esse conceito e aí vamos partir para mão na massa e criar a nossa primeira infraestrutura como código então a tradução literal de infrastructure as code seria infraestrutura como código e quando a gente fala disso a gente literalmente tá falando de
criar a nossa infraestrutura através de código então o que antes eu costumava fazer de forma manual então eu entrava lá no portal do da minha da minha provedora de nuvem Como por exemplo aws azure e gcp e eu ia lá e ia fazendo a criação da minha infraestrutura como por exemplo subindo as minhas máquinas virtuais subindo o Meu Container criando Bucket criando subnet criando rede Enfim tudo isso que eu fazia de forma manual lá no portal do provedor de nuvem agora eu consigo automatizar eu faço isso em formato de código então eu escrevo um código
que quando eu rodar esse código quando eu executar ele lá na nuvem ele vai fazer a criação dessa infraestrutura para mim então a gente já consegue entender aí o primeiro benefício do infrastructure S code que seria automatizar o processo de criação de infraestrutura então com infrastructure s code a gente consegue automatizar esse processo de criar infraestrutura mas não é esse o único benefício tem outro benefício aqui também muito importante que é padronização de infraestrutura E por quê né porque como a gente tá escrevendo a nossa infraestrutura em formato de código agora a gente consegue por
exemplo eu quero criar uma aplicação que seja bem parecida com outra que eu já criei eu consigo somente olhar lá o código da infraestrutura dessa aplicação e replicar a mesma infraestrutura porque o que era manual o que eu fazia lá entrando no portal do provedor de nuven agora eu coloquei num código então eu botei lá todos os passos a passos que precisam ser feitos Então se em algum momento eu precisar criar outro backend dentro da minha empresa ou criar outro frontend eu já tenho lá o código Prontinho de como que eu devo fazer né a
criação da infraestrutura é só executar aquele código que eu consigo criar a mesma infraestrutura com os mesmos padrões de um outro projeto que eu já tenha criado anteriormente então a gente consegue padronizar a infraestrutura dentro da nossa empresa então aqui eu vou colocar né que são os benefícios do infrastructure S code e por fim tem outro benefício aqui também que são os três que eu considero os maiores benefícios que seria a questão de replicar de forma fácil então além da gente automatizar esse processo e padronizar a infraestrutura a gente consegue replicar a infraestrutura de forma
fácil então de novo é só pegar o código O código ali que define a infraestrutura daquele projeto e executar de novo Claro mudando Talvez o nome da máquina virtual ou mudando o nome do Bucket mas eu vou fazer a criação novamente igualzinho e eu vou repcar a infraestrutura de forma fácil então é por isso que cada vez mais os times têm adotado essa prática de infrastructure as code porque a gente consegue automatizar o processo de criação da nossa infra padronizar ela e ainda replicar de forma fácil para outro os times dentro da nossa empresa Então
agora que a gente já entendeu o termo né de infrastructure S code Vamos partir por código e escrever o nosso primeiro código de infraestrutura então eu já tô aqui com meu vs code aberto eu só Criei uma pasta vazia e não tenho nada aqui dentro ainda e a gente vai fazer agora a criação dos nossos arquivos Então a primeira coisa que eu vou fazer é criar uma nova pasta aqui dentro que eu vou dar o nome de S3 Bucket static por quê Porque a gente vai escrever um código uma infraestrutura que vai criar um Bucket
do S3 para servir sites estáticos então para quem já assistiu o vídeo onde a gente replica o site da Apple aqui no canal vou deixar o link aqui em cima a gente no final do vídeo fez o Deploy da nossa aplicação da Landing page da Apple que a gente tinha criado e a gente fez isso através do S3 do serviço da WS S3 e aí eu abri lá o portal da WS né o consol da WS e fiz todas as configurações do Bucket do S3 mostrei para vocês tudo que vocês precisavam fazer o que que
precisava marcar lá no momento de criar que permissões a gente precisava dar enfim todas as configurações e agora a gente vai automatizar esse processo que a gente fez lá no vídeo Então eu peguei Justamente esse exemplo porque aí Vocês conseguem ver como é que era antes então é só ir aqui no vídeo e dar um olhadinha em como é que a gente fez a criação e voltar aqui e ver como é que vai ser esse processo automatizado Então a gente vai criar aqui um código que vai gerar buckets do S3 para servir sites estáticos para
servir sites Então vai ser um Bucket onde a gente coloca arquivos e esses arquivos correspondem aos arquivos do meu frontend E aí a WS ali a gente coloca as opções corretas ela fornece uma URL para esse Bucket né E aí acessando através dessa URL a gente consegue acessar o nosso frontend estático então frontend estático é por exemplo HTML CSS JS puro ou às vezes o Build do angler também então quando a gente faz o Build do angler a gente também consegue servir como site estático o Next também independendo de como a gente faz o build
também dá para servir como site estático Enfim então criado aqui Nossa pasta a gente vai criar um novo arquivo esse arquivo eu vou chamar de Main que vai ser o arquivo principal ptf E por que TF TF é a extensão que a gente tá usando aqui que corresponde ao terraform Então vou mostrar aqui para vocês o que que seria o terraform o terraform É uma ferramenta pra criação de infrastructure S code então é como se fosse uma linguagem para quem já conhece o o eml ou XML É bem parecido Então a gente vai usar o
terraform para isso e o terraform tem uma sintaxe própria obviamente e ele já tem aqui vários plugins próprios que facilitam a criação por exemplo de buckets do S3 que facilit a criação de S2 de ss então eles já TM tudo isso implementado aqui na na ferramenta né que é o terraform então é por isso que a gente vai utilizar e o terraform é muito popular tá várias empresas utilizam terraform então é por isso que a gente vai usar ele aqui hoje mas existem outras opções também o cloud formation também é uma opção Então vou mostrar
aqui para vocês Cloud formation ele também é uma opção mas o cloud formation ele é exclusivo da WS então é uma ferramenta que a WS criou para fazer infrastructure S code o terraform não é da WS a gente consegue usar para outras nuvens também para azure por exemplo mas aqui a gente vai usar WS também mas vamos usar o terraform Então beleza criamos o nosso arquivo terraform e agora vamos colocar aqui as especificações pra criação do nosso Bucket uma pausa rápida só para lembrar você de se inscrever aqui no canal e deixar seu like se
esse vídeo tem te ajudado até aqui se você tá gostando do vídeo o seu like a sua inscrição são muito importantes para permitir que eu continue trazendo mais conteúdos de forma gratuita e fazer com que esse tipo de conteúdo alcance mais pessoas pronto bora continuar o vídeo Então a primeira coisa que a gente vai fazer aqui dentro do nosso arquivo terraform é declarar o nosso provider e o provider que a gente vai utilizar vai ser o provider da aws o que que seria esse provider o provider é como se fosse um Plugin do terraform Então
a partir do momento que a gente utiliza aqui o provider da WS a gente vai ter uma série de recursos específicos da WS que a gente vai poder utilizar aqui dentro do nosso código terraform então vou abrir aqui as chaves né e eu vou colocar a região onde eu vou provisionar os recursos onde eu vou provisionar essa infraestrutura que eu tô criando aqui nesse código e para quem ainda não conhece né Um pouquinho mais sobre a WS eu vou mostrar rapidamente aqui para vocês o console da WS então eu tô aqui dentro da WS tô
logada na minha conta e eu tô aqui dentro do serviço aws S3 né Amazon S3 que é onde ficam os buckets os buckets S3 e aí se a gente vê aqui ó cada um desses meus buckets eles têm essa coluna aqui né que se chama região da WS O que que significa isso a WS tem data Centers espalhados pelo mundo todo então eles têm um aqui em São Paulo eles TM uma região né que eles chamam uma em São Paulo eles TM várias nos Estados Unidos tem na Europa tem na Ásia e aí quando a
gente faz a criação da nossa infraestrutura aqui na WS a gente pode escolher onde que a nossa infraestrutura vai estar localizada às vezes por questão de latência então a gente costuma deixar mais próximo do nosso usuário ou às vezes por questão de preço também a gente escolhe o lugar onde é mais barato porque aquele deira Center é afetado pelos pelas taxas locais da onde ele tá localizado Então por uma série de motivos a gente escolhe Em qual região da WS a gente quer colocar a nossa infra onde a gente quer colocar nossas máquinas virtuais os
nossos containers o nosso S3 enfim e os buckets do S3 por padrão tá eles ficam já aqui no West East One então eles sempre ficam aqui quando a gente cria um Bucket do3 eles sempre vão estar aqui no West East One então quando a gente for declarar lá no nosso código a região da WS a gente vai colocar aqui West East One para quando a gente tá falando de Bucket do S3 beleza declaramos aqui que a gente quer utilizar o provider da WS qual região a gente vai est utilizando agora a gente vai declarar uma
variável eu vou declarar a variável Bucket name por que que eu vou declarar essa variável porque eu quero que o meu código seja genérico então eu não quero escrever aqui no meu código diretamente o nome do Bucket tá porque senão toda vez que eu executar esse código ele vai criar o Bucket com o mesmo nome ou no caso vai dar erro porque não pode criar Bucket com o mesmo nome né Depois de já ter um criado então eu quero receber esse esse valor o Bucket name o nome do Bucket que a pessoa quer criar através
de uma variável E aí o meu código fica genérico toda vez que eu executar esse código eu passo o nome do Bucket que eu quero criar e ele faz a criação para mim com todas as configurações necessárias para que esse Bucket sirva um site estático só que com o nome que eu passei e aí a gente vai colocar aqui que o tipo dessa variável é o tipo string Beleza agora a gente vai declarar o nosso primeiro recurso o que que são os recursos né os resources eles são a parte mais importante aqui do código terraform
eles representam objetos de infraestrutura e o que que seri objetos de infraestrutura são configurações que a gente faz na nossa infraestrutura então pode ser desde a criação de algum recurso provisionamento de recursos até a configuração de algum recurso que já existe então por exemplo mudar as permissões daquele recurso ã trocar a memória trocar a máquina enfim a configuração que a gente precisa fazer naquele serviço que a gente tá mexendo né naquele recurso de infraestrutura Então a gente vai fazer a declaração aqui da criação do nosso Bucket através de um resource E aí quando a gente
usou aqui o provider da WS ele disponibiliza para nós alguns resources alguns recursos específicos daws que a gente vai utilizar aqui para fazer a criação do nosso Bucket e depois a configuração desse Bucket que a gente criar então aqui eu vou utilizar o recurso aws S3 Bucket e aí aqui eu vou passar um segundo parâmetro que vai ser static site Bucket e a gente vai abrir Chaves e aqui dentro a gente vai colocar as configurações os parâmetros né para fazer a criação desse Bucket aqui que a gente tá criando a primeira coisa que a gente
precisa passar é o nome desse Bucket Qual é o Bucket a gente precisa identificar ele então vou colocar aqui um prefixo de static site E aí depois eu vou colocar o a variável que eu recebi por parâmetro aqui no momento da execução desse terraform que é o Bucket name Então vou colocar var P Bucket name Então dessa forma todos os buckets criados por esse código có aqui quando ele for executado vão ter o prefixo static site Isso aqui é bom porque me ajuda a identificar de cara que esse Bucket funciona como um site estático então
eu vou abrir aqui a lista dos meus buckets na WS aí imagina a a conta da WS de uma empresa por exemplo uma empresa de um banco né que tem vários sites vários serviços aqui vão ter vários buckets né E aí eu consigo encontrar de forma fácil os buckets que forem sites estáticos então venho aqui jogo o static site ele já vai listar para mim todos os buckets que são sites estáticos então por isso que é legal a gente manter esse padrão aqui na nomenclatura do Bucket né aí beleza passado aqui o nome do Bucket
a gente vai fazer algumas configurações a primeira configuração são as configurações de website Então a gente vai configurar aqui os documentos de index e o documento de erro o que que é isso para quem nunca criou aqui um site estático com um Bucket do S3 a gente precisa passar no momento de de fazer a configuração aqui do nosso Bucket a gente precisa passar o documento de índice e o documento de erro vou mostrar aqui para vocês o que que é esse documento de índice de erro o documento de índice é o arquivo que vai ser
carregado quando o meu usuário acessar o bu ess URL né do meu Bucket Então a gente tem ali uma URL para acessar o Bucket porque ele é um site estático quando o usuário acessar essa URL a WS precisa saber qual dos arquivos que tá dentro desse Bucket ela deve mostrar E no caso é o nosso arquivo de entrada o index html e eu consigo configurar também o documento de erro então caso o usuário acesse uma rota que não existe nenhum arquivo para tratar aquela rota Qual é o arquivo que a WS Deve mostrar porque Lembrando
aqui o Bucket é uma forma de armazenar arquivos né na WS objetos que eles chamam então a gente precisa indicar caso não encontre nenhum objeto nenhum arquivo naquela url que o usuário acessou Qual é o arquivo que ele deve mostrar né então aqui a gente consegue configurar E no caso pode ser error pon HTML que nem ele tá sugerindo aqui pode ser 404 P HTML Enfim pode ser o que a gente preferir usar aqui e aí definir como padrão para todas as nossas equipes dentro da empresa né então aqui a gente vai passar e aqui
é o Website minúsculo e não maiúsculo a gente vai passar o index document que vai ser index p8 HTML e o error document que vai ser aqui eu vou definir por padrão 404.0 ml e e por fim a gente vai passar aqui algumas tags para esse nosso Bucket e aqui é tags igual e eu vou colocar aqui a tag name que eu vou chamar de set site Bucket e a tag environment eu vou chamar de production e aqui tem corrigir e o que que são essas tags aqui no nosso Bucket 23 também ó vou mostrar
para vocês nas configurações dele a gente consegue passar umas tags ó aqui nas propriedades a gente consegue passar umas tags essas tags servem PR Izar os buckets então é como se fosse labels mesmo para categorizar cada um dos buckets que eu tenho dentro aqui da minha conta que se vocês não viram ó todos os buckets que eu tiver dentro da minha conta do S3 vão estar listadas nessa pagin zinhas aqui se eu não tiver uma forma de organizar eles e categorizar e eu tô falando aí de uma empresa grande por exemplo que tem vários aplicações
rodando né eu vou acabar me perdendo aqui então a gente utiliza esses recursos para organizar e categorizar nossos buckets então eu coloquei aqui o uma tag de nome que é um static site para identificar que ele é um site estático e aí todos os sites estáticos que eu criar vão ter essa tagz inha aqui e uma tagz inha environments para indicar que esse site é um site que tá em produção tem usuário acessando né é um Bucket que tá sendo usado em produção e aí se fosse um Bucket que tá sendo usado no meu ambiente
de testes seria legal colocar aqui environments como developer por exemplo que é o ambiente de teste dos desenvolvedores beleza fizemos a criação do nosso Bucket agora a gente precisa configurar algumas coisas nesse Bucket para que ele funcione como um site estático a gente já fez a configuração aqui dos documentos mas não é só isso que a gente precisa fazer a gente precisa liberar todos os acessos a esse Bucket e permitir a leitura pública dele né que para que qualquer um que acesse ao URL consiga ler sem precisar se autenticar porque é um frontend então no
frontend as pessoas já acessam o nosso site sem precisar autenticação nenhuma né Elas acessam a nossa URL e já renderiza ali o nosso HTML então o que que a gente vai fazer aqui a gente vai declarar um novo resource que vai ser aws S3 Bucket Public access Block que a gente vai mudar essa configuração aqui de bloqueio de acesso público e aqui a gente vai passar o mesmo nome tá static site Bucket tem que passar o mesmo parâmetro a primeira coisa que a gente vai fazer aqui é Identificar qual é o Bucket que a gente
vai estar mudando aqui o acesso público né então como é que a gente vai fazer isso como é que a gente vai identificar a gente vai pegar aqui aws S3 Bucket pon static site Bucket pid Então a gente vai pegar o ID do Bucket que a gente criou aqui anteriormente nesse recurso e agora eu vou colar aqui quais as configurações que a gente precisa fazer né Qual os parâmetros que a gente precisa colocar aqui dentro que são esses daqui que basicamente eu trocando todos os bloqueios que o Bucket tem para falsa Então em vez de
ficar como true que é o padrão tô trocando para false para que ele libere aqui o acesso e agora eu vou colar aqui as últimas configurações que a gente precisa fazer nesse nosso Bucket que são mais dois resources que a gente precisa fazer E aí eu vou mostrar aqui para vocês esse último ele basicamente anexa a política de Public read pro nosso Bucket então depois de ter desbloqueado todos os acessos aqui que é uma coisa que a gente precisa fazer a gente também precisa anexar nesse Bucket uma política de acesso público eu vou mostrar de
novo aqui no painel da WS para vocês então eu tenho aqui já ó um site um um Bucket que eu uso para servir um site né E se a gente ver aqui ó ele já diz que o acesso é público então acesso ele aqui nas propriedades dele a gente já consegue ver aqui ó publicamente acessível né que esse Bucket é publicamente acessível E se a gente vier aqui embaixo ó o bloqueio de objeto tá desabilitado então todos aqueles desbloqueios que a gente fez aqui correspondem a essas coisas aqui que eu t mostrando PR vocês então
o bloqueio itado não tem que bloquear E além disso tem uma permissão de acesso público anexada nesse Bucket então tem uma política aqui que eu coloquei nesse Bucket para permitir ó a Lau todos os acessos de get nos dos arquivos que tiverem nesse Bucket então qualquer pessoa pode acessar Por que fe por que isso porque é um front end Então eu quero que meus usuários acessam acessem então é por isso que eu tô liberando o acesso a todos os os arquivos desse Bucket apenas de leitura não de edição né ninguém vai poder poder mudar só
ler Então as pessoas vão poder acessar E aí isso é muito importante a gente cuidar aqui o que a gente fori colocar dentro desse Bucket para Lembrando que é um frontend que as pessoas têm acesso aos arquivos do nosso frontend então é por isso que a gente tem que tomar cuidado e aqui ó se a gente vê também ó aqui ó bloquear o acesso público tá tudo desche secado aqui então eu não nenhum desses tá tá com cheque né tá tudo não bloqueado Então liberei tudo e aqui ó se a gente V ó tem quatro
opções né bloquear acesso público a Bucket e objetos cons setido por meio de novas listas bloquear n bloquear Tudo isso daqui esses essas quatro opções são essas opções que a gente colocou aqui ó que a gente colocou como false que a gente foi lá e colocou o check como false basicamente a gente fez isso através do código ó a tá colocando aqui E esse último aqui é anexando a política né foi o que a gente precisou fazer para anexar aquela política ali no nosso Bucket então é basicamente isso o nosso código terraform já está pronto
Mas se vocês verem aqui né A gente só criou o nosso código terraform agora como é que a gente faz para executar esse carinha como é que a gente faz para fazer isso de forma automática bom a gente pode tanto executar aqui na nossa máquina e a gente vai ter que autenticar lá na nossa WS rodar aqui na nossa máquina e aí pelo terminal né E aí consegue fazer a criação lá na na na na nossa conta da WS Ou a gente pode fazer isso através de uma pipeline então a gente pode criar uma pipeline
que vai rodar esse código terraform E aí essa pipeline faz a criação da infraestrutura E é isso que a gente vai fazer agora então a gente vai configurar uma pipeline para executar esse código aqui e fazer a criação da nossa infraestrutura tudo através de uma pipeline aí os meus desenvolvedores da minha empresa conseguem acompanhar a pipeline e quando tiver finalizado Eles já conseguem ir lá e acessar o Bucket deles então a gente consegue padronizar Nossa infraestrutura automatizar o processo e replicar de forma fácil porque a gente vai ter uma pipeline para fazer isso isso Então
beleza vamos fazer aqui a criação da nossa pipeline então eu vou utilizar o github Actions para fazer essa nossa pipeline Então vou criar aqui uma nova pasta que vai ser pon github Por que Ponto github porque se eu colocar esse repositório lá no github o github já identifica que os arquivos que estão dentro dessa pasta correspondem aos arquivos de template de ISO de github Actions que são os workflows né as configurações de code owner enfim todas as configurações do repositório Então a gente tem que deixar aqui dentro dessa pasta pon github é o padrão tá
E aí dentro dessa pasta pon github a gente vai criar uma nova pasta que é a pasta workflows e aí o github já sabe que dentro dessa pasta workflows estão os arquivos que correspondem a workflows do meu github Actions que são as minhas pipelines né E aqui dentro por fim eu vou criar um novo arquivo que eu vou chamar de provision S3 static s. yemil Então esse arquivo aqui essa essa esse meu workflow vai ser responsável por provisionar um novo site estático no S3 né criar essa infraestrutura Então a gente vai dar um nome para
essa nossa para esse nosso workflow que eu vou chamar de Deploy S3 static site na verdade é Create né não é um Deploy é um Create beleza e aqui eu vou colocar o que vai trigar a execução desse meu workflow então como isso aqui vai estar num repositório do kit Hub o que que vai trigar a execução desse workflow né dessa pipeline então eu vou fazer uma configuração essa pipeline seja executada to vez que nova isue for aber nesse repositório Então as pessoas do meu time desenvolvedores da minha empresa CONSEG stic nar infra um site
abrindo nova is nesse reposit S fazend ISO eles vegu e a como gente vai fazer is aqui is E aí o tipo da is tem que ser open né uma nova is aberta quando uma nova is for aberta eu vou executar esse esse workflow aqui agora o código para fazer todo o passo a passo eu vou só colar aqui já tem vídeo de Git Hub Actions aqui no canal vou deixar o link aqui no card onde eu explico um pouquinho mais sobre essa sintaxe aqui né do kit Hub Actions Quais são os parâmetros que a
gente tem que passar mas no vídeo de hoje eu vou focar só na parte que diz respeito ao infrastructure S code Então essa explicação aqui dos Jobs enf fim das coisas deixo nesse vídeo aqui de github Actions e eu vou focar no vídeo de hoje apenas nas parte que diz respeito ao infrastructure as codes Então a primeira coisa aqui importante é a gente pegar né as nossas ã credenciais da WS Então a gente vai salvar essas credenciais na Secrets do nosso repositório eu já vou mostrar para vocês lá no repositório do github como é que
a gente faz isso mas eu vou salvar essa Secrets no meu repositório e aqui na minha pipeline eu vou pegar essa Secrets porque eu vou precisar usar US elas para logar na minha WS então eu venho aqui faço o setup da minha da WS Caline né porque aí tando autenticada na WS eu consigo rodar o meu arquivo terraform e fazer a criação da infraestrutura lá aí outra coisa legal aqui é que eu peguei o nome do Bucket né lembra que a gente tem que passar aqui pro nosso pro nosso arquivo terraform uma variável que é
o Bucket name Eu Vou extrair esse Bucket name do título da isu então o título da isu né quando a pessoa criar uma isu lá no meu repositório do github o título dessa isu vai corresponder ao nome do meu Bucket vai ser o nome que eu vou passar pro meu arquivo terraforma então aqui basicamente o que eu tô fazendo é extraindo esse título lá da ISO que trigu a execução dessa pipeline aí eu passo pra etapa de rodar o terraform então o que que eu faço aqui eu entro na pasta Onde tá o meus arquivos
terraform e faço a execução dele e aqui se a gente vê né eu tinha colocado antes dentro de uma pasta terraform e aí dentro da da pasta S3 estético Website então a gente pode fazer isso ó eu posso criar aqui uma nova pasta terraform e aí eu passo esta pasta aqui S3 Bucket static para dentro da pasta terraform porque eu consigo ter dentro dessa dessa minha pasta terraform o ec2 o ecs enfim todos os terraform que eu quiser né criar aqui para para provisionar recursos de forma automática eu deixo dentro da pasta terraform e vou
separando eles através das suas pastas específicas como por exemplo aqui a minha pasta S3 Bucket site aqui ó S3 Bucket static e aqui eu vou trocar também S3 Bucket static não tem esse website aqui então beleza eu entrei na pasta aí eu faço terraform init e aí terraform apply né quando eu faço o init Ele já sabe que é para pegar aqui o arquivo Main E aí aqui eu tô passando Ó através de variável então aqui eu passo a Flag menos var a variável Bucket name e eu tô passando o valor aqui que eu eu
extraí do título da isu E aí por fim eu adiciono um comentário na isu então eu venho aqui uso a Action do próprio github né PR para mexer nas ises E aí eu adiciono um comentário nessa ISO falando que o Bucket foi criado quando eu terminar aqui todas essas etapas Então beleza de código era isso agora vamos partir pra configuração do nosso repositório lá no github Então a primeira coisa que a gente vai fazer é criar o nosso repositório né eu vou chamar o meu repositório de infrastructure por exemplo que aí vai ser o Digamos
que o repositório que toda a minha equipe toda a minha Squad ou quem sabe toda a minha empresa vai usar para criar as suas infraestruturas aí dependendo da ISO que a pessoa abrir vai criar uma infraestrutura diferente por exemplo né no nosso caso aqui só tem o S3 por enquanto mas a gente poderia implementar outros códigos também e fazer tudo isso de uma forma automatizada Então vou criar aqui o repositório e aqui dentro do nosso repositório a gente vai primeiro mandar o nosso código para cá né então vamos copiar aqui a RL dele eu vou
abrir aqui o terminal vou dar um Git init primeiro então Git init Git add pon Git commit - M ã Fit addd S3 static site eh creation E aí Git remote addd Origin E então Git push Origin M beleza nosso código já tá aqui no nosso repositório do github então só dar o Reload agora a gente vai fazer a configuração das nossas credenciais da WS Então a gente vai vir aqui em settings a gente vai vir em Secrets and variables e aqui Actions tá que são as as Secrets das nossas actions Então a gente vai
criar um uma nova Secret né pro nosso repositório então aqui New Secret e aqui a gente vai botar aws exess Key ID E aí aqui eu vou colocar o meu aws exess Key ID como é que eu pego isso a gente pega isso aqui no nosso serviço e Aim da WS né a gente faz a criação de um novo usuário né que eu tenho quatro usuários um que eu uso aqui ó pro meu github Actions S3 que eu já tenho um repositório que faz isso um que eu uso para minha ali outro que eu uso
pro pro meu serviço de de serviço de e-mail enfim outro que eu tinha criado aqui de teste então a gente cria aqui a gente vai fazer a criação da nossa credencial enfim Quando a gente tiver essa nossa credencial a gente vai colocar ela aqui então eu vou cortar aqui essa parte do vídeo não vou expor aqui minhas credenciais vou configurar aqui com a WS access Key ID criado eu vou criar uma outra Secret que vai ser o meu Secret né vai ser minha WS e Secret exess Key a outra é o id e essa é
a Secret de fato Então vou cortar de novo vou colocar ela aqui e vou cortar E além disso a gente vai ter que configurar mais uma Secret aqui no nosso repositório que vai ser o nosso github token Então esse github token eu tô usando aqui na etapa de adicionar um comentário na nossa issue ó Então se a gente vê aqui nessa última etapa quando eu finalizo tudo e eu vou adicionar o comentário de que o Bucket foi criado eu tô usando o github token para conseguir adicionar esse comentário né através da minha conta aqui do
github Então a gente tem que configurar isso no nosso repositório também então vou vir aqui vou adicionar um github token e como é que eu vou pegar esse github token aqui n settings do meu perfil do github vai ter uma uma opção developer settings a gente vai clicar nessa opção developer settings E aí dentro dela vai ter essa opção aqui ó personal access token né são os tokens para dar acesso à nossa conta ao nosso perfil e eu vou vir aqui em tokens Classic então Os tokens Clássicos e vou gerar um novo token generate New
token aí eu vou dar um nome por exemplo infra automation que eu já tinha um criado aqui então infra automation vou colocar o tempo de inspiração aqui eu vou colocar só 7 dias porque eu vou excluir ele depois mas aqui vocês podem colocar o tempo que vocês quiserem tipo para nunca expirar para esperar daqui a 90 dias para ter mais segurança né enfim aqui vocês selecionam o que fica melhor no cenário de vocês vou colocar sete dias porque depois eu vou excluir ele e aqui o que que a gente vai dar acesso a esse token
né esse token vai dar acesso ao qu dentro da minha conta do github e aqui eu só vou colocar que ele tem acesso aos meus repositórios então vou colocar aqui repo né ele vai dar Acesso aqui todas as coisas do meus repositórios e é isso de resto aqui deixa eu dar uma olhada workflow não delete Packet não administração de organização não Public ke também não Hook também não dis notifications user também não discussions Ah não eu acho também logs enterprise Project não com Pilot também não é isso acho que é só que repost que a
gente tem que dar acesso que vai ser só para comentar lá na is mesmo não precisa fazer mais nada então acho que é só os repost e gerar o token então com o token gerado vou copiar ele vou colar aqui vou adicionar a Secret E aí vamos fazer a criação aqui a nossa primeira iso para fazer a criação do nosso site estático então do nosso Bucket do TR e aqui eu vou dar o nome de Landing page Keeper submit New issue ele vai trigar já aqui a execução da nossa Action então a gente tá vendo
aqui Land page Keeper vamos esperar ele rodar aqui todas as etapas então ele vai rodar a etapa de setup do cai da WS ele vai rodar o terraform vai extrair o nome do Bucket da isu né através do título enfim vai rodar Todas aquelas etapas que a gente tinha visto ali no código anteriormente né no nosso workflow então ele tá executando aqui o terraform aqui as configurações iniciais já deu certo agora ele tá criando o Bucket ó creating vamos esperar aqui beleza Bucket criado deu certo aqui na etapa do terraform deu certo na etapa de
adicionar o comentário e finalizou aqui a execução da nossa pipeline com sucesso então se a gente vier aqui na nossa ISO a gente vai ver um comentário ó o Bucket do S3 foi criado com sucesso com o Como se eu tivesse comentado né porque eu coloquei ali no github o token do da da minha conta né do acesso à minha conta se a gente voltar lá pra aws e entrar aqui no S3 a gente já vai ver esse nosso S3 criado Então vou vir aqui vou procurar por static site eu já tinha criado alguns Antes
aqui de teste ó e a gente vai ver aqui ó static site Landing page Keeper ó tá aqui o Bucket do S3 que representa o nosso site stack se a gente ver aqui nas propriedades dele ó ele já tem aqui uma url de acesso uma url pública Então tá tudo certo tá funcionando aqui o nosso código aí galera uma coisa legal que a gente pode fazer aqui é configurar diferentes templates de ISO no nosso repositório para que de acordo com a ISO o tipo da ISO que a pessoa abrir eu rodar uma criação de infraestrutura
diferente então por exemplo aqui eu tô sem template então toda vez que eu crio uma nova ISO e coloco aqui algum título ela já vai rodar esse nosso código aqui que cria um Bucket do S3 mas se eu quisesse colocar aqui concentrar nesse repositório todas as criações das minhas infraestruturas ou todas as configurações das minhas infraestruturas eu poderia configurar diferentes templates de ISO E aí quando os desenvolvedores da minha equipe ou os desenvolvedores da minha empresa viessem aqui no meu repositório e clicasse em new isue e aparecer os diferentes templates que eu tenho aqui configurado
e aí de acordo com o que o meu desenvolvedor quer ele ia escolher o template eí ia rodar um código terraform diferente por exemplo um para criar uma nova máquina virtual no ec2 fazendo a configuração da subnet vinculando IP estático domínio enfim outro para subir contêiners no ecs enfim o que a gente precisasse fazer aqui de infraestrutura e eu ia diferenciar qual arquivo terraforma eu quero executar de acordo com a ISO que foi criada e aqui no meu workflow do github eu consigo identificar né eu consigo identificar por exemplo através do título ou através do
corpo da isu né a gente consegue pegar aqui dentro da da Action a gente consegue extrair o que que tá dentro do corpo da isu pegar essas informações então poderia usar isso como um ponto de decisão para saber qual dos arquivos terraform que eu tenho aqui no meu repositório eu quero executar então o que que a pessoa tá querendo criar E aí dependendo do que que a pessoa tá querendo criar também ela vai precisar passar parâmetros diferentes por exemplo aqui a gente precisou passar só o Bucket name e a gente fez isso através do título
da is mas por exemplo pro ec2 Talvez a pessoa ia precisar passar Qual é o domínio que ela quer utilizar que tá lá configurado já no meu H 53 aws e eu poderia passar isso através do Body dessa is enfim tem uma série de possibilidades aqui que a gente pode explorar e a prática de infrastructure S code é muito poderosa pra gente automatizar ainda mais né os processos dentro da nossa empresa então é muito interessante a gente explorar essas possibilidades ver as dores e o problema que a gente tem dend nossa equipe dentro da nossa
empresa e pensar numa forma legal aqui de automatizar isso e tirar essa responsabilidade dos nossos desenvolvedores e automatizar todo esse processo e a responsabilidade por exemplo de dar suporte de dar manutenção a esse repositório enfim criar os arquivos terraform pode ficar com uma equipe de devops então devops fica responsável aqui para fazer toda a configuração fazer a criação dessas pipelines enfim que aí eles têm mais experiência e mais conhecimento sobre isso né mas é algo muito poderoso que eu acho que a gente a gente deve começar a explorar cada vez mais nos nossos projetos para
resolver essas dores e resolver esses problemas bom galera e se você quer aprender mais sobre como utilizar o github Actions para criar suas pipelines de c cd Eu recomendo que você Assista esse vídeo que eu fiz aqui no canal explicando o passo a passo para você criar suas pipelines usando github Actions esse vídeo vai ficando por aqui e se você gostou desse vídeo Não esqueça de deixar seu like se inscrever aqui no canal porque isso ajuda demais o canal e faz com que esse conteúdo alcance outro outras pessoas eu gostaria também de aproveitar esse momento
para agradecer todos os membros aqui do canal por todo o carinho e todo o suporte que vocês dão aqui pro Canal e um agradecimento especial a todos os membros seniors Vocês são muito especiais e moram no meu coração é isso galera e até o próximo vídeo
Related Videos
Aprenda Domínios, DNS e HTTP: Tutorial Completo na AWS com Route 53, ACM, CloudFront
35:33
Aprenda Domínios, DNS e HTTP: Tutorial Com...
Fernanda Kipper | Dev
25,714 views
Criando aplicação Serverless com AWS Lambda - Tutorial COMPLETO
37:03
Criando aplicação Serverless com AWS Lambd...
Fernanda Kipper | Dev
28,210 views
Terraform em 10 Minutos // Dicionário do Programador
10:54
Terraform em 10 Minutos // Dicionário do P...
Código Fonte TV
49,320 views
CRIANDO MICROSERVIÇO com SPRING usando Modo Gratuito da Oracle Cloud
39:13
CRIANDO MICROSERVIÇO com SPRING usando Mod...
Fernanda Kipper | Dev
10,573 views
Learn Terraform with Google Cloud Platform – Infrastructure as Code Course
52:11
Learn Terraform with Google Cloud Platform...
freeCodeCamp.org
76,154 views
RESOLVENDO DESAFIO BACKEND PLENO com AWS LAMBDA + SQS + S3 | PARTE 2
44:30
RESOLVENDO DESAFIO BACKEND PLENO com AWS L...
Fernanda Kipper | Dev
17,694 views
COMO CRIAR SEUS READMEs? GUIA DO README COMPLETO
25:44
COMO CRIAR SEUS READMEs? GUIA DO README CO...
Fernanda Kipper | Dev
34,295 views
Criando BACKEND COMPLETO do ZERO com JAVA SPRING + POSTGRES + AWS
2:10:39
Criando BACKEND COMPLETO do ZERO com JAVA ...
Fernanda Kipper | Dev
77,745 views
TUTORIAL COMPLETO DE CLOUD em 1 HORA | usando modo GRATUITO da ORACLE CLOUD
1:24:22
TUTORIAL COMPLETO DE CLOUD em 1 HORA | usa...
Fernanda Kipper | Dev
18,259 views
Terraform para iniciantes: Aprenda a provisionar recursos na AWS
2:31:47
Terraform para iniciantes: Aprenda a provi...
Cleber Gasparoto
2,863 views
Complete Terraform Course - From BEGINNER to PRO! (Learn Infrastructure as Code)
2:38:04
Complete Terraform Course - From BEGINNER ...
DevOps Directive
927,725 views
RESOLVENDO DESAFIO DE ALGORITMOS DO GOOGLE
28:09
RESOLVENDO DESAFIO DE ALGORITMOS DO GOOGLE
Fernanda Kipper | Dev
34,421 views
Primeiros passos com Terraform no Azure
1:34:36
Primeiros passos com Terraform no Azure
Raphael Andrade
4,886 views
Computação em nuvem para iniciantes na AWS
43:55
Computação em nuvem para iniciantes na AWS
Cod3r Cursos
6,130 views
APRENDA DOCKER DO ZERO | TUTORIAL COMPLETO COM DEPLOY
44:15
APRENDA DOCKER DO ZERO | TUTORIAL COMPLETO...
Fernanda Kipper | Dev
179,261 views
API REST com NESTJS do ZERO a AWS com TERRAFORM e Github Actions
1:28:37
API REST com NESTJS do ZERO a AWS com TERR...
Petrus de Melo DEV
2,085 views
Resolvendo DESAFIO de VAGA BACKEND com Java Spring + Arquitetura Limpa
54:32
Resolvendo DESAFIO de VAGA BACKEND com Jav...
Fernanda Kipper | Dev
96,534 views
Curso de Git e Github COMPLETO 2024 [Iniciantes] + Desafios + Muita Prática
49:59
Curso de Git e Github COMPLETO 2024 [Inici...
Dev Aprender | Jhonatan de Souza
336,407 views
Infra como código (IaC) com Terraform: O que um dev precisa saber
33:36
Infra como código (IaC) com Terraform: O q...
Full Cycle
10,519 views
Terraform Basics: Modules
15:23
Terraform Basics: Modules
Ned in the Cloud
29,853 views
Copyright © 2025. Made with ♥ in London by YTScribe.com