Análise de Custos AWS
Análise completa dos custos de infraestrutura da plataforma BITIO, com estratégia de crescimento e otimizações por fase.
Resumo Executivo
| Fase | Período | Módulos Ativos | Custo/Mês | Observação |
|---|---|---|---|---|
| MVP (Free Tier) | Mês 1-12 | Cardápio + Links + Pesquisa | $0-5 | 100% Free Tier |
| CRM Inicial | Mês 13-24 | + Reservas + Fidelidade + CRM | $45-55 | 1º EC2 + RDS pago |
| Estado-alvo | Mês 25+ | Todos os módulos + 400 restaurantes | $45-65 | Otimizado com Reserved Instances |
Estratégia Chave
Custo cresce junto com o produto - primeiros meses praticamente gratuitos usando AWS Free Tier.
Custo Detalhado por Serviço (Estado-alvo)
AWS Services - 400 Restaurantes
| Serviço | Configuração | Custo/Mês | Justificativa |
|---|---|---|---|
| RDS PostgreSQL | db.t4g.micro, 50GB, Single-AZ | ~$17 | Banco principal multi-tenant |
| EC2 Worker | t4g.small, Ubuntu | ~$16 | n8n + Metabase + background jobs |
| Lambda | Até 1M execuções | $0 | Free tier permanente |
| API Gateway HTTP | Requests | ~$0-2 | Serverless scaling |
| S3 | Storage + transferência | ~$2-5 | Assets + Data Lake |
| SQS/SNS | Até 1M mensagens | ~$0-1 | Messaging queues |
| CloudFront | CDN + invalidações | ~$1-2 | Global CDN |
| CloudWatch | Logs + métricas + X-Ray | ~$2-5 | Observabilidade |
| Route 53 | Hosted zone + wildcard | ~$0.50 | DNS management |
| ACM | Certificado SSL wildcard | $0 | Sempre gratuito |
| Cognito | Até 50k usuários | $0 | Free tier permanente |
| Athena | Consultas CRM/BI | ~$1-3 | Data Lake queries |
| Parameter Store | Secrets | ~$0-0.40 | Configuration |
Total Estimado
$45-55/mês para infraestrutura completa com 400+ restaurantes ativos.
Custos Externos (Não-AWS)
| Serviço | Modelo de Cobrança | Estimativa |
|---|---|---|
| WhatsApp Business API | Por conversa (24h) | $0.03-0.07/conversa (Brasil) |
| n8n | Self-hosted | $0 |
| Meta Marketing API | API gratuita | $0 |
| Google Ads API | API gratuita | $0 |
| Google My Business API | API gratuita | $0 |
| Provedor PDV | A definir com parceiros | TBD |
WhatsApp Pricing
Cobrança por conversa (janela 24h), não por mensagem. Conversas iniciadas pelo cliente são mais baratas que business-initiated.
Evolução de Custos por Fase
Fase 1: MVP com Free Tier (Mês 1-12)
Estratégia: Máximo aproveitamento do AWS Free Tier de 12 meses.
| Serviço | Free Tier Benefit | Custo Real |
|---|---|---|
| RDS db.t3.micro | 750h/mês + 20GB storage | $0 |
| Lambda | 1M requests + 400,000 GB-s | $0 |
| API Gateway HTTP | 1M requests | $0 |
| S3 | 5GB storage + requests | $0 |
| CloudFront | 1TB data transfer out | $0 |
| SQS/SNS | 1M requests each | $0 |
| EventBridge | 14M events | $0 |
| Cognito | 50k MAU | $0 (permanente) |
| Route 53 | Hosted zone | ~$0.50 |
Total Fase MVP: ~$0.50-2/mês
Linha do Tempo Detalhada
| Período | Módulos | Infraestrutura | Custo | Detalhes |
|---|---|---|---|---|
| Mês 1-2 | Cardápio Digital validação | 100% serverless, zero EC2 | ~$0-5 | Foco na validação do MVP |
| Mês 3 | + Links + Pesquisa NPS | Serverless, EventBridge→Lambda | ~$0-8 | Background jobs via eventos |
| Mês 4 | + Reservas básicas | Serverless + SQS→Lambda | ~$0-10 | Filas para notificações |
| Mês 5-7 | + Fidelidade + CRM início | 1º EC2 t4g.small (n8n) | ~$16-25 | Worker para WhatsApp |
| Mês 8-12 | + Reputação + Dashboards | EC2 + Athena + Metabase | ~$30-45 | BI completo |
| Mês 13+ | Escala 400 restaurantes | Fim Free Tier, Reserved Instances | ~$45-55 | Custos otimizados |
Gatilhos de Upgrade de Custo
| Trigger | Ação Necessária | Impacto |
|---|---|---|
| Módulo 6 (CRM) | Criar 1º EC2 para n8n + Worker | +$16/mês |
| Volume de dados | Upgrade RDS micro → small | +$15/mês |
| CPU/RAM saturando | Upgrade EC2 small → medium | +$16/mês |
| Fila SQS acumulando | Adicionar workers Fargate | +$15-40/mês |
| Fim Free Tier (mês 13) | Migrar para Reserved Instances | -20% com RI |
Estratégias de Otimização
Durante o Free Tier (Mês 1-12)
# 1. Configurar billing alarms
aws cloudwatch put-metric-alarm \
--alarm-name "BillingAlarm-20USD" \
--alarm-description "Alert when bill exceeds $20" \
--metric-name EstimatedCharges \
--threshold 20
# 2. Monitorar uso do Free Tier
aws support describe-trusted-advisor-checks \
--language en \
--query 'checks[?name==`Service Limits`]'
Arquitetura Serverless-First
- Sem EC2 até realmente precisar (módulo 6+)
- EventBridge + Lambda em vez de cron jobs
- SQS + Lambda em vez de workers dedicados
- SNS para notificações simples
Background Jobs sem EC2
// Exemplo: sync diário via EventBridge
export const scheduledSyncHandler = async (event: EventBridgeEvent) => {
// Roda 1x por dia, usa apenas Lambda (Free Tier)
await syncPDVData(event.tenantId);
await exportAnalyticsToS3(event.tenantId);
};
Pós Free Tier (Mês 13+)
Reserved Instances Strategy
| Recurso | Standard Rate | 1-Year RI | Savings |
|---|---|---|---|
| RDS db.t4g.micro | $17/mês | $11/mês | ~35% |
| EC2 t4g.small | $16/mês | $10/mês | ~37% |
| Total | $33/mês | $21/mês | $12/mês |
Savings Plans
# Compute Savings Plans (1-year)
# Desconto de 20-40% em Lambda + EC2
aws savingsplans describe-savings-plans-offering-rates \
--service-codes EC2-Instance,Lambda \
--payment-option "No Upfront"
Comparativo de Regiões
us-east-1 (Virgínia) vs sa-east-1 (São Paulo)
| Serviço | us-east-1 | sa-east-1 | Diferença | Recomendação |
|---|---|---|---|---|
| RDS db.t4g.micro | ~$15/mês | ~$26/mês | +73% | Avaliar latência vs custo |
| EC2 t4g.small | ~$13/mês | ~$21/mês | +61% | Worker pode ficar em us-east-1 |
| Lambda | $0.20/1M | $0.20/1M | 0% | Mesmo preço |
| S3 | $0.023/GB | $0.025/GB | +8% | Diferença mínima |
Trade-off Latência vs Custo
- São Paulo: Menor latência (~20ms), custo 60-70% maior
- Virgínia: Maior latência (~150ms), custo significativamente menor
Estratégia Híbrida Recomendada
- Frontend (S3 + CloudFront): Global, edge locations
- API Lambda + RDS: São Paulo (latência crítica)
- Worker + Analytics: Virgínia (background, custo menor)
Monitoramento e Controle
Billing Alerts Automáticos
# Alert em $20
aws cloudwatch put-metric-alarm \
--alarm-name "Billing-Alert-20" \
--alarm-actions "arn:aws:sns:us-east-1:123456789:billing-alerts" \
--threshold 20
# Alert em $50
aws cloudwatch put-metric-alarm \
--alarm-name "Billing-Alert-50" \
--threshold 50
Cost Optimization Tools
| Ferramenta | Uso | Frequência |
|---|---|---|
| AWS Cost Explorer | Análise de gastos por serviço | Mensal |
| AWS Trusted Advisor | Recomendações de economia | Semanal |
| CloudWatch Billing | Alertas em tempo real | Continuous |
| AWS Compute Optimizer | Right-sizing EC2/RDS | Mensal |
Métricas de Custo por Tenant
// Tracking de custos por restaurante
export async function calculateTenantCosts(tenantId: string) {
const metrics = await cloudWatch.getMetricStatistics({
Namespace: 'BITIO/Costs',
MetricName: 'APIRequests',
Dimensions: [{ Name: 'TenantId', Value: tenantId }],
StartTime: startOfMonth(),
EndTime: endOfMonth(),
});
// Estimar custo baseado em uso
const estimatedCost = calculateCostFromMetrics(metrics);
return estimatedCost;
}
Red Flags e Controles
Alertas Críticos
- Billing > $100/mês: Investigação imediata
- RDS storage > 80%: Scale up necessário
- Lambda timeout > 5%: Otimização necessária
- SQS DLQ > 50 messages: Debug de integrações
Controles Automáticos
// Auto-shutdown de recursos não-críticos
export const costControlHandler = async (event: CloudWatchAlarm) => {
if (event.newState === 'ALARM' && event.metricName === 'EstimatedCharges') {
// Desligar recursos não-críticos temporariamente
await stopNonCriticalResources();
await notifyTeamSlack(`Billing alert: ${event.threshold}`);
}
};
ROI e Benchmarks
Cost per Restaurant
- MVP (Free Tier): ~$0.001/restaurante/mês
- Estado-alvo: ~$0.11/restaurante/mês (400 restaurantes)
- Break-even: ~50 restaurantes pagantes
Comparativo Mercado
| Solução | Custo/Restaurante/Mês | Features |
|---|---|---|
| BITIO | $0.11 | 8 módulos completos |
| Cardápio SaaS | $29-99 | Apenas cardápio |
| CRM Restaurante | $49-199 | Apenas CRM |
| Solução Custom | $200-500+ | Desenvolvimento from scratch |
Recomendações
Curto Prazo (Mês 1-6)
- Maximum Free Tier usage - adiar EC2 o máximo possível
- Billing alarms em $10, $25, $50
- Serverless-first architecture
- Monitor usage via AWS Cost Explorer
Médio Prazo (Mês 6-18)
- Reserved Instances quando sair do Free Tier
- Savings Plans para compute workloads
- Right-sizing baseado em métricas reais
- Cross-region strategy (híbrido US/BR)
Longo Prazo (Mês 18+)
- Multi-AZ para alta disponibilidade
- Aurora Serverless se workload for intermitente
- Spot Instances para workers não-críticos
- Enterprise Support quando passar de $1000/mês
Infraestrutura que escala financeiramente junto com o produto