Da Infraestrutura à Fortaleza: Construindo uma API Serverless com Terraform e "Defensores" Digitais
Recentemente finalizei um projeto que foi além da simples escrita de código. No repositório legal-insight-serverless-api, o desafio foi orquestrar uma infraestrutura completa na AWS, onde cada componente não apenas cumpre uma função, mas atua como um guardião de dados em uma arquitetura pensada para ser resiliente e escalável.
A Metáfora dos Defensores
Para visualizar sistemas complexos, utilizei uma analogia inspirada na estética anime (estilo YuYu Hakusho). Essa abordagem facilitou a compreensão de como cada serviço interage dentro da nuvem.

O Defensor de Segurança (IAM, Secrets & Firewalls)
Este herói tático representa a governança e a segurança que envolvem todo o projeto legal-insight-serverless-api.
O Escudo IAM: O escudo com o cadeado e as nuvens simboliza o AWS Identity and Access Management (IAM). No código, isso se traduz nas políticas e funções, roles, que permitem ao Lambda falar com o RDS e o Redis sem expor chaves mestras.
O "Secrets Manager": O símbolo de cadeado dourado acima dele representa o AWS Secrets Manager. Ele reflete a prática de segurança de externalizar credenciais sensíveis (como as do banco de dados), garantindo que elas nunca fiquem "hardcoded" no arquivo variables.tf ou no código fonte.
Armadura Tática (Security Groups): Sua armadura robusta reforça a função dos Security Groups, os firewalls inteligentes que defini para filtrar o tráfego nas portas 5432 e 6379.
A Sentinela do Portal (API Gateway)
Na base da imagem, a personagem em um portal circular representa o Amazon API Gateway
- Função: Ela é a interface de entrada configurada no arquivo main.tf
- Ação: Atua como o ponto de recepção das requisições do frontend, direcionando o tráfego de forma segura para dentro da fortaleza
O Herói Central (AWS Lambda)
O guerreiro de armadura prateada e aura ciana personifica o AWS Lambda
- Função: O cérebro da operação, executando a lógica de backend em Python 3.9 definida no handler.py
- Detalhe Visual: Note o texto "Python" flutuando, ele reforça o runtime que utilizei via Terraform no main.tf. O túnel de dados simboliza a agilidade e a natureza efêmera do processamento serverless.
O Guardião de Dados (RDS PostgreSQL)
À esquerda, o gigante blindado protegendo o cristal azul representa o Amazon RDS
- Função: Armazenamento persistente e estruturado, essencial para a integridade dos dados jurídicos
- Detalhes Técnicos:
- 5432: A porta oficial do PostgreSQL liberada nos Security Groups
- LEGALINSIGHTDB: O nome da instância declarado no arquivo database.tf
- 20GB allocated_storage: O volume exato de armazenamento que foi provisionado via código
O Velocista de Cache (ElastiCache Redis)
À direita, o herói flamejante representa o Amazon ElastiCache (Redis)
- Função: Uma camada de cache estratégica para garantir que consultas repetitivas sejam entregues com latência mínima
- Detalhe Visual: O número "6379" destaca a porta do protocolo Redis, configurada exclusivamente para comunicação interna segura
A Fortaleza Digital (VPC & Segurança)
A cúpula de energia azul que envolve toda a cena é a Virtual Private Cloud (VPC)
- Função: Isola o RDS e o Redis em subnets privadas, garantindo que o acesso externo seja impossível sem passar pelos filtros de segurança
- Números Flutuantes: Simbolizam os Security Groups (os firewalls inteligentes), que garantem que apenas o Lambda tenha a "chave" para falar com os guardiões
Diagrama de Arquitetura

Detalhamento Técnico e Estrutura do Projeto
A organização de um projeto de Infraestrutura como Código (IaC) é fundamental para a escalabilidade. No repositório legal-insight-serverless-api, a estrutura foi desenhada para separar claramente as responsabilidades de backend, frontend e provisionamento.
Estrutura de Diretórios
Como observado na organização do projeto:
- /backend: Onde reside o handler.py, contendo a lógica de processamento em Python 3.9 que é executada pelo Herói Central (AWS Lambda).
- /frontend: Contém o index.html, a interface que interage com a nossa Sentinela (API Gateway).
- /infra: O coração da nossa automação, modularizado para facilitar a manutenção:
- api_gateway.tf: Configuração do ponto de entrada e rotas.
- lambda.tf: Definição do recurso computacional e permissões.
- database.tf: Provisionamento do RDS PostgreSQL e ElastiCache Redis em rede privada.
- main.tf: Definição do provedor e da VPC (Nossa Fortaleza Digital).
- variables.tf: Gestão de variáveis e proteção de dados sensíveis.
Fluxo de Dados na Arquitetura
O diagrama ilustra o caminho seguro que a informação percorre:
- Entrada Segura: O usuário acessa via HTTPS, passando pelo Internet Gateway até encontrar a Sentinela (API Gateway) na Subnet Pública.
- Processamento: O Gateway dispara o Herói Central (AWS Lambda), que opera dentro da Subnet Privada.
- Acesso aos Dados: O Lambda se comunica com os guardiões de dados através de portas específicas (5432 para o PostgreSQL e 6379 para o Redis), protegidas por Security Groups que atuam como firewalls inteligentes, impedindo qualquer acesso externo direto.
Essa arquitetura garante que, mesmo que a camada externa seja atacada, os dados críticos permanecem isolados e protegidos dentro da fortaleza digital.
Organização do Projeto: A Base da Fortaleza

A estrutura de diretórios do legal-insight-serverless-api foi desenhada para garantir que cada "Defensor" do sistema tivesse seu lugar específico, facilitando a manutenção e futuras expansões.
- backend/handler.py: Onde vive o código Python 3.9 que processa toda a lógica de negócio do nosso Herói Central.
- frontend/index.html: A interface simples e eficaz que se comunica com a nossa Sentinela externa.
- infra/: O centro de comando onde a mágica do Terraform acontece.
- api_gateway.tf & lambda.tf: Onde orquestramos o portal de entrada e o poder computacional.
- database.tf: Onde configuramos os guardiões de dados (RDS e Redis) em subnets privadas.
- variables.tf: Nossa camada de segurança para gerenciar dados sensíveis sem expô-los.
Do Git à Nuvem: Ciclo de Vida e Boas Práticas

A organização do repositório legal-insight-serverless-api reflete um fluxo de trabalho profissional, onde cada commit foi pensado para garantir a integridade e a segurança da solução:
- Padrão de Commits: Utilizei o padrão de Conventional Commits (como feat, security, docs e chore) para manter um histórico de alterações legível e organizado.
- Segurança Primeiro: O commit na pasta infra destaca a externalização de credenciais sensíveis, garantindo que segredos nunca sejam expostos no histórico do Git.
- Documentação Viva: O README.md foi atualizado constantemente para incluir a visão arquitetural e as práticas de segurança, servindo como a "única fonte de verdade" para quem consome o projeto.
- Higiene do Projeto: O arquivo .gitignore foi configurado especificamente para ambientes Terraform e Python, evitando o envio de arquivos temporários ou binários desnecessários para o servidor.
Diário de Bordo: A Evolução do Projeto

O desenvolvimento da infraestrutura e do código seguiu uma progressão lógica, documentada através de commits semânticos que garantem a rastreabilidade de cada recurso:
- Fundação da Fortaleza: O projeto começou com a definição da base de rede, configurando a VPC, subnets e os Security Groups necessários para o isolamento.
- Provisionamento dos Guardiões: Logo em seguida, foram instanciados os serviços de persistência e cache: o RDS Postgres e o ElastiCache Redis.
- Poder Computacional: Com a rede pronta, a AWS Lambda foi provisionada com acesso à VPC e integração direta com o banco de dados.
- Inteligência Backend: O desenvolvimento do handler inicial em Python deu vida ao orquestrador do sistema.
- Exposição Segura: A configuração do API Gateway com suporte a CORS permitiu a integração segura com o mundo externo.
- Interface de Comando: Por fim, a criação de uma interface web simples no frontend possibilitou o disparo das funções do orquestrador.
Conclusão: Mais que Código, uma Arquitetura com Propósito
A jornada de construção do Legal Insight Serverless API demonstra que o papel de um desenvolvedor backend moderno vai muito além de apenas escrever funções em Python. Trata-se de orquestrar um ecossistema onde cada linha de código Terraform no diretório infra/ ergue um pilar de uma fortaleza digital resiliente e segura.
Ao utilizar a metáfora dos Defensores, consegui não apenas facilitar a visualização de fluxos complexos de rede — entre a agilidade do AWS Lambda (nosso Herói Central) e a robustez do RDS PostgreSQL (nosso Guardião) — mas também garantir que as boas práticas de segurança, como o isolamento em subnets privadas e o uso de variáveis sensíveis, estivessem no centro do design desde o primeiro commit.
Como evidenciado pelo histórico de evolução do projeto, a maturidade técnica é alcançada através de um workflow estruturado, documentação clara e a coragem de transformar diagramas de arquitetura em soluções reais que resolvem problemas de negócio com performance e baixo custo.
A "Fortaleza Digital" está de pé, protegida e pronta para escalar. Que venham os próximos desafios!
Confira o projeto completo no meu GitHub: https://github.com/viniciushoffmanndev/legal-insight-serverless-api



