Introdução ao Terraform

Começando do início

Alexandre Ponte
Accenture Digital Product Dev
3 min readAug 5, 2021

--

O que é o Terraform?

O Terraform é uma ferramenta para construir, alterar e configurar uma infraestrutura. Isso pode ser feito tanto localmente quanto remoto, e hoje o Terraform trabalha com os principais Cloud Providers do mercado. Se você quiser conferir essa lista, é só clicar aqui.

Neste post, além de apresentar o Terraform, vamos fazer também um pequeno hands-on para você que está tendo o primeiro contato com a ferramenta. Para isso, vamos utilizar a AWS como Cloud Provider, que possui um nível gratuito (free tier) para até 12 meses de uso de alguns de seus recursos com limites pré-estabelecidos, mas o suficiente para o que vamos ensinar hoje. Então vamos?

Para nos comunicarmos com a AWS, vamos precisar de duas chaves: aws_access_key e aws_secret_key. Essas chaves são criadas por você durante a configuração de sua conta (link) e elas devem ser configuradas em seu computador utilizando o aws-cli.

Mãos à obra!

Crie um diretório para trabalhar e, dentro dele, crie os seguintes arquivos:

No arquivo main.tf , vamos incluir o nosso provider AWS.
Estamos declarando também onde nossa infraestrutura será provisionada:

Para saber mais sobre Regiões e zonas de disponibilidade, clique aqui.
E aqui tem um exemplo de como o provider é declarado:

Agora vamos falar um pouco sobre cada arquivo

No arquivo ec2.tf vamos declarar a nossa instância (instance_type). A t2.micro está dentro do free tier, e estamos citando o script.sh que vai instalar o nginx.

Aqui também citamos o security group, que vai se comportar como um firewall para a nossa instância, liberando apenas as portas necessárias.

Abaixo, o conteúdo do arquivo script.sh

O output.tf utilizamos para que no final da execução do nosso código nos seja apresentada alguma informação desejada.

No caso, aqui será uma url para acessarmos a instância via browser.

Por meio do security-group.tf, declaramos as portas abertas de entrada e saída. Também podemos limitar esses acessos via ip.

Estamos utilizando variável, e caso precise alterar o ip de acesso, alteramos em apenas um lugar.

As variáveis citadas acima serão declaras no arquivo vars.tf.
Não se esqueça de incluir o seu ip para poder acessar.

Sobre os comandos que vão ser executados

terraform fmt vai verificar a sintaxe do seu código de acordo com a versão do Terraform que você esta utilizando.

terraform init vai realizar diversas tarefas dentro do nosso diretório. Uma delas é baixar as informações necessárias para nos comunicarmos com a AWS. Ex:

terraform plan aqui criamos um plano de execução e podemos ver o que o terraform vai criar. No final do plano apresentado será exibida a seguinte informação:

terraform apply executamos o plano proposto no terraform apply. Digite yes quando a confirmação for solicitada.

Após a execução, receberemos o que foi proposto no arquivo output.tf.

Para testar, basta executar o comando:

Pronto! Agora vamos logar no console da AWS e verificar o que foi provisionado:

Nossa EC2

Nosso grupo de segurança

terraform destroy como o nome já diz, destruímos o que foi provisionado. O Terraform vai lhe informar o que será destruído e você precisa confirmar:

E é isso!
Se você quiser ver o código completo, o repositório está no Github. E se você tiver alguma dúvida ou comentário, é só aproveitar os campos abaixo. Para trabalhar com um time que está se aprimorando a cada dia, é só dar uma olhada aqui e se candidatar a uma de nossas vagas. Vamos aprender juntos!

--

--