Você conhece terraform?

Um preview do que é o Terraform

A proposta do Terraform é transformar sua infra em código (IaaC - Infrastructure as a Code) com objetivo de gerenciar todo ciclo de vida da infraestrutura através de uma sintaxe declarativa.
O próprio Terraform destaca suas características com foco na colaboração e compartilhamento de configurações, evolução e versionamento da infraestrutura e automação de provisionamento.

Blz, chega de bla bla bla...

Vamos direto ao ponto

Eu comecei a olhar pro Terraform quando comecei a sentir dificuldade em criar yamls complexos no gitlab para automatizar algumas coisas como sonar ou redis.
Percebi que o Terraform parece ter uma certa simplicidade e isso me deixou curioso. Então, comecei os estudos (e vale dizer que estou muito no início), mas resolvi compartilhar meus sentimentos quando a primeira experiencia.

O exemplo abaixo é algo bem simples e serve apenas para criar um bucket na AWS via Terraform, mas foi esse exemplo que me chamou a atenção.

Imaginando que você já criou um usuário para o terraform na AWS e deseja um script para criar um bucket, você teria apenas que (dentro do seu projeto):

Crie uma pasta /tf

- cd /tf
- terraform init

Crie um arquivo main.tf (github ... terraform-aws)

- terraform plan

(Faz um preview do que será aplicado pelo arquivo main.tf)

- terraform apply


SÓ ISSO!!!

- terraform destroy

Depois do apply no main.tf, será aplicado na sua infra e veja abaixo o que acontece.

Na AWS


Algumas considerações

- As variáveis "var.access" e "var.secret", serão solicitadas quando você fizer o apply, como elas são strings que você vai pegar da sua conta da AWS quando criar um usuário para o Terraform, então não faz sentido eu colocar a minha aqui rsrs
- Esse e outros scripts são encontrados (aos montes), na documentação do https://www.terraform.io em docs > providers > aws.
- Alguns recursos da AWS, por questões de segurança, levam um tempo para serem definitivamente removidos (como por exemplo os recursos do EC2), mas não se preocupe, se chegar ao status de "terminado", ele vai desaparecer uma hora ou outra.
- Para estudar (isso vale pra qualquer cloud), recomendo que criem um alerta de custo para evitar que você esqueça algo lá e acabe gerando custo (afinal, seu cartão de credito precisa ser vinculado a sua conta).

Enfim, é isso. Acho que isso é o bastante para você avaliar se é algo que lhe interessa :P