← Blog

S4 NAT vs fck-nat : une comparaison honnête pour remplacer votre NAT Gateway

Si vous avez trouvé cette page, vous connaissez déjà le problème : un NAT Gateway managé facture environ $32/mois par AZ, plus $0.045 pour chaque GB traité, et pour les egress-heavy workloads, la ligne de traitement des données dépasse rapidement tout le reste. Les NAT instances règlent ce problème, et fck-nat est le projet open-source qui les a rendues de nouveau respectables.

Commençons par la partie qu’une vendor page dit rarement à voix haute.

Quand vous devriez simplement utiliser fck-nat

fck-nat est gratuit, activement maintenu (2.2k+ GitHub stars), fournit des AMIs arm64/x86 prêtes à l’emploi sur Amazon Linux 2023, et dispose de modules CDK et Terraform solides. Sur une t4g.nano, il coûte environ $3/mois et pousse plusieurs Gbit/s de burst NAT traffic.

Utilisez fck-nat lorsque :

  • L’environnement est dev, staging ou personnel. Si quelques minutes de egress downtime sont un désagrément plutôt qu’un incident, l’option gratuite gagne.
  • Le coût est le seul critère. S4 NAT facture des frais logiciels horaires en plus de l’instance. Il ne battra jamais le gratuit sur le prix, et nous ne prétendrons pas le contraire.
  • Vous êtes à l’aise avec le community support. Le maintainer et la communauté de fck-nat sont réactifs, et pour des configurations standard, c’est souvent suffisant.

Où S4 NAT mérite son prix

S4 NAT est une NAT instance commerciale vendue via AWS Marketplace : même idée que fck-nat (EC2 standard, kernel nftables, pas de per-GB fee), mais exécution et garanties différentes. Les différences qui comptent :

Un failover auquel vous pouvez attribuer un chiffre. L’approche high-availability de fck-nat repose sur un Auto Scaling Group qui remplace une instance en panne : récupération de l’ordre de quelques minutes. S4 NAT exécute un active/standby pair avec heartbeat ; le standby réécrit vos route tables via ec2:ReplaceRoute, généralement en under 10 seconds. Ce comportement a été validé sur 170+ failover drills consécutifs avec de véritables EC2, au fil des versions, avec méthodologie et chiffres publiés dans le validation report du repo.

Une egress IP stable pendant le failover. Avec le per-instance addressing (le modèle de fck-nat et le mode par défaut de S4 NAT), votre egress public IP change lorsque le NAT bascule, ce qui pose problème si un partenaire l’a placée en allowlist. Le mode optionnel StableEgressIp de S4 NAT conserve une shared Elastic IP sur le nœud qui possède les routes. Dans notre drill run publié, un client échantillonnant son egress IP chaque seconde a vu la shared IP tout du long, avec une pire fenêtre de fallback observée de 2 seconds ; et le fallback passe vers l’EIP propre de l’instance au lieu de supprimer le traffic.

NAT64 intégré. Les IPv6-only subnets peuvent atteindre l’IPv4 internet (RFC 6146, integrated translator). fck-nat ne propose pas NAT64.

Un XDP fast path lorsque les pps comptent. Livré sur l’AMI, désactivé par défaut, activable avec une seule ligne de config. Mesuré sur des network-optimized instances à environ 2× the packets-per-second per CPU core du standard kernel path.

Procurement et responsabilité. Marketplace billing arrive sur votre AWS invoice existante (pas de nouveau vendor onboarding), et il y a une entreprise en face avec un support contact et un validation report publié. Point lié, un peu gênant, mais réel : plusieurs équipes nous ont dit qu’elles ne pouvaient pas faire passer un outil avec “fck” dans son nom en security review ou dans un procurement document. Si c’est votre organisation, aucune liste de fonctionnalités ne compte.

Comparaison côte à côte

fck-natS4 NAT
PrixGratuit (instance cost seulement)Frais logiciels horaires + instance
Frais de traitement des donnéesAucunAucun
FailoverASG replacement (minutes)Active/standby, <10s (170+ drills)
egress IP stable pendant failoverNonMode optionnel StableEgressIp
NAT64NonOui (RFC 6146)
XDP fast pathNonOptionnel, ~2x pps/core mesuré
SupportCommunityCommercial ([email protected])
ProcurementSelf-managed OSSAWS Marketplace, AWS invoice

La décision en cinq minutes

  1. Dev/staging, ou downtime tolerance mesurée en minutes → fck-nat. Il est bon. Utilisez-le.
  2. Production egress où des partenaires mettent votre IP en allowlist, où le failover doit se compter en secondes et non en minutes, ou si vous devez servir des IPv6-only subnets → S4 NAT.
  3. Pas sûr → commencez avec fck-nat, et revenez sur la décision au premier postmortem “the NAT was down for four minutes” ou au premier allowlist rotation ticket.

Les deux produits battent le NAT Gateway managé sur les coûts pour les egress-heavy workloads d’un ordre de grandeur. La différence honnête tient à ce que vous achetez au-delà du packet path : un comportement de failover mesuré, une egress IP constante et quelqu’un de responsable quand il est 3 a.m.

S4 NAT est disponible sur AWS Marketplace. Validation methodology, drill harness et le report complet sont fournis dans le product repository.