Article image
Vinicius Hoffmann
Vinicius Hoffmann04/05/2026 00:14
Compartilhe

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.

    image

    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

    image

    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:

    1. Entrada Segura: O usuário acessa via HTTPS, passando pelo Internet Gateway até encontrar a Sentinela (API Gateway) na Subnet Pública.
    2. Processamento: O Gateway dispara o Herói Central (AWS Lambda), que opera dentro da Subnet Privada.
    3. 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

    image

    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

    image

    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

    image

    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

    Compartilhe
    Comentários (0)