Acesse o painel da sua conta

Não tem uma conta? Registrar

Entrar em contato

Visite também nosso site craftxp.com.br

  • img
  • img
  • img
  • img
  • img
  • img

Entre em contato

Infraestrutura como Código com Terraform: Automatizando sua Nuvem

Infraestrutura como Código com Terraform: Automatizando sua Nuvem

O Que é Infraestrutura como Código?

Infraestrutura como Código, ou IaC (do inglês Infrastructure as Code), é a prática de gerenciar servidores, bancos de dados, redes e outros recursos de infraestrutura por meio de arquivos de configuração declarativos, em vez de processos manuais. Em vez de acessar um painel web da AWS ou executar comandos manuais no console, você escreve código que descreve o estado desejado da sua infraestrutura — e uma ferramenta como o Terraform se encarrega de tornar esse estado realidade.

O Terraform, criado pela HashiCorp, é a ferramenta de IaC mais adotada do mercado. Diferente de soluções como AWS CloudFormation (que só funciona na AWS) ou Ansible/Puppet (que são focados em configuração de servidores), o Terraform é agnóstico de provedor — com ele, você gerencia AWS, Azure, Google Cloud, DigitalOcean e até serviços como Cloudflare e Datadog com a mesma sintaxe e workflow.

Conceitos Fundamentais

Providers e Resources

No Terraform, um provider é um plugin que permite interagir com uma API específica. Já os resources são os componentes que você gerencia — uma máquina virtual, um bucket S3, um banco de dados RDS, etc. Veja um exemplo:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region = "us-east-1"
}

resource "aws_s3_bucket" "meu_bucket" {
  bucket = "meu-bucket-tf-2026"
  tags = {
    Name        = "Meu Bucket"
    Ambiente    = "producao"
  }
}

Com esse código, um único comando terraform apply cria um bucket S3 na AWS com as tags especificadas. O Terraform calcula o plano de execução, mostra exatamente o que será criado e só então aplica as mudanças.

Estado (State)

O state file (terraform.tfstate) é o coração do Terraform. Ele mapeia os recursos do seu código para os recursos reais na nuvem. Sempre que você executa terraform apply, o Terraform compara o estado atual com o estado desejado e calcula as diferenças. Em times maiores, o estado é armazenado remotamente (no S3, Terraform Cloud ou Azure Storage) para permitir colaboração segura.

Workflow Prático

O ciclo de vida do Terraform segue três comandos principais:

# 1. Inicializar o diretório (baixa providers)
terraform init

# 2. Ver o que será alterado
terraform plan

# 3. Aplicar as mudanças
terraform apply

# 4. (Opcional) Destruir tudo
terraform destroy

O terraform plan é um dos recursos mais úteis — ele mostra um diff detalhado do que será criado, modificado ou destruído antes de qualquer alteração real. Isso elimina o medo de quebrar algo em produção.

Variáveis e Módulos

Para tornar a infraestrutura reutilizável, o Terraform oferece variáveis e módulos:

# variables.tf
variable "ambiente" {
  description = "Ambiente de deploy"
  type        = string
  default     = "dev"
}

variable "instancia_tipo" {
  type    = string
  default = "t3.micro"
}

# main.tf
resource "aws_instance" "servidor" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = var.instancia_tipo

  tags = {
    Name     = "Servidor-${var.ambiente}"
    Ambiente = var.ambiente
  }
}

Módulos permitem empacotar configurações reutilizáveis — como um módulo de VPC com subnets públicas e privadas, ou um módulo de cluster Kubernetes — que podem ser compartilhados entre projetos e equipes.

Casos de Uso Reais

  • Ambientes Multi-Cloud: Gerencie recursos na AWS e Azure simultaneamente com o mesmo código e workflow.
  • Infraestrutura Efêmera: Crie ambientes de staging sob demanda para cada Pull Request e destrua automaticamente após o merge.
  • GitOps: Armazene configurações Terraform no Git, use Pull Requests para revisar mudanças de infraestrutura e execute planos automaticamente via CI/CD.
  • Gerenciamento de Kubernetes: O provider hashicorp/kubernetes permite gerenciar namespaces, deployments e services do Kubernetes diretamente com Terraform.

Conclusão

O Terraform transformou a forma como times de infraestrutura trabalham, substituindo painéis manuais e scripts frágeis por código declarativo, versionado e revisável. Para quem está começando, o melhor caminho é criar uma conta gratuita na AWS, instalar o Terraform, e seguir o tutorial oficial de criação de uma instância EC2. Em poucas horas, você estará gerenciando infraestrutura real como código — e nunca mais vai querer voltar ao jeito manual.

Craft XP
Craft XP