Pular para o conteúdo principal

Arquitetura AWS

Documentação completa da infraestrutura AWS da plataforma BITIO. Este documento explica como todos os componentes trabalham juntos para criar uma solução escalável e econômica.

Visão Geral da Arquitetura

O BITIO utiliza uma arquitetura serverless-first na AWS que cresce junto com o negócio:

Arquitetura AWS

Por que essa arquitetura?

Economia: Começamos praticamente de graça usando o Free Tier da AWS
Escalabilidade: Componentes escalam automaticamente conforme a demanda
Simplicidade: Menos servidores para gerenciar = menos complexidade
Confiabilidade: Serviços gerenciados da AWS com alta disponibilidade

Como os Componentes se Conectam

O Fluxo Completo

  1. Cliente acessa o cardápio → CloudFront entrega a página rapidamente
  2. Página carrega → Chama a API Lambda para buscar dados
  3. Lambda processa → Consulta o banco PostgreSQL
  4. Cliente gera cupom → Dados vão para uma fila SQS
  5. Worker processa → Envia WhatsApp via n8n

Componentes Principais

ComponenteO que fazPor que escolhemos
CloudFront + S3Entrega as páginas webRápido e barato globalmente
Lambda + API GatewayProcessa as requisiçõesEscala automaticamente, paga só quando usa
PostgreSQL RDSArmazena todos os dadosConfiável e compatível com muitas ferramentas
SQS + WorkerProcessa tarefas pesadasNão trava a experiência do usuário
Route 53 + ACMDNS e certificados SSLGerenciado automaticamente

Frontends Públicos (Multi-tenant)

O que é: Cada restaurante tem seu próprio site personalizado
Como funciona: Um sistema gera sites diferentes para cada cliente

MóduloURL do ClienteTecnologia
Cardápio Digitalrestaurante.cardapio2biz.com.brNext.js (site estático)
Página de Linksrestaurante.link.software2biz.com.brNext.js (site estático)
Redirecionador QRq.cardapio2biz.com.brLambda (super rápido)

Por que Next.js? Gera sites estáticos que carregam muito rápido
Por que subdomínios? Cada restaurante tem sua identidade própria

Painel Administrativo

O que é: Onde o restaurante gerencia seu cardápio e dados
Como funciona: Sistema web protegido por login

ServiçoFunçãoBenefício
CognitoLogin e senhasSegurança gerenciada pela AWS
S3 + CloudFrontHospeda o painelRápido de carregar
ACMCertificados SSLHTTPS automático e gratuito

Backend Serverless

O que é: O "cérebro" que processa todas as operações
Como funciona: Código que roda só quando necessário

ServiçoFunçãoVantagem
LambdaExecuta o código da APIEscala automaticamente
API GatewayRecebe as requisiçõesGerencia tráfego e segurança
Cognito AuthorizerVerifica se usuário pode acessarSegurança automática
Por que Serverless?

Lambdas ficam fora da VPC para evitar NAT Gateway (~$45/mês extra). A comunicação com RDS funciona via Security Groups.

Banco de Dados

O que é: Onde todos os dados ficam armazenados de forma segura
Como funciona: PostgreSQL gerenciado pela AWS

ComponenteConfiguraçãoUso
RDS PostgreSQLdb.t4g.micro Single-AZ, 50GBBanco principal de todos os dados
Prisma ORMMigrations automáticasGerencia mudanças no banco
Multi-tenancyRow-Level Security (RLS)Isola dados por restaurante
Backup7 dias automáticoRecuperação em caso de problemas

Por que PostgreSQL? Robusto, confiável e funciona bem com todas as ferramentas modernas

Worker (Processamento em Background)

O que é: Sistema que executa tarefas pesadas sem travar o site
Quando entra: Só quando precisamos de WhatsApp e integrações avançadas

ComponenteTecnologiaO que faz
RuntimeNode.js no EC2Executa códigos complexos
n8nFerramenta de automaçãoConecta com WhatsApp e outras APIs
SQSFila de mensagensOrganiza tarefas para processar
SchedulerCron jobsExecuta tarefas em horários específicos

Por que EC2 aqui? n8n precisa rodar continuamente, diferente das Lambdas

2.6 Analytics / BI

ComponenteTecnologiaUso
Data LakeS3 Parquet particionadoyear=YYYY/month=MM/day=DD/
Query EngineAmazon AthenaSQL queries on S3
BI ToolMetabase self-hostedDashboards para 2biz + restaurantes
ETLWorker Node.jsExportação diária/horária

2.7 Mensageria & Filas

ServiçoUsoConfiguração
SQS StandardFilas do workerCampanhas, inbound, email
SQS DLQDead letter queueMensagens com falha
SNSNotificaçõesSlack + email marketing
Email Marketing

Implementado via Amazon SNS sem fornecedores terceiros. Para volumes maiores, migrar para Amazon SES.

Evolução dos Custos (Resumo Simples)

Fase 1: Praticamente Gratuito (Primeiros 12 meses)

  • Custo: $0-5/mês
  • O que temos: Cardápio digital funcionando
  • Como: AWS Free Tier cobre quase tudo

Fase 2: Crescimento Controlado (Após 12 meses)

  • Custo: $45-55/mês
  • O que temos: Sistema completo com WhatsApp, CRM e analytics
  • Como: Reserved Instances e otimizações

Por que é econômico?

  • Serverless: Paga só quando alguém usa
  • Free Tier: 12 meses praticamente grátis
  • Escala gradual: Custo cresce só quando o produto cresce

Detalhes Técnicos por Componente

Estado-Alvo (400 restaurantes)

ServiçoConfiguraçãoCusto/Mês
RDS PostgreSQLdb.t4g.micro, 50GB, Single-AZ~$17
EC2 Workert4g.small, Ubuntu~$16
LambdaAté 1M execuções$0 (free tier)
API GatewayHTTP API~$0-2
S3Storage + transferência~$2-5
SQS/SNSAté 1M mensagens~$0-1
CloudFrontCDN + invalidação~$1-2
CloudWatchLogs + métricas + X-Ray~$2-5
Route 53Hosted zone + wildcard~$0.50
ACMCertificado SSL wildcard$0
CognitoAté 50k usuários$0 (free tier)
AthenaConsultas CRM/mídia paga~$1-3
Parameter StoreSecrets~$0-0.40
Total AWS~$45-55/mês

Fase MVP (Free Tier - primeiros 12 meses)

ServiçoCusto/Mês
RDS db.t3.micro$0 (750h + 20GB grátis)
Lambda/API Gateway/SQS/SNS$0 (free tier)
S3 + CloudFront$0 (5GB + 1TB saída)
Cognito$0 (50k usuários)
Route 53~$0.50 (zona hospedada)
Total MVP~$0.50-2/mês
Estratégia de Custos

Crescimento junto com o produto: Free Tier → Serverless → Worker (quando necessário) → Scale out.

Estratégia de Crescimento

Linha do Tempo de Custos

PeríodoMódulos AtivosInfraestruturaCusto Real
Mês 1-2Cardápio Digital100% serverless, sem EC2~$0-5
Mês 3+ Links + PesquisaServerless, sem EC2~$0-8
Mês 4+ ReservasServerless, sem EC2~$0-10
Mês 5-7+ Fidelidade + CRM + n8n1º EC2 t4g.small~$16-25
Mês 8-12+ Reputação + Dashboardst4g.small + Athena + Metabase~$30-45
Pós 12 mesesEscala plenaFim do free tier~$45-55

Gatilhos de Upgrade

TriggerAçãoImpacto de Custo
Entrada do CRM + n8nCriar 1º EC2 t4g.small+~$16/mês
RAM/CPU saturandoUpgrade tier do EC2Conforme uso
Banco > 20GB ou lentoRDS micro → small+~$15/mês
Fila SQS acumulandoWorker → Fargate ECS+~$15-40/mês
Fim free tier (mês 13)Reserved instancesDesconto até 40%

Segurança & Compliance

Multi-tenancy & Isolamento

CamadaEstratégiaImplementação
DatabaseRow-Level Security (RLS)Filtro automático por tenant_id
StorageS3 prefix isolation/tenant-slug/assets/
ComputeLambda context isolationExecução isolada por request
NetworkVPC + Security GroupsAcesso controlado ao RDS

Monitoramento & Alertas

TipoFerramentaConfiguração
Logs estruturadosCloudWatch + pinoJSON format + correlation IDs
Distributed tracingX-RayTrace entre Lambda → RDS → SQS
Business metricsCloudWatch customCampanhas enviadas, reservas criadas
AlertasCloudWatch AlarmsSNS → Slack para incidentes

Observabilidade

Correlation & Tracing

// Exemplo: trace ID propagado através dos services
const traceId = context.traceId || generateTraceId();

logger.info('Processing reservation', {
traceId,
tenantId: 'restaurant-abc',
useCase: 'CreateReservation',
duration: 150
});

Métricas de Negócio

MétricaFonteFrequência
Cupons geradosLambda → CloudWatchReal-time
Campanhas WhatsAppWorker → CloudWatchBatch
Reservas criadasLambda → CloudWatchReal-time
Performance de APIsX-Ray → DashboardContinuous

Infraestrutura que escala junto com o negócio, otimizada para custo e performance