Pular para o conteúdo principal

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

FasePeríodoMódulos AtivosCusto/MêsObservação
MVP (Free Tier)Mês 1-12Cardápio + Links + Pesquisa$0-5100% Free Tier
CRM InicialMês 13-24+ Reservas + Fidelidade + CRM$45-551º EC2 + RDS pago
Estado-alvoMês 25+Todos os módulos + 400 restaurantes$45-65Otimizado 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çoConfiguraçãoCusto/MêsJustificativa
RDS PostgreSQLdb.t4g.micro, 50GB, Single-AZ~$17Banco principal multi-tenant
EC2 Workert4g.small, Ubuntu~$16n8n + Metabase + background jobs
LambdaAté 1M execuções$0Free tier permanente
API Gateway HTTPRequests~$0-2Serverless scaling
S3Storage + transferência~$2-5Assets + Data Lake
SQS/SNSAté 1M mensagens~$0-1Messaging queues
CloudFrontCDN + invalidações~$1-2Global CDN
CloudWatchLogs + métricas + X-Ray~$2-5Observabilidade
Route 53Hosted zone + wildcard~$0.50DNS management
ACMCertificado SSL wildcard$0Sempre gratuito
CognitoAté 50k usuários$0Free tier permanente
AthenaConsultas CRM/BI~$1-3Data Lake queries
Parameter StoreSecrets~$0-0.40Configuration
Total Estimado

$45-55/mês para infraestrutura completa com 400+ restaurantes ativos.

Custos Externos (Não-AWS)

ServiçoModelo de CobrançaEstimativa
WhatsApp Business APIPor conversa (24h)$0.03-0.07/conversa (Brasil)
n8nSelf-hosted$0
Meta Marketing APIAPI gratuita$0
Google Ads APIAPI gratuita$0
Google My Business APIAPI gratuita$0
Provedor PDVA definir com parceirosTBD
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çoFree Tier BenefitCusto Real
RDS db.t3.micro750h/mês + 20GB storage$0
Lambda1M requests + 400,000 GB-s$0
API Gateway HTTP1M requests$0
S35GB storage + requests$0
CloudFront1TB data transfer out$0
SQS/SNS1M requests each$0
EventBridge14M events$0
Cognito50k MAU$0 (permanente)
Route 53Hosted zone~$0.50

Total Fase MVP: ~$0.50-2/mês

Linha do Tempo Detalhada

PeríodoMódulosInfraestruturaCustoDetalhes
Mês 1-2Cardápio Digital validação100% serverless, zero EC2~$0-5Foco na validação do MVP
Mês 3+ Links + Pesquisa NPSServerless, EventBridge→Lambda~$0-8Background jobs via eventos
Mês 4+ Reservas básicasServerless + SQS→Lambda~$0-10Filas para notificações
Mês 5-7+ Fidelidade + CRM início1º EC2 t4g.small (n8n)~$16-25Worker para WhatsApp
Mês 8-12+ Reputação + DashboardsEC2 + Athena + Metabase~$30-45BI completo
Mês 13+Escala 400 restaurantesFim Free Tier, Reserved Instances~$45-55Custos otimizados

Gatilhos de Upgrade de Custo

TriggerAção NecessáriaImpacto
Módulo 6 (CRM)Criar 1º EC2 para n8n + Worker+$16/mês
Volume de dadosUpgrade RDS micro → small+$15/mês
CPU/RAM saturandoUpgrade EC2 small → medium+$16/mês
Fila SQS acumulandoAdicionar 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

RecursoStandard Rate1-Year RISavings
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çous-east-1sa-east-1DiferençaRecomendaçã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/1M0%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

FerramentaUsoFrequência
AWS Cost ExplorerAnálise de gastos por serviçoMensal
AWS Trusted AdvisorRecomendações de economiaSemanal
CloudWatch BillingAlertas em tempo realContinuous
AWS Compute OptimizerRight-sizing EC2/RDSMensal

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çãoCusto/Restaurante/MêsFeatures
BITIO$0.118 módulos completos
Cardápio SaaS$29-99Apenas cardápio
CRM Restaurante$49-199Apenas CRM
Solução Custom$200-500+Desenvolvimento from scratch

Recomendações

Curto Prazo (Mês 1-6)

  1. Maximum Free Tier usage - adiar EC2 o máximo possível
  2. Billing alarms em $10, $25, $50
  3. Serverless-first architecture
  4. Monitor usage via AWS Cost Explorer

Médio Prazo (Mês 6-18)

  1. Reserved Instances quando sair do Free Tier
  2. Savings Plans para compute workloads
  3. Right-sizing baseado em métricas reais
  4. Cross-region strategy (híbrido US/BR)

Longo Prazo (Mês 18+)

  1. Multi-AZ para alta disponibilidade
  2. Aurora Serverless se workload for intermitente
  3. Spot Instances para workers não-críticos
  4. Enterprise Support quando passar de $1000/mês

Infraestrutura que escala financeiramente junto com o produto