0Pricing
Cloud & IT Cert Prep · Leçon

Passerelle NAT et sous-réseaux privés

Permettez aux ressources des sous-réseaux privés d’accéder à Internet sans être directement accessibles, grâce à une passerelle NAT gérée.

Passerelle NAT et sous-réseaux privés est une leçon Cloud & IT Cert Prep gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cloud & IT Cert Prep, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.

Le problème d’accès à Internet des subnets privés

Les ressources des subnets privés disposent uniquement d’adresses IP privées et d’aucune route vers un Internet Gateway ; elles ne peuvent donc pas établir de connexions sortantes vers Internet. Pourtant, elles doivent souvent pouvoir accéder à Internet : pour télécharger des correctifs de l’OS, récupérer des images Docker, appeler des API tierces ou mettre à jour des logiciels. La solution consiste à acheminer le trafic des subnets privés via un dispositif qui dispose d’un accès à Internet et effectue une NAT (traduction d’adresses réseau), en masquant les IP privées derrière une IP publique. AWS propose deux options : la NAT Gateway (gérée) et une NAT Instance autogérée (ancienne solution).

NAT Gateway : NAT sortante gérée

Une NAT Gateway est un service entièrement géré, hautement disponible, qui permet aux instances des subnets privés d’établir des connexions sortantes vers Internet tout en bloquant le trafic entrant non sollicité. Elle se trouve dans un subnet public, possède une adresse IP Elastic et augmente automatiquement sa capacité jusqu’à 100 Gbit/s. Vous n’avez jamais besoin d’appliquer de correctifs, de mettre à l’échelle ou de gérer l’infrastructure sous-jacente. La NAT Gateway traduit l’IP source privée des paquets sortants en sa propre EIP, puis renvoie les réponses à l’IP privée d’origine.

# Create a NAT Gateway in the public subnet
aws ec2 allocate-address --domain vpc  # Get an EIP
aws ec2 create-nat-gateway \
  --subnet-id subnet-public-1a \
  --allocation-id eipalloc-12345678 \
  --tag-specifications 'ResourceType=natgateway,Tags=[{Key=Name,Value=nat-gw-1a}]'

Acheminer le trafic du subnet privé via NAT

Après avoir créé un NAT Gateway, ajoutez une route à la table de routage du subnet privé : destination 0.0.0.0/0 → ID du NAT Gateway. Cela indique à tout le trafic à destination d’Internet provenant des instances du subnet privé de passer par le NAT Gateway, qui l’achemine ensuite via l’Internet Gateway vers Internet. La table de routage conserve également la route locale du VPC (par exemple, 10.0.0.0/16 → local) pour le trafic interne. Sans cette entrée de routage, les instances du subnet privé n’ont toujours pas accès à Internet, même si un NAT Gateway est déployé.

# Add route in private subnet's route table pointing to NAT gateway
aws ec2 create-route \
  --route-table-id rtb-private-app-1a \
  --destination-cidr-block 0.0.0.0/0 \
  --nat-gateway-id nat-12345678

Architecture NAT Gateway Multi-AZ

Un NAT Gateway est spécifique à une AZ : il ne gère que le trafic provenant des subnets de la même AZ. Pour assurer une haute disponibilité, déployez un NAT Gateway par AZ et créez des tables de routage privées propres à chaque AZ : la table de routage privée de l’AZ-a achemine 0.0.0.0/0 vers le NAT-GW de l’AZ-a ; celle de l’AZ-b achemine le trafic vers le NAT-GW de l’AZ-b. Cela évite les frais de transfert de données inter-AZ et garantit que, si l’AZ-a tombe en panne, les instances de l’AZ-b (avec leur propre NAT) continuent d’avoir accès à Internet.

# Architecture: two NAT gateways, two private route tables
# NAT-GW-1a in subnet-public-1a  --> rtb-private-1a
# NAT-GW-1b in subnet-public-1b  --> rtb-private-1b

# Associate private-1a subnets with rtb-private-1a (NAT-GW-1a)
aws ec2 associate-route-table \
  --route-table-id rtb-private-1a \
  --subnet-id subnet-private-app-1a

NAT Gateway ou NAT Instance

Un NAT Instance est une instance EC2 gérée par vos soins qui exécute une AMI NAT : il s’agit de l’ancienne approche, utilisée avant l’existence des NAT Gateway. Les NAT Instances vous obligent à : désactiver la vérification de la source et de la destination sur l’instance EC2, gérer la bande passante et la mise à l’échelle, appliquer les correctifs au système d’exploitation et gérer les pannes. Elles sont moins coûteuses pour les cas d’utilisation nécessitant une très faible bande passante et peuvent servir d’hôtes bastion. Les NAT Gateways sont le choix recommandé en production : ils sont entièrement gérés, leur capacité est mise à l’échelle automatiquement, ils offrent un SLA de disponibilité de 99,99 % au sein d’une AZ et ne nécessitent pas l’application de correctifs. L’examen a régulièrement évalué cette comparaison.

# For NAT Instance: disable source/dest check (required!)
aws ec2 modify-instance-attribute \
  --instance-id i-nat-instance-id \
  --no-source-dest-check

Tarification des NAT Gateway

La tarification des NAT Gateway comporte deux éléments : des frais horaires par NAT Gateway (environ 0,045 $ par heure dans us-east-1, soit environ 32 $ par mois) et des frais de traitement des données par Go (environ 0,045 $ par Go dans us-east-1). Pour les charges de travail qui transfèrent de grandes quantités de données via NAT (par exemple, le téléchargement de grandes images de conteneurs ou des téléchargements en masse), le coût du traitement des données peut devenir prépondérant. Optimisez les coûts de NAT en acheminant le trafic S3 et DynamoDB via des VPC Gateway Endpoints (ce qui contourne entièrement NAT et est gratuit), et en acheminant les appels d’API AWS via des VPC Interface Endpoints plutôt que via NAT.

Conception d’un subnet privé pour RDS

Les instances de base de données situées dans des subnets privés ne doivent pas être routées via le NAT Gateway : elles n’ont aucune raison d’initier des connexions vers Internet. Les bases de données doivent uniquement recevoir des connexions du niveau applicatif (au sein du VPC) et éventuellement accéder à des services AWS tels que S3 (pour les exportations et importations) via un point de terminaison VPC. Pour l’application des correctifs et les mises à jour des bases de données, RDS est un service géré ; vous n’appliquez donc pas directement les correctifs du système d’exploitation. Pour les bases de données autogérées sur EC2, utilisez Systems Manager Patch Manager, qui peut appliquer les correctifs via SSM sans accès à Internet si vous avez configuré le point de terminaison SSM VPC.

NAT Gateway et sécurité

NAT Gateway fournit un NAT sortant avec état uniquement : il autorise les connexions sortantes initiées et leurs réponses, mais bloque tout trafic entrant non sollicité. Ce n’est pas un pare-feu : il n’inspecte ni ne filtre le contenu du trafic. Pour filtrer le trafic sortant (par exemple, n’autoriser que certains domaines ou certaines adresses IP de destination depuis les subnets privés), vous avez besoin de contrôles supplémentaires : AWS Network Firewall déployé dans le VPC, ou une appliance pare-feu tierce derrière un Gateway Load Balancer. Les groupes de sécurité et les NACL s’appliquent toujours aux instances des subnets privés, indépendamment de NAT.

NAT Gateway privé

En plus des NAT Gateway publics (avec des EIP pour l’accès à Internet), AWS prend en charge les NAT Gateway privés sans EIP. Les NAT Gateway privés servent à traduire les adresses IP privées pour le trafic entre des VPC, ou entre un VPC et des réseaux sur site lorsque les plages CIDR se chevauchent. Par exemple, si le VPC-A (10.0.0.0/16) doit communiquer avec un réseau sur site qui utilise également 10.0.0.0/16, un NAT Gateway privé dans le VPC-A traduit les adresses IP source vers une plage non chevauchante avant l’acheminement via un Transit Gateway vers le réseau sur site.

Surveiller les métriques du NAT Gateway

Surveillez l’état et les performances du NAT Gateway au moyen des métriques CloudWatch. Métriques clés : ActiveConnectionCount (connexions TCP actuellement actives via NAT), BytesInFromDestination / BytesInFromSource (transfert de données dans les deux sens), PacketDropCount (paquets abandonnés : indique des limites de bande passante ou des erreurs) et ErrorPortAllocation (NAT a épuisé les allocations de ports : cela peut indiquer un épuisement des ports dû à un trop grand nombre de connexions). Chaque NAT Gateway prend en charge jusqu’à 55 000 connexions simultanées par destination unique ; au-delà, des connexions peuvent être abandonnées.

# Get NAT Gateway active connection count
aws cloudwatch get-metric-statistics \
  --namespace AWS/NATGateway \
  --metric-name ActiveConnectionCount \
  --dimensions Name=NatGatewayId,Value=nat-12345678 \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-01T01:00:00Z \
  --period 300 --statistics Maximum

Quand les subnets privés n’ont pas besoin de NAT

Toutes les charges de travail des subnets privés n’ont pas besoin d’un NAT Gateway. Examinez le schéma d’accès : si les instances doivent uniquement communiquer avec d’autres ressources du VPC et avec des services AWS accessibles via des points de terminaison VPC (S3, DynamoDB, SSM, ECR, Secrets Manager), vous pouvez supprimer entièrement le NAT Gateway, ce qui permet d’économiser environ 32 $ par mois et par AZ, ainsi que les frais de traitement des données. Il s’agit du schéma idéal pour des microservices entièrement privés qui utilisent des VPC Interface Endpoints pour tous leurs accès aux services AWS. Évaluez chaque service appelé par vos instances et vérifiez si un Gateway Endpoint gratuit ou un Interface Endpoint payant peut remplacer NAT.

Vérification rapide

Testez votre compréhension des concepts AWS Solutions Architect (SAA-C03) présentés dans cette leçon.

Récapitulatif de la leçon

Dans cette leçon, vous avez appris que : les NAT Gateways permettent aux instances des subnets privés d’accéder à Internet en sortie en traduisant leurs IP privées en Elastic IP ; vous devez ajouter une route 0.0.0.0/0 dans la table de routage du subnet privé, en la faisant pointer vers le NAT Gateway ; et vous devez déployer un NAT Gateway par AZ pour assurer une haute disponibilité et éviter les frais de transfert de données inter-AZ. Nous allons maintenant comparer les Network ACL et les Security Groups pour assurer une défense en profondeur du VPC.

Questions Fréquemment Posées

La leçon « Passerelle NAT et sous-réseaux privés » est-elle gratuite ?

Oui — le texte complet de « Passerelle NAT et sous-réseaux privés » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cloud & IT Cert Prep, passe à CoddyKit PRO. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Passerelle NAT et sous-réseaux privés » ?

Permettez aux ressources des sous-réseaux privés d’accéder à Internet sans être directement accessibles, grâce à une passerelle NAT gérée. Tu pratiques Cloud & IT Cert Prep avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Cloud & IT Cert Prep ?

Aucune expérience préalable n'est requise. Cloud & IT Cert Prep sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Passerelle NAT et sous-réseaux privés » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Cloud & IT Cert Prep ?

Oui. Chaque leçon Cloud & IT Cert Prep inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Architecture VPC et blocs CIDR
  2. Passerelle Internet et tables de routage
  3. Passerelle NAT et sous-réseaux privés
  4. ACL réseau ou groupes de sécurité
← Retour à Cloud & IT Cert Prep