S4 NAT vs fck-nat: uma comparação honesta para substituir seu NAT Gateway
Se você encontrou esta página, já conhece o problema: um NAT Gateway gerenciado cobra cerca de $32/mês por AZ, mais $0.045 por cada GB processado, e para egress-heavy workloads a linha de processamento de dados rapidamente supera todo o resto. NAT instances resolvem isso, e fck-nat é o projeto open-source que as tornou respeitáveis novamente.
Vamos começar pela parte que uma vendor page raramente diz em voz alta.
Quando você deveria simplesmente usar fck-nat
fck-nat é gratuito, mantido ativamente (2.2k+ GitHub stars), traz AMIs arm64/x86 prontas no Amazon Linux 2023 e tem módulos sólidos de CDK e Terraform. Em uma t4g.nano ele roda por cerca de $3/mês e empurra vários Gbit/s de burst NAT traffic.
Use fck-nat quando:
- O ambiente é dev, staging ou pessoal. Se alguns minutos de egress downtime são um incômodo em vez de um incidente, a opção gratuita vence.
- Custo é o único critério. S4 NAT cobra uma taxa horária de software além da instance. Ele nunca vai superar o gratuito em preço, e não vamos fingir o contrário.
- Você está confortável com community support. O maintainer e a comunidade do fck-nat são responsivos, e para configurações padrão isso muitas vezes basta.
Onde S4 NAT justifica sua taxa
S4 NAT é uma NAT instance comercial vendida pelo AWS Marketplace: a mesma ideia do fck-nat (EC2 padrão, kernel nftables, sem per-GB fee), mas com execução e garantias diferentes. As diferenças que importam:
Failover ao qual você pode atribuir um número. A história de high-availability do fck-nat é um Auto Scaling Group substituindo uma instance com falha: recuperação na ordem de minutos. S4 NAT executa um active/standby pair com heartbeat; o standby reescreve suas route tables via ec2:ReplaceRoute, normalmente em under 10 seconds. Isso foi validado em 170+ failover drills consecutivos com EC2 real ao longo dos releases, com metodologia e números publicados no validation report do repo.
Uma egress IP estável durante o failover. Com per-instance addressing (o modelo do fck-nat e o padrão do S4 NAT), sua egress public IP muda quando o NAT faz failover, o que é um problema se um parceiro a coloca em allowlist. O modo opcional StableEgressIp do S4 NAT mantém uma shared Elastic IP no nó que possui as rotas. No nosso drill run publicado, um client amostrando sua egress IP a cada segundo viu a shared IP o tempo todo, com uma pior janela de fallback observada de 2 seconds; e o fallback vai para a EIP própria da instance, em vez de descartar traffic.
NAT64 integrado. IPv6-only subnets podem alcançar a IPv4 internet (RFC 6146, integrated translator). fck-nat não oferece NAT64.
Um XDP fast path quando pps importa. Incluído na AMI, desativado por padrão, habilitado com uma linha de config. Medido em network-optimized instances em aproximadamente 2× the packets-per-second per CPU core em relação ao standard kernel path.
Aquisição e responsabilidade. Marketplace billing entra na sua AWS invoice existente (sem novo vendor onboarding), e do outro lado há uma empresa com support contact e um validation report publicado. Relacionado, um pouco constrangedor, mas real: várias equipes nos disseram que não conseguiram passar uma ferramenta com “fck” no nome por security review ou por um procurement document. Se essa é a sua organização, nenhuma lista de funcionalidades importa.
Comparação lado a lado
| fck-nat | S4 NAT | |
|---|---|---|
| Preço | Gratuito (apenas instance cost) | Taxa horária de software + instance |
| Taxa de processamento de dados | Nenhuma | Nenhuma |
| Failover | ASG replacement (minutos) | Active/standby, <10s (170+ drills) |
| egress IP estável durante failover | Não | Modo opcional StableEgressIp |
| NAT64 | Não | Sim (RFC 6146) |
| XDP fast path | Não | Opcional, ~2x pps/core medido |
| Support | Community | Commercial ([email protected]) |
| Procurement | Self-managed OSS | AWS Marketplace, AWS invoice |
A decisão em cinco minutos
- Dev/staging, ou downtime tolerance medida em minutos → fck-nat. É bom. Use.
- Production egress em que parceiros colocam seu IP em allowlist, failover precisa ser em segundos e não minutos, ou você precisa atender IPv6-only subnets → S4 NAT.
- Não tem certeza → comece com fck-nat e reavalie quando chegar o primeiro postmortem “the NAT was down for four minutes” ou o primeiro allowlist rotation ticket.
Ambos os produtos vencem o NAT Gateway gerenciado em custo para egress-heavy workloads por uma ordem de magnitude. A diferença honesta é o que você está comprando além do packet path: comportamento de failover medido, uma egress IP constante e alguém responsável quando são 3 a.m.
S4 NAT está disponível no AWS Marketplace. Validation methodology, drill harness e o report completo são enviados no product repository.