Olá pessoal, tudo bem? Bem-vindos de volta à nossa jornada cloud. Bom, vamos falar agora sobre uma coisa muito interessante, uma feature muito interessante na AWS, não é verdade? Nós já viemos falando dela há algum tempo, tá? Em algumas aulas aí atrás, em alguns produtos que a gente criou aqui, a gente até já fez uso desse cara em algum momento, mas a gente não parou de fato para olhar ele e o que eu ganho com ele. Bom, vamos dizer que você tenha uma conta AWS para desenvolvimento, para homologação, para produção. E você tem que garantir quemas exatas configurações em homologação, tirando o nome, ele teria que ter as mesmas exatas configurações em produção. A Lambda, ela teria que ter as mesmas exatas configurações em DEV, em HOMOL e em PROD. Assim como as minhas máquinas EC2, que teriam basicamente configurações similares, salvo as configurações de família. Eu poderia ter famílias reduzidas em desenvolvimento, outras famílias em homologação, outra família muito maior em produção. Ou até mesmo o meu ECS, que eu faço ali uso de ECS com o Fargate, e eu quero ter duas tasks rodando em desenvolvimento, duas tasks rodando em homologação, mas em produção eu tenho um volume muito alto de clientes acessando essa aplicação que eu expus. Eu quero que em homoprodução ele tenha cinco tasks rodando e tenha uma escalabilidade para mais cinco, por exemplo, como que eu garanto que esses ambientes seriam iguais? Como eu garanto que, dada apenas a mudança dos parâmetros, eu poderia ter a mesma receita para seguir em homologação e em produção a partir daquilo que eu já construí em desenvolvimento. Estamos falando do CloudFormation. Ele é a maneira de criar itens na AWS, de distribuir itens na AWS, de fazer itens chegarem, inclusive, para que ele possa fazer suas execuções na AWS, chegarem, inclusive, para que ele possa fazer suas execuções na AWS, a partir de receitas que a gente literalmente cria. Vou falar um pouco sobre isso, uma similaridade. Mas quem já trabalhou ali com Jenkins, que tem uma esteira de distribuição, em algum momento na cloud pública ele pode ter trabalhado com o Puppet, que é uma forma de você criar uma receita e falar, olha, essa aqui é a receita para a Dev, essa é a receita de homologação, essa é a Vaprode, mudando apenas os parâmetros, os itens em que eu me referi nos mesmos. Aqui é uma forma que segue o conceito, ele é mais fácil ele é muito mais simples ele é muito mais gerenciável ea melhor parte eu não pago nada na ws para usar o código não pago nada o cloud formation ele é gratuito eu só pago pelos itens que ele provisiona então se eu pedir ali no cloud formation criar uma receita para criar máquinas EC2, eu vou pagar apenas pelas máquinas EC2. Se eu for criar um cluster ECS com as testes rodando, eu vou pagar apenas pelas testes. Eu nunca vou pagar pelo CloudFormation, a rodada dele. É uma garantia que a AWS te dá de distribuição e harmonização dos seus ambientes, ou seja, de construção de receita. Primeira coisa que a gente tem que entender, como que eu crio um CloudFormation? Como que eu crio um item lá? CloudFormation No console E você já vai cair direto Nas suas pilhas Ou stacks Que você vai precisar criar Um recurso interessante Tudo que você cria pelo CloudFormation Você também deleta pelo CloudFormation Então vamos dizer Que na minha receita Eu tenho uma receita do CloudFormation, criou um cluster, criou as tasks, criou a imagem e ele criou vários itens em cadeia, porque eu posso, o CloudFormation me permite isso. É usual? Nem sempre, vai depender de caso a caso, tá? O ideal é que você tenha pilhas específicas para itens específicos dentro do seu ecossistema. Nunca uma pilha geral. Eu posso, o CloudFormation não vai brigar comigo se eu fizer um monte de coisa numa pilha só, em um modelo, num template só. Ele não vai brigar comigo. Só que se eu precisar deletar um recurso disso, fica muito mais difícil. Se eu começar a apartar, criar pilhas para itens, para cada item da minha arquitetura, se eu precisar remover, eu venho aqui no CloudFormation, removo a stack e automaticamente ele remove tudo que tem dela. Ele é gerenciador disso para mim. Então, se eu deletar uma stack, eu não estou deletando apenas a stack, eu estou deletando a stack e tudo que ela provisionou. Se eu criar uma stack, o que tiver na receita, ela vai criar para mim. E Se eu criar uma stack que tiver na receita Ela vai criar para mim E se eu a deletar Se eu deletar a pilha Tudo que tiver lá dentro Ele vai deletar para mim também Então se dentro de uma pilha Eu criar um S3, uma Lambda, um SQS, um SNS Se eu deletar a pilha Ele vai deletar o S3, a Lambda O Cluster, o SNS, o SQS Tudo que tiver lá dentro. Entendeu? Então, é importante você saber que a AWS, nesse ponto, ela está confiando em você. Então, se você deletar, ela vai fazer o que o CloudFormation tem que fazer, que é deletar tudo. Se você criar, ela vai fazer o que o CloudFormation tem que fazer, que é criar tudo que tiver na receita. Tá bom? O CloudFormation tem tá bom? transformation, ele tem várias formas que a gente pode criar, por exemplo vou começar aqui já criando uma pilha tá bom? eu posso usar um modelo existente ou seja eu coloco aqui no meu S3 e jogo aqui pra dentro por exemplo, um modelo existente, eu já tenho isso lá, eu posso fazer reuso posso usar um modelo de exemplo que a AWS já tem pra mim, por exemplo, um modelo existente, eu já tenho isso lá, eu posso fazer reuso. Posso usar um modelo de exemplo, que a AWS já tem para mim. Por exemplo, filha LAMP, que é Linux, Apache, MySQL, né? Só clicar aqui, ele já vai ter aqui, ó, um template, eu posso só ir lá fora e criar um LAMP, uma stack LAMP. Ruby on Rails stack. Então eu tenho alguns exemplos já prontos para a AWS. MultiAZ, olha um LAMP MultiAZ aqui ó, tá vendo? Já jogo aqui, tá? Então ó, tá vendo? WordPress blog, ah eu quero um WordPress blog, olha, já tem uma receita prontinha pra mim, já vai me subir o WordPress, já vai me subir o MySQL, vai me trazer tudo, tá vendo? Que tem aqui do Composer dele, já vai trazer tudo aqui pra mim, eu não preciso pensar muito, posso criar a partir do Composer, posso ir lá no Composer disso e começar a criar, tá vendo? e começar a criar, trazendo coisas da AWS aqui dentro, eu posso buscar e falar eu quero um bucket S3, e esse bucket vai ter uma fila, sei lá, vou jogar aqui uma fila, se eu entrar aqui dentro, eu tenho várias coisinhas que eu posso colocar, posso ir salvando, lógica UID, tem várias coisas que eu posso usar no próprio Composer. E vou fazendo uns arranjos aqui, pegando detalhes, posso agrupar, tá vendo? Então, o próprio Composer é muito visual, eu não preciso pensar muito para trazer alguma coisa do item aqui tá bom nem posso só vir vindo dessa forma também tem vários itens aqui só você buscar aqui dentro tá bom somente você buscar aqui dentro o item que você quer, abro o pano do anão, vou deletar esse item aqui, e eu quero, quero uma paygating, quero uma lambda, vamos ver se eu tenho, tem, tem algumas coisas de lambda aqui, tá vendo, lambda function, quero uma lambda function aqui, um API-Gate, um Lambda function, quero um permission, posso agrupar, então é muito legal a possibilidade, eu posso fazer, e aqui ele vai sair, deixa eu aí eu deixo não é tirar os grupos de permissão vamos ver aqui eu poderia só com esse item eu poderia já criado um template a partir disso tá bom e fazer o deploy eu particularmente não gosto muito desse modelo ele é muito bom mas eu acho que hoje a gente tem os recursos tão inteligentes quanto tá bom? pra gente usar então não vou usar aqui o composer tá bom? pra criar aqui a minha pilha não vou usar o composer, tá bom? eu não vou usar ele vou fazer o upload vou usar aqui um modelo existente ele vou fazer o upload, vou usar aqui um modelo existente, eu vou fazer o upload do meu próprio arquivo, ah uma feature legal, eu posso estar com isso lá no meu git, tá bom? eu posso, olha que bacana eu posso sincronizar essa pilha com git e cada vez que eu fizer um upload de alguma coisa no git fizer um commit, ele sincronizar e já atualizar a pilha para mim. Olha que legal como fica. Então, eu coloco isso lá no meu GitHub, por exemplo, ou aqui dentro no CodeCommit. Eu posso colocar isso lá no meu CodeCommit na AWS, que é um Gitzinho aqui dentro dos repositórios. O CodeCommit, está vendo? Eu poderia trazer aqui pra dentro do code commit O meu repositório onde eu vou ficar fazendo o meu código E distribuir eventos de branch aqui dentro Que vão fazer start na minha pipe Tá entendendo? Poderia trazer dessa forma, tá vendo? Criando parâmetros Então, ó, tem muita coisa que eu poderia Tá brincando aí dentro, tá bom? Para estar brincando com as minhas pilhas. Neste momento, eu consegui o modelo que as empresas mais seguem. Esse do Git A1. Mas não nativamente, tá? Geralmente, as empresas costumam usar recursos de Lambda, tá? Então, eu posso... Eu jogo isso para um cold commit, a partir do cold commit eu tenho um event-bridge, por exemplo, que pega esse item que veio, ele faz get de tudo esse conteúdo e aí ele via SDK, starta determinada test aqui dentro do CloudFormation. Bom, então assim, são N sabores para a gente usar. Não precisa ser tão manual. Você pode usar por AWS, você pode fazer um Shell, você pode usar um GitHub Actions, por exemplo, que estarta algumas ações ali, claro, com determinadas autenticações na sua conta. Pega o que você tem ali dentro do seu item tá o seu repositório e joga aqui pra dentro já dando comandos de aws é lá e executando pilhas a partir de descompilados em fontes externas bacana tá mas eu posso aqui ó fazer o cloud de um modelo hoje ele usa jason ou yaml tá então eu particularmente gosto do modelo yaml eu sinto mais confortável em escrever o cloud formation no yaml eu acho que ele fica mais visual fica mais fácil de visualizar o O JSON ele tem muita questão ali de abre e fecha, abre e fecha, abre e fecha, né? E eu acabo que as pessoas podem se perder. O YAML, ele como é uma coisa que ele tem determinada sintaxe a ser seguida, ele permite menos erros, tá? A verdade é essa. Ele vai garantir que cada item da stack tem que estar embaixo do seu resource específico, tem que estar embaixo do seu resource específico, tem que estar embaixo do que realmente criar. Olha, eu gosto de um terceiro cara, eu acho que assim, nem você não, são tantas switches na AWS, são mais de 200 switches na AWS, e a maioria disso eu posso criar dentro do meu CloudFormation, né? Mas eu não tenho que saber pensar nisso. Hoje, na verdade, eu tenho que saber o que eu quero. Eu preciso de um S3. Eu preciso de um bucket. Eu preciso saber o que eu quero e como eu quero configurar. Hoje tem um recurso muito legal que o pessoal vem usando bastante e eu trouxe aqui para vocês. Achei bacana que a gente pudesse falar disso, que é o Chatpt você pode usar o chat cpt para criar os recursos são por exemplo criar um bucket s3 ó Prontinho, olha só, ele te dá toda a descrição que você precisa aqui dentro, tá vendo? Olha que legal, olha que bacana isso aqui, tá vendo? Que legal isso aqui, então, vou copiar esse código, tá bom? Vou copiar esse código, tá bom? Eu vou colar esse código aqui dentro de um Visual Studio aqui, ó. Vamos lá? Vou jogar aqui dentro do meu Visual Studio. Vou salvar. Vou salvar ele aqui com o nome de S3.yaml. Vou colocar aqui, ó. S3.yaml Vou colocar aqui S3.yaml Vou salvar aqui O mesmo S3.yaml Salvo Bom, vamos voltar aqui pra nossa tela Pra o nosso AWS Vamos voltar lá Chat EPT aqui pra nossa tela, pra o nosso AWS, vamos voltar lá, chat GPT permanece aqui com a gente, né, que a gente fez aqui dentro, ele permanece aqui pra mim, então, voltando para o CloudFormation, o cloud formation vou escolher aqui o arquivo s3 e emu próximo nome da pilha teste cloud formation jornada atual de jc sem parâmetros vamos ver acho que eu não deixei nenhum parâmetro ele não gerou nenhum parâmetro aqui pra gente né? não, não gerou nenhum parâmetro aqui ele tá pegando parâmetro da própria stack tá vendo? tá garantindo aqui, eu poderia setar parâmetros aqui também. Poderia com que esses parâmetros estivessem, inclusive, na própria receita. Não vou setar parâmetro. Próximo. Vamos ver. Sem etiqueta, permissões. Isso aqui é opcional. Opções de falha, reverter. Tá vendo? Então, se ele falhar no meio do caminho, Isso aqui é opcional. Opções de falha, reverter. Está vendo? Então, se ele falhar no meio do caminho, ah, eu estou criando uma e uma e uma coisa aqui. Pô, estou criando dez itens. Falhou um item, reverte todos. Não deixa o item criado. Usar política de exclusão, o resto aqui é opcional. Próximo aqui é para visualizar o modelo também aqui ó ele guardou o modelo é pra mim nome da pilha para a inclusão tem etiquetas não tem charme vamos enviar criou olha o que ele faz aqui a criei em progrés eu consigo dentro dessa pilha seu som está aqui pra pilhas eu vou ver o que ele tá fazendo aqui, qual que é o status? Ele está criando eu consigo ver os eventos, olha aqui, configuração configuração dos itens, pode notar, MyS3Bucket é um item que eu coloquei no recense, olha aqui, MyS3Bucket, isso aqui pode ser o que eu achar, é pra ele fazer sentido semântico, pra mim, tá? Então, ó, claro, ele tem várias coisas. Se eu quiser mudar a política, se eu quiser colocar uma pólice, eu posso colocar. Se eu estiver criando para o CloudFront, eu já posso ir lá e falar, cria uma receita para CloudFront 2 e 3 com uma pólice para público, isso. E ele vai me dar inteirinha a receita, eu só preciso guardar isso. Vamos imaginar que eu poderia ter colocado tudo isso lá dentro, né? Criou, eu poderia ter colocado tudo isso lá dentro de um Git e já estartado isso de alguma forma. Então, criou. Vamos ver se ele criou? Vamos lá para o nosso S3? vamos lá pro nosso S3 chegando aqui no S3 olha isso gente ele criou um bucket pra guardar o meu template de CloudFormation e ele criou o meu bucket aqui ó test.sumformation.jc bucket olha isso só tá entendendo? eu criei um bucket inteiro, tudo pelo meu CloudFormation. Vamos fazer com um SQS? Vamos ver, eu não tenho nada mais de SQS aqui. Não tenho nada mais de SQS. Pode ver, não tenho nenhuma fila criada. Vou falar com o chat GPT. Então, eu col coloquei aqui crio um modelo CloudFormation em emu para bucket s3 vou colocar aqui para a criação de uma fila sqs olha isso aí olha isso aí olha que legal já está dando isso aqui e uma coisa interessante olha os outputs ele dá alguns outputs se eu colocar aqui a saída bucket name no caso do meu template aqui do cloud formation do s3 ele deu aqui uma saída apenas do bucket name então tudo que eu criar ali se eu precisar saber de uma URL se eu precisar saber de vários itens eu vou só jogando ali dentro e aí eu acho legal você usar as inteligências generativas pra isso usa o GPT, usa Copilot se ele te auxiliar isso, tá? use a generativa que ele vai te ajudar muito a gerar código, a gerar coisas pra você, então então vamos copiar vou copiar o código vamos voltar aqui para o nosso visual estúdio code vou criar de novo só jogar aqui dentro e vou salvar esse carinha aqui como sqs.yaml. Estou salvando, pessoal. Sqs.yaml. Vamos só ver o que eu estou fazendo aqui. Tem um template, tem uma descrição, tem um resource, minha fila. Isso aqui poderia ser o que eu quisesse, o nome disso aqui eu defino. Propriedade, retenção de período, save, olha ele já vai criar aqui ó, uma DLQ, tá vendo? Ele vai criar uma DLQ pra mim, ou seja, ele vai tentar cinco vezes ler nessa fila, não conseguiu? Já vai cair pra DLQ, tá entendendo? Então, ó, ele vai criar aqui uma fila e uma DLQ pra mim. Então, gente, isso aqui é muito legal, porque imagina que tua aplicação, ele pode tá lendo de uma fila, deu uma exceção, deu uma exceção cinco vezes, ele tentou ler da SQS, não deu. Ele vai ficar eternamente tentando, não. Choga pra fila mortas. Imagina que eu posso dessa fila morta e gerando incidentes e gerando formas de acompanhamento. Então, isso é muito legal. Vamos aqui para o nosso QS. Vamos criar aqui o CloudFormation. Vamos para o nosso CloudFormation. Então, eu vou voltar aqui para o nosso item do CloudFormation. Vou criar mais uma pilha. Vou criar a pilha aqui. Criar com recursos padrão. Faz fazer o upload, vou fazer o upload aqui do SQS, tá bom? Mesma coisinha, teste, SQS, Cformation, não vou pôr parâmetro, porque não tive ali Mas eu poderia ter parâmetro Imagina que esses parâmetros poderiam estar em pastas Ali de environment, tá bom? Deve, proje, eu poderia Dentro do modelo CloudFormation Eu poderia criar formas de trazer isso do Git Já manter isso um pouco mais organizado tá bom não vou fazer nada aqui é requisito para a venda já está criando olha olha os meus eventos acontecendo aqui olha os recursos ele tá criando aqui ó SQS e minha DLQI Dead Letter Queue ainda não tive a saída ele tá criando tá vendo e ele é muito rápido pessoal ele é muito legal ele demora mais para recursos que usam muito da rede e para recursos que precisam ser rampados como um RDS ou um Elastic Cache como um EC2 esses itens como ele depende de health check, ele depende de saber se isso aí está ativo ele demora para um pouquinho os minutos para rampar então as vezes o Cloud Permission demora um pouco mais nisso mas geralmente itens que são de recurso como bucket, SQS muito rápido ó não tinha nada vamos ver agora olha aí olha isso gente teste SQS CloudFormation Kiwi e olha só como ele já fez as coisas pra mim. Fila de mensagens mortas, já está apontando pra outra fila. Máximo de recebimento 5, poderia ter alterado isso, poderia colocar mais. Aqui, se eu quiser saber e falar, poxa, eu quero mais itens, quais são as opções de CloudFormation do SQS? Eu posso só na própria internet, tá bom? Aqui nas docs da AWS, eu vejo todas as possibilidades, olha, eu posso colocar um KMS data, colocar um KMS meu, jogar aqui, KMS Master KID, eu poderia dar esse comando para o chat apt, falando para ele assim, gera com KMS, KID e com esse ARN aqui, ou coloque esse ARN como parâmetro, para a gente poder usar. Olha só, se você quiser olhar, na documentação própria da AWS, fala tudo o que você pode colocar nas features de CloudFormation daquele item que você pode colocar nas features de CloudFormation daquele item que você está criando. Então, é muito bacana. Então, está aqui. E agora, vamos dar uma olhadinha se eu deletar ele também. Vamos deletar esse bucket. Vamos aqui na nossa pilha. Vamos pegar aqui esse carinha aqui, o nosso bucket. Vamos pegar aqui, ó. Esse carinha aqui é o nosso bucket. Eu vou excluir. Eu vou excluir agora, ó. Vamos lá. Olha só. Ele está deletando em progresso. Ó, delete complete. Vamos ver se ele tirou o bucket. Olha ali. Tirou. Matou o bucket. Então, eu crio pelo CloudFormation, eu deleto pelo CloudFormation. Tudo que eu altero via CloudFormation se resulta aqui. E se eu fizer uma alteração na pilha também, se eu vier aqui na pilha, entendeu? Nessa pilha, e eu olhar aqui os recursos, tá vendo? Eu olhar os conjuntos, eu olhar o modelo. Se eu copiar, se eu visualizar aqui no Composer, se eu alterar isso aqui dentro, se eu fizer uma alteração nisso a ponto de querer, eu poderia atualizar, subir ali o mesmo modelo, alterando o número de recebimentos, ele automaticamente atualizaria também a fila para mim. Então, gente, ele é muito legal, ele é muito bacana. Vou deletar esse aqui também para a gente ver. Vamos lá. Estamos aqui com o nosso SQS. Nossos SQS estão prontinhos para a gente ver. Vamos lá. Estamos aqui com o nosso SQS. Nossos SQS estão prontinhos para a gente. Então, eu vou jogar para cá. Vou deletar ele. Vou excluir e vou falar. Pode excluir aí o SQS também. Delete in progress. Estou filtrando tudo por ativo. Delete in progress já já ele termina essa deleção posso olhar aqui dentro vamos ver aqui a saída tudo que ele tinha feito o name é interessante demais porque é uma stack muito bacana você consegue ver os eventos que eles estão fazendo. E se você faz isso de forma apartada, se você faz isso de forma que cada pilha está lidando com determinados recursos, ligar isso torna-se fácil e desligar isso torna-se fácil também então é uma grande recurso dentro da AWS tá bom para gente tá usando tanto para criação quanto para deleção de itens só pode ver como ele demorou um pouquinho para fazer um pouco mais. Ele deletou primeiro aqui dentro a minha fila. Depois ele vai deletar aqui o meu segundo recurso. Quanto mais recursos eu tiver, mais demora. Vamos ver aqui. Ah, mas eu deletei. Eu não queria ter deletado. Eu queria ver. Se eu quiser olhar apenas os excluídos, estão aqui. Está vendo? Tudo que eu já cortei, eu consigo ver. E se eu criar nessa filha, nessa aqui, e colocar ação, eu poderia copiar o modelo aqui e criar um novo. Eu poderia falar, quero visualizar ela no Composer, você que quiser usar de forma mais visual. Ele já vai estar aqui, olha aí, está vendo? Simplesmente aquele arraste e cola que a gente já tinha visto, só que visualmente eu posso não entender tudo o que está acontecendo aqui dentro, ou ter mais dificuldade para ele se entender de mim, quando eu posso simplesmente com uma IA generativa aqui, ou com um chat GPT da vida, eu pedi para ele gerar isso para mim e eu fazer um uso bem legal de CloudFormation. Então, vou usar isso no dia a dia? Pessoal, eu recomendo. Acho que não é uma coisa tão opcional se você está lidando com muitos ambientes e você quer mais segurança. Então, eu recomendo muito que use o CloudFormation. Ele é nativo da AWS. Tem outras formas de se usar outros formadores de Cloud dentro da AWS? Sim. Vamos falar de um outro aqui. Nós não vamos objetivamente fazer uma pop nele, porque o objetivo está olhando muito mais para a AWS, muito mais para AWS, mas você pode usar aqui o Terraform. O Terraform, ele também é um item formador de cloud e ele tem toda a infraestrutura para trabalhar com o AWS. Eu posso fazer aqui usando um AWS Provider também eu posso usar vários resources, tá vendo? Eu posso por exemplo, como eu crio um AVPC? Com ele é bem mais clean, ele tem bem mais facilidade de recurso, ele é um modelinho mais fácil de gerenciar em alguns pontos, tá? Então dá pra usar Terraform. Qual é a vantagem de eu usar terraform? Se eu estiver usando Features que não são Da AWS nativas Eu tenho grandes chances De ter reuso Tá bom? Como assim? Se eu fizer tudo na AWS usando CloudFormation E uma hora a minha empresa fala Gente, o AWS não está mais legal para a gente, a gente vai mudar aqui para Oracle Cloud ou para Azure. Eu não consigo reaproveitar os meus templates do CloudFormation porque ele é exclusivo ali da AWS. Então, não tem esse reaproveitamento. Já se eu estiver usando Terraform, ele é Open Cloud. Então, não tem esse reaproveitamento. Já se eu estiver usando Terraform, ele é Open Cloud. Então, recursos que não são tão acoplados, eu posso fazer um grande reuso. Claro, gente, uma VPC, essa forma de nomenclatura, esse modelo é da AWS. Por isso que eu não tenho reuso. Mas se eu estiver criando itens do Kubernetes, por exemplo, eu já consigo fazer um reuso muito maior. Claro que eu vou ter que vencer algumas coisas do EKS ali no meio, que ele é um recurso disponibilizado ali na AWS, com algumas fronteiras da AWS, mas o reuso é uma outra forma aqui de olhar. Então, formadores, cloud formadores, é muito interessante você ter, tá bom? Porque vai te ajudar muito a você ir à frente, vai te ajudar muito você conseguir, e ele tem aqui também totalmente os seus itens, tá vendo? uma facilidade bem grande de entrar, tem os cursinhos aí na Udemy, tem outros cursinhos aí, aqui mesmo para Terraform, tá bom? que você pode estar fazendo aí, tá? são coisas bem interessantes também, então procura uma forma aí de você usar o CloudFormation usar a Terraform. Eu recomendo dentro da AWS, por questão de ser múltiplo, se você já está na AWS e você não tem aquele objetivo, você acha que a AWS tem uma evolução, a tendência dela é ficar cada vez mais barata, porque ela se renova muito nas máquinas, então ela vai cada vez mais custeando menos os seus itens. Então, eu posso usar o CloudFormation com toda segurança, tá bom, pessoal? É isso. Recomendo que usem, recomendo que estejam sempre com eles aí perto, sempre fazendo seus templates, sempre que possível. Então, use uma IA para te ajudar nesse momento, tá bom? Que vai te ajudar a sair do outro lado de forma muito mais rápida, tá? Então, você não precisa saber tudo, mas você precisa saber minimamente o que você precisa, quais os recursos de segurança você precisa para esse item. E ele tem vários templates prontos aqui para a gente, tá bom? É isso, pessoal. Pelo momento é isso. Agradeço vocês aí. Façam seus templates. Obrigado e boa sorte.