Skip to content

Instantly share code, notes, and snippets.

@williamkoller
Last active April 23, 2025 16:56
Show Gist options
  • Save williamkoller/fa1fac793123f8480631bbe720f7cefb to your computer and use it in GitHub Desktop.
Save williamkoller/fa1fac793123f8480631bbe720f7cefb to your computer and use it in GitHub Desktop.
Previsão de Custos: AWS Lambda vs EC2/ECS com Golang

Previsão de Custos: AWS Lambda vs EC2/ECS com Golang

Este documento compara os custos e fatores operacionais de executar aplicações Golang na AWS utilizando Lambda e EC2/ECS, considerando:

  • Uso de memória
  • Uso de CPU
  • Redis (com Asynq)
  • Escrita em disco
  • Processamento de filas com Asynq

⚙️ Cenário Avaliado

  • Linguagem: Go
  • Tarefa: Processamento de mensagens em fila com Asynq
  • Banco: Redis (gerenciado via ElastiCache)
  • Escrita eventual em disco (persistência no EFS ou EBS)
  • Carga estimada: 100.000 mensagens por dia
  • Tempo de execução médio: 5s
  • Memória média: 2MB por job

🧠 Lambda

Recurso Valor estimado
Execuções mensais 100.000 execuções
Tempo médio por exec. 5 segundos
Memória alocada 128MB (mínimo cobrado, mesmo usando 2MB)
Preço por 1M exec. ~0.20 USD (invocação)
Preço por duração ~0.000000208 USD/100ms/128MB
Custo total estimado ~15 USD/mês
Redis (ElastiCache) ~15–20 USD/mês (db.t3.micro, 0.5GB, on-demand)
Disco (EFS) ~0.30 USD/GB/mês
Observações Fácil escalar, baixo custo inicial, limitada por tempo e cold start em picos

🖥️ EC2/ECS

Recurso Valor estimado
Instância mínima t3.micro (2 vCPU, 1GB RAM) ~8.50 USD/mês
Tempo de execução 24/7 uptime
Redis (ElastiCache) ~15–20 USD/mês
Disco (EBS) ~0.10 USD/GB/mês
Observações Mais controle, sem limite de duração, mais complexo de escalar e manter

📊 Comparativo Resumido

Item Lambda EC2/ECS
Escalabilidade Alta (automática) Média (manual ou via ECS)
Custo inicial Zero Instância ativa 24/7
Complexidade Baixa Alta
Controle sobre infra Baixo Alto
Persistência em disco Via EFS Via EBS/local
Tolerância a falhas Alta Depende do setup

🧮 Conclusão

  • Use Lambda se:

    • O processamento for curto (até 15 minutos)
    • Você quer reduzir custos com workloads esporádicos
    • Deseja escalabilidade automática
  • Use EC2/ECS se:

    • Precisa de maior controle
    • Deseja evitar cold starts
    • Tem uso contínuo ou alto throughput 24/7

💵 Comparativo de Preço Estimado

Item Lambda (mensal) EC2 t3.micro (mensal)
Execuções (100k/mês) $2.00 Incluído no uptime
Duração (128MB por 5s) $13.30 Incluído no uptime
Redis (ElastiCache) $15.00 $15.00
Redis (Docker/EC2) $0.00 (não aplicável) $0.00 (incluso na instância)
Armazenamento (EFS/EBS) $1.00 $1.00
Total c/ ElastiCache $31.30 $24.50
Total c/ Redis Docker $16.30 $9.50

💡 Com Redis rodando via Docker em EC2, os custos caem consideravelmente. Para produção crítica, o Redis gerenciado (ElastiCache) ainda é mais confiável, mas em ambientes controlados, o Docker pode reduzir custos em mais de 50%.


🧠 Redis: ElastiCache vs Docker em EC2

Execução Redis Custo Estimado Observações
ElastiCache (Gerenciado) ~$15–20/mês (t3.micro) Alta disponibilidade, failover automático, sem manutenção manual
Redis via Docker em EC2 ~Incluído na instância Mais barato, mas requer setup, backup, atualização e monitoração manual

✅ Quando Usar Redis em Docker/EC2

  • Ideal para:
    • Ambientes de desenvolvimento
    • Sistemas tolerantes a falhas
    • Redução de custo em aplicações pequenas/médias

⚠️ Riscos/Desvantagens

  • Sem alta disponibilidade automática
  • Risco de perda de dados sem persistência adequada
  • Requer gerenciamento manual (atualizações, logs, recuperação)
  • Sem suporte nativo para replicação automática

💡 Exemplo de Economia

Se você roda sua aplicação Go em um EC2 (ou ECS):

  • Redis em container = $0 adicional (além do custo da instância)
  • Total com EC2 + Redis em Docker + disco: ~$10/mês

🧾 Consideração: para produção crítica, ElastiCache oferece segurança e HA com menor esforço operacional.


💵 Comparativo de Preço Estimado

Item Lambda (mensal) EC2 t3.micro (mensal)
Execuções (100k/mês) $2.00 Incluído no uptime
Duração (128MB por 5s) $13.30 Incluído no uptime
Redis (Docker/EC2) $0.00 $0.00
Armazenamento (EFS/EBS) $1.00 $1.00
Total Estimado $16.30 $9.50

💡 Com Redis rodando em Docker, o custo mensal reduz significativamente. Essa opção exige mais gerenciamento, mas pode economizar até 50%.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment