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
- 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
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 |
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 |
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 |
-
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
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%.
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 |
- Ideal para:
- Ambientes de desenvolvimento
- Sistemas tolerantes a falhas
- Redução de custo em aplicações pequenas/médias
- 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
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.
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%.