Skip to content

infra GCP - #65

Merged
yaMimis merged 1 commit into
mainfrom
infra/gcp
Nov 10, 2026
Merged

yaMimis merged 1 commit into
mainfrom
infra/gcp

Conversation

@marcos-yudi

@marcos-yudi marcos-yudi commented Nov 10, 2026 •

Copy link
Copy Markdown
Collaborator

Infra: Terraform na Google Cloud (VM com Docker Compose)

Resumo

Publica o Auditor de Preço Justo numa VM da Google Cloud criada pelo Terraform. A VM roda o mesmo docker-compose.yml que usamos localmente. Nenhum código da aplicação muda: só a pasta infra/.

Atenção na revisão: esta versão substitui a infra/ atual (Terraform com provider Docker local). O versions.tf, o main.tf, o variables.tf, o outputs.tf e o README.md foram reescritos, e o .terraform.lock.hcl foi gerado de novo para o provider hashicorp/google.

O que o Terraform cria (5 recursos)

Recurso Para quê
Rede auditor-rede + sub-rede auditor-subrede Rede própria em São Paulo (southamerica-east1)
IP fixo auditor-ip Endereço do painel e da API
Firewall auditor-firewall Abre só 22, 8000 e 8501, e só para ips_liberados. O banco (5432) não fica exposto
VM auditor-vm (e2-medium, 2 vCPUs, 4 GB, Ubuntu 24.04) Roda o Docker Compose

O que a VM faz sozinha no primeiro boot (cloud-init.yaml)

Cria 2 GB de swap, instala o Docker, clona o repositório, grava o .env, faz o build da imagem, sobe o banco (o esquema de db/ roda sozinho), indexa as normas no pgvector e sobe a API e o painel. É o mesmo roteiro do iniciar.ps1.

O que vai à mão depois do apply

O .joblib e os CSVs de Euribor, Selic e taxa do BC ficam fora do Git. Vão num único scp, e o completar.sh põe o modelo no lugar, carrega as tabelas macro e reinicia a API. Os comandos saem prontos no terraform output.

Decisões

  • Conta: Free Trial da GCP (US$ 300 por 90 dias). Exige cartão, mas só cobra com upgrade manual, que ninguém deve fazer.
  • VM e2-medium: a e2-micro gratuita (1 GB) não aguenta o PyTorch.
  • Segredos: a chave do Gemini e a do grupo entram por $env:TF_VAR_..., nunca por arquivo. terraform.tfvars e *.tfstate já estão no .gitignore.
  • Demo principal: continua local, com o vídeo de backup. A nuvem é reforço de "infraestrutura como código" para a banca.

Como revisar sem custo

cd infra
copy terraform.tfvars.example terraform.tfvars   # projeto_id e ips_liberados
terraform init
terraform validate
terraform plan        # esperado: Plan: 5 to add, 0 to change, 0 to destroy

O passo a passo completo, do apply ao destroy, está em infra/README.md.

Checklist

  • terraform validate sem erro
  • terraform plan com 5 recursos
  • apply testado: painel abre e GET / mostra "modelo_carregavel": true
  • destroy feito e a auditor-vm sumiu do console
  • git status sem terraform.tfvars nem .tfstate

Cuidados

  • O terraform.tfstate fica só na máquina de quem rodou o apply; o destroy precisa sair dela.
  • A VM gasta crédito por hora enquanto existir: criar perto do uso e destruir logo depois.
  • Se o IP de quem acessa mudar, atualizar ips_liberados e rodar apply de novo (só o firewall muda).

@yaMimis
yaMimis merged commit d82c299 into main Nov 10, 2026
2 checks passed
@yaMimis
yaMimis deleted the infra/gcp branch November 10, 2026 16:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants