Iac Parte 4: Deploy de um bucket S3 usando Terraform

Hoje, seguindo nossa trilha de IaC, vamos continuar nosso case com o AWS S3, dessa vez o case mostrará de forma simples o deploy de um bucket no S3 da Amazon com Terraform.

Primeiramente, vamos entender o que seria o AWS S3, basicamente, é um recurso de armazenamento de objetos, que é extremamente seguro, durável e altamente escalável. O S3 é fácil de usar e podemos armazenar e recuperar qualquer quantidade de dados de qualquer lugar da internet.

Veja a documentação do S3 nesse link aqui.

  • Artigos relacionados:
  1. Artigo sobre a criação de um bucket no console do S3, acesse aqui.

2. Sugestão de leitura para o Terraform seria esse artigo onde mostro o deploy de um container usando o Terraform.

  • Case 🚀

Para esse case, você vai precisar:

Com o ambiente preparado, temos que criar nosso código em HCL.

Vamos abrir nosso VSCode, eu versiono tudo no git, e como o Terraform cria alguns arquivos que não é legal subir com “push”, eu ignoro tudo usando o arquivo “.gitignore”. Veja um exemplo abaixo:

Ah, outra coisa que eu não mencionei mas que é extremamente importante, faça tudo em inglês, seja o commit, os comentários do código, os nomes dos arquivos, assim você aprende Terraform e inglês juntos, saca?” 😜

Agora, você precisa codar esse trecho de código abaixo, criei um arquivo chamado main.tf, é este arquivo que o Terraform vai ler no momento da criação da infraestrutura.

Basicamente, estamos falando ao Terraform que vamos usar o AWS como provider, onde declaramos nossa região (us-east-1). Na segunda parte, declaramos nosso resource (aws_s3_bucket), demos um nome para esse bucket, adicionamos uma acl e uma tag, veja:

Feito isso, vamos executar o comando #terraform init :

Como podemos ver, ele inicializou os plugins do provider, e por último disse que podemos ir pro próximo comando, que é o plano da nossa infraestrutura, “o que ele tem para definir para você na AWS”, “olha eu vou criar esse recurso, com esse nome, nessa região”:

#terraform plan

Nota-se que, ele fará duas ações, veja acima, vai criar e destruir o recurso. Tudo que tiver um sinal de “+” é o que ele vai fazer e tudo que for sinal de “-” é o que ele já fez e que está destruindo.

Veja acima que ele já mostra o que será feito para a gente, e outras coisas ele mostrará somente depois de dar o comando#terraform apply :

Como você pode ver acima, ele vai destruir um bucket do nosso ambiente, isso era outro bucket que eu tinha criado de teste no S3, ou seja, ele está me dizendo, “olha, vimos que você tem esse recurso e ele será destruído”. Não é uma maravilha essa ferramenta, obrigado HashiCorp 🙏

Seguindo nosso case, temos que executar um apply para que de fato nosso bucket seja lançado, para isso vamos executar um # terraform apply :

Olha que bonito, ele executou o comando apply com êxito, criou nosso bucket e destruiu o outro que eu tinha criado anteriormente. “Topzera da balada”.

Vamos na console da AWS ver como ficou:

Isso foi um exemplo básico de demonstração do Terraform com o recurso de armazenamento da AWS, claro, existem “n” coisas a se fazer para melhorar esse case, permissões, segurança, integrações com outros recursos, uso de variáveis, mostrar um case real... Hoje foi o básico, comece por aqui.

Pode deixar que eu vou melhorar nos próximos artigos, trazendo outros players de cloud e novos recursos do Terraform. Fica ligado!

Para o próximo artigo, iremos ver como criar uma rede VPC usando o Terraform, enquanto isso, assista as aulas da semana https://www.iaasweek.com/

Obrigado pessoal pela leitura, por favor se tiverem alguma sugestão, correção, comentem, vamos aprender juntos. #VAIIII

Senior Linux Administrator at IBM

Senior Linux Administrator at IBM