← Blog

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-natS4 NAT
PreçoGratuito (apenas instance cost)Taxa horária de software + instance
Taxa de processamento de dadosNenhumaNenhuma
FailoverASG replacement (minutos)Active/standby, <10s (170+ drills)
egress IP estável durante failoverNãoModo opcional StableEgressIp
NAT64NãoSim (RFC 6146)
XDP fast pathNãoOpcional, ~2x pps/core medido
SupportCommunityCommercial ([email protected])
ProcurementSelf-managed OSSAWS Marketplace, AWS invoice

A decisão em cinco minutos

  1. Dev/staging, ou downtime tolerance medida em minutos → fck-nat. É bom. Use.
  2. 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.
  3. 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.