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:

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
- Cliente acessa o cardápio → CloudFront entrega a página rapidamente
- Página carrega → Chama a API Lambda para buscar dados
- Lambda processa → Consulta o banco PostgreSQL
- Cliente gera cupom → Dados vão para uma fila SQS
- Worker processa → Envia WhatsApp via n8n
Componentes Principais
| Componente | O que faz | Por que escolhemos |
|---|---|---|
| CloudFront + S3 | Entrega as páginas web | Rápido e barato globalmente |
| Lambda + API Gateway | Processa as requisições | Escala automaticamente, paga só quando usa |
| PostgreSQL RDS | Armazena todos os dados | Confiável e compatível com muitas ferramentas |
| SQS + Worker | Processa tarefas pesadas | Não trava a experiência do usuário |
| Route 53 + ACM | DNS e certificados SSL | Gerenciado 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ódulo | URL do Cliente | Tecnologia |
|---|---|---|
| Cardápio Digital | restaurante.cardapio2biz.com.br | Next.js (site estático) |
| Página de Links | restaurante.link.software2biz.com.br | Next.js (site estático) |
| Redirecionador QR | q.cardapio2biz.com.br | Lambda (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ço | Função | Benefício |
|---|---|---|
| Cognito | Login e senhas | Segurança gerenciada pela AWS |
| S3 + CloudFront | Hospeda o painel | Rápido de carregar |
| ACM | Certificados SSL | HTTPS 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ço | Função | Vantagem |
|---|---|---|
| Lambda | Executa o código da API | Escala automaticamente |
| API Gateway | Recebe as requisições | Gerencia tráfego e segurança |
| Cognito Authorizer | Verifica se usuário pode acessar | Segurança automática |
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
| Componente | Configuração | Uso |
|---|---|---|
| RDS PostgreSQL | db.t4g.micro Single-AZ, 50GB | Banco principal de todos os dados |
| Prisma ORM | Migrations automáticas | Gerencia mudanças no banco |
| Multi-tenancy | Row-Level Security (RLS) | Isola dados por restaurante |
| Backup | 7 dias automático | Recuperaçã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
| Componente | Tecnologia | O que faz |
|---|---|---|
| Runtime | Node.js no EC2 | Executa códigos complexos |
| n8n | Ferramenta de automação | Conecta com WhatsApp e outras APIs |
| SQS | Fila de mensagens | Organiza tarefas para processar |
| Scheduler | Cron jobs | Executa tarefas em horários específicos |
Por que EC2 aqui? n8n precisa rodar continuamente, diferente das Lambdas
2.6 Analytics / BI
| Componente | Tecnologia | Uso |
|---|---|---|
| Data Lake | S3 Parquet particionado | year=YYYY/month=MM/day=DD/ |
| Query Engine | Amazon Athena | SQL queries on S3 |
| BI Tool | Metabase self-hosted | Dashboards para 2biz + restaurantes |
| ETL | Worker Node.js | Exportação diária/horária |
2.7 Mensageria & Filas
| Serviço | Uso | Configuração |
|---|---|---|
| SQS Standard | Filas do worker | Campanhas, inbound, email |
| SQS DLQ | Dead letter queue | Mensagens com falha |
| SNS | Notificações | Slack + 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ço | Configuração | Custo/Mês |
|---|---|---|
| RDS PostgreSQL | db.t4g.micro, 50GB, Single-AZ | ~$17 |
| EC2 Worker | t4g.small, Ubuntu | ~$16 |
| Lambda | Até 1M execuções | $0 (free tier) |
| API Gateway | HTTP API | ~$0-2 |
| S3 | Storage + transferência | ~$2-5 |
| SQS/SNS | Até 1M mensagens | ~$0-1 |
| CloudFront | CDN + invalidação | ~$1-2 |
| CloudWatch | Logs + métricas + X-Ray | ~$2-5 |
| Route 53 | Hosted zone + wildcard | ~$0.50 |
| ACM | Certificado SSL wildcard | $0 |
| Cognito | Até 50k usuários | $0 (free tier) |
| Athena | Consultas CRM/mídia paga | ~$1-3 |
| Parameter Store | Secrets | ~$0-0.40 |
| Total AWS | ~$45-55/mês |
Fase MVP (Free Tier - primeiros 12 meses)
| Serviço | Custo/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 |
Crescimento junto com o produto: Free Tier → Serverless → Worker (quando necessário) → Scale out.
Estratégia de Crescimento
Linha do Tempo de Custos
| Período | Módulos Ativos | Infraestrutura | Custo Real |
|---|---|---|---|
| Mês 1-2 | Cardápio Digital | 100% serverless, sem EC2 | ~$0-5 |
| Mês 3 | + Links + Pesquisa | Serverless, sem EC2 | ~$0-8 |
| Mês 4 | + Reservas | Serverless, sem EC2 | ~$0-10 |
| Mês 5-7 | + Fidelidade + CRM + n8n | 1º EC2 t4g.small | ~$16-25 |
| Mês 8-12 | + Reputação + Dashboards | t4g.small + Athena + Metabase | ~$30-45 |
| Pós 12 meses | Escala plena | Fim do free tier | ~$45-55 |
Gatilhos de Upgrade
| Trigger | Ação | Impacto de Custo |
|---|---|---|
| Entrada do CRM + n8n | Criar 1º EC2 t4g.small | +~$16/mês |
| RAM/CPU saturando | Upgrade tier do EC2 | Conforme uso |
| Banco > 20GB ou lento | RDS micro → small | +~$15/mês |
| Fila SQS acumulando | Worker → Fargate ECS | +~$15-40/mês |
| Fim free tier (mês 13) | Reserved instances | Desconto até 40% |
Segurança & Compliance
Multi-tenancy & Isolamento
| Camada | Estratégia | Implementação |
|---|---|---|
| Database | Row-Level Security (RLS) | Filtro automático por tenant_id |
| Storage | S3 prefix isolation | /tenant-slug/assets/ |
| Compute | Lambda context isolation | Execução isolada por request |
| Network | VPC + Security Groups | Acesso controlado ao RDS |
Monitoramento & Alertas
| Tipo | Ferramenta | Configuração |
|---|---|---|
| Logs estruturados | CloudWatch + pino | JSON format + correlation IDs |
| Distributed tracing | X-Ray | Trace entre Lambda → RDS → SQS |
| Business metrics | CloudWatch custom | Campanhas enviadas, reservas criadas |
| Alertas | CloudWatch Alarms | SNS → 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étrica | Fonte | Frequência |
|---|---|---|
| Cupons gerados | Lambda → CloudWatch | Real-time |
| Campanhas WhatsApp | Worker → CloudWatch | Batch |
| Reservas criadas | Lambda → CloudWatch | Real-time |
| Performance de APIs | X-Ray → Dashboard | Continuous |
Infraestrutura que escala junto com o negócio, otimizada para custo e performance