Migrar de
AWS para HeroCtl
Receita em real, custo em dólar, NAT cobrando US$40/mês por zona, egress invisível, RDS escalando sozinho.
AWS é a escolha óbvia até a fatura mensal aparecer em USD com câmbio que ninguém previu. NAT Gateway cobra US$40/mês por zona só por existir, ALB cobra por LCU, RDS cobra por hora ligada mais armazenamento mais IO mais backup mais snapshot, e egress de dados sai a US$0.09/GB sem aviso. Empresa BR com receita BRL e custo USD descobre que 30-40% da margem foi pra Amazon. Sair leva 6-8 semanas de trabalho honesto e devolve 3-7× em redução de custo. Você não vai recriar AWS no destino; vai mapear cada serviço pra equivalente: EC2 vira VPS comum, RDS vira Postgres administrado por você, S3 vira R2 ou MinIO, ALB vira o roteador embutido. Lambda, se for pouco código, vira função num app sempre-ligado; se for muito, vira app dedicado. SQS vira Redis ou NATS. Os 12 serviços viram 4 ou 5 componentes simples.
Por que sair
- NAT Gateway: US$40/mês por zona só pra existir, mais US$0.045/GB processado
- Egress de dados invisível na previsão e cresce com tráfego: US$0.09/GB
- RDS cobra por hora ligada + storage + IO + backup + snapshots — quatro linhas pra um banco
- Lock-in IAM: 200+ políticas escritas, time treinado em algo que não sai do lugar
O que você ganha
- Custo em BRL, faturado por servidor, sem linha-item por GB ou por LCU
- Egress incluído na banda do VPS — sem cobrança por byte que sai
- Banco rodando no mesmo cluster, sem markup gerencial
- Operação simples o suficiente pra um dev part-time tocar — sem precisar de SRE dedicado
12 passos, sem mistério
- 01
Inventário completo dos 12+ serviços
3-5 diasListe cada serviço (EC2, RDS, S3, ALB, NAT, CloudFront, SQS, Lambda, ElastiCache, Route53, Secrets Manager, ECR, etc), quantas instâncias, qual custo mensal de cada, qual aplicação depende.
- 02
Mapeamento serviço-a-serviço
2-3 diasEC2 → VPS comum. RDS → Postgres no cluster. S3 → Cloudflare R2 (zero egress) ou MinIO local. ALB → roteador embutido no orquestrador. SQS → Redis ou NATS. Lambda → função num app sempre-ligado. ElastiCache → Redis. Route53 → DNS do registrar. Secrets Manager → manifesto seguro no cluster. CloudFront → Cloudflare grátis.
- 03
Provisionar cluster destino
2 dias3-5 VPS de 8-16 GB pra reproduzir capacidade. Instalar orquestrador. Configurar domínio.
- 04
Migração de banco de dados
3-5 diaspg_dump do RDS, restore no Postgres do cluster. Replicação lógica em paralelo durante cutover. Validação de integridade por tabela.
- 05
Migração de aplicações
1-2 semanasDockerizar cada app (algumas já estão). Rodar no destino com domínios shadow. Validar funcional, performance, conexões.
- 06
Migração de filas e jobs
3-5 diasSQS → Redis Streams ou NATS. Reescrever os 5-15 lugares que usavam SDK SQS pro novo cliente. Worker daemon roda como app no cluster.
- 07
Migração de Lambdas
1-2 semanasFunções pequenas viram endpoints num app HTTP sempre-ligado. Funções grandes viram apps próprios. Documentar cada trigger (cron, S3, API Gateway) e reproduzir no destino.
- 08
Migração de objetos S3
1 semanarclone copy de S3 pra R2 ou MinIO. Para buckets grandes, use replicação enquanto trabalha. Atualize URLs no código pra novo endpoint.
- 09
DNS, certificados e cutover
2 diasTTL pra 60s 24h antes. Validar certificados Let's Encrypt no destino. Trocar Route53 ou migrar zona pra registrar novo. Cutover em janela de baixo tráfego.
- 10
Monitoramento equivalente
3-5 diasCloudWatch métricas → métricas embutidas do orquestrador. Logs → escritor único embutido. Alertas → webhook pra Slack/PagerDuty.
- 11
Operação paralela por 30-60 dias
4-8 semanas em paraleloMantenha tudo rodando nos dois lados após cutover. Compare custos reais. Se algo quebrar, reverte DNS em minutos.
- 12
Decommission AWS
1 semana ativaDesligar serviços um por um após 30+ dias estáveis. Snapshot final de tudo, guardado em storage frio. Cancelar conta só após 90 dias e backup verificado.
6-8 semanas pra empresa com stack típica de 12 serviços, time de 2-3 devs em paralelo com roadmap normal.
Redução típica de 3-7× — US$800/mês vira R$300/mês.
| EC2: 4 instâncias t3.medium | US$130/mês ≈ R$650 |
| RDS db.t3.medium Multi-AZ | US$140/mês ≈ R$700 |
| NAT Gateway × 2 zonas | US$80/mês ≈ R$400 |
| ALB + LCU | US$25/mês ≈ R$125 |
| S3 + egress 500 GB | US$60/mês ≈ R$300 |
| ElastiCache Redis | US$40/mês ≈ R$200 |
| CloudFront + Route53 + outros | US$50/mês ≈ R$250 |
| Lambda + SQS + Secrets Manager | US$30/mês ≈ R$150 |
| Total AWS típico | US$555/mês ≈ R$2.775 |
| Cluster destino (4 VPS 8GB) | R$480/mês |
| R2 storage equivalente | R$50/mês |
| Total destino | R$530/mês |
| Economia mensal | R$2.245/mês |
| Economia anual | R$26.940/ano |
Antes vs Depois
| Critério | AWS | HeroCtl |
|---|---|---|
| Serviços contratados | 12+ | 4-5 componentes |
| Linhas na fatura | 40-60 | 4-6 |
| Moeda | USD | BRL |
| Custo mensal típico | US$555 | R$530 |
| NAT Gateway | US$40/mês × N zonas | Não existe |
| Egress de dados | US$0.09/GB | Incluído na banda VPS |
| Time mínimo pra operar | 1-2 SREs ou consultor | 1 dev part-time |
| Lock-in IAM/políticas | Alto | Não existe |
Onde costuma doer
Banco grande (>100 GB) no RDS demora pra dump/restore
Mitigação Replicação lógica do Postgres durante semanas em paralelo. Cutover é só promover a réplica e trocar DNS.
Aplicação assume IAM role pra falar com S3
Mitigação Mapeie cada chamada SDK. Substitua por chave de acesso do destino (R2 ou MinIO) lida de variável de ambiente. Sem IAM, sem mistério.
Lambda com cold start virava 1s, na app sempre-ligada vira instantâneo — comportamento muda
Mitigação Geralmente é melhoria silenciosa. Se algum chamador depender de cold start (caso raro), instrumente e ajuste.
Time treinado em AWS resiste à mudança
Mitigação A operação fica mais simples, não mais complicada. Faça pareamento na primeira semana, documente as 5 operações comuns. Em duas semanas o time prefere o destino.
Comece pelo Community
Cluster com alta disponibilidade real, gratuito permanente, sem feature gates. A migração de AWS costuma se pagar em 1-2 ciclos de fatura.