Amazon VPC (Virtual Private Cloud) est un réseau virtuel isolé dans une région AWS : on y choisit la plage d’adresses, le découpage en subnets, le routage et le filtrage.
🧭 Quel composant pour quel besoin
| 📌 Besoin | ☁️ Service à utiliser |
|---|---|
| 🌍 Exposer un serveur sur Internet | Subnet public + Internet Gateway + IP publique |
| 🔄 Faire sortir un subnet privé vers Internet | NAT Gateway |
| 🌐 Sortie IPv6 sans connexion entrante | Egress-only Internet Gateway |
| 🪣 Joindre S3 ou DynamoDB sans Internet | Gateway Endpoint |
| 🔌 Joindre un autre service AWS sans Internet | Interface Endpoint |
| 🤝 Relier quelques VPC entre eux | VPC Peering |
| 🚉 Relier beaucoup de VPC, des VPN et Direct Connect | Transit Gateway |
| 🏢 Relier un site distant rapidement | Site-to-Site VPN |
| 📡 Débit élevé et latence stable vers le datacenter | Direct Connect (VPN en secours) |
| ⛔ Bloquer une IP précise | Règle Deny dans une NACL |
| 🔍 Comprendre pourquoi un flux est rejeté | VPC Flow Logs |
📐 Adressage et tailles
Le CIDR (Classless Inter-Domain Routing) note une plage d’adresses : plus le préfixe est grand, plus la plage est petite.
| 📌 Élément | 📊 Valeur | 💡 Conséquence |
|---|---|---|
| 📏 Taille d’un VPC (IPv4) | De /16 (65 536 IP) à /28 (16 IP) | Un bloc existant ne se redimensionne pas : on ajoute un bloc secondaire |
| ➕ Blocs CIDR IPv4 par VPC | 5 par défaut, ajustable jusqu’à 50 | Le bloc principal compte dans le quota et ne peut pas être retiré |
| 🏠 Plages privées (RFC 1918) | 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | La RFC 1918 définit les plages privées, non routées sur Internet |
| 🚫 Plage à éviter | 172.17.0.0/16 | Utilisée par certains services AWS (Cloud9, SageMaker AI) : conflits d’adresses |
| 🔲 Taille d’un subnet (IPv4) | De /16 à /28 | Un subnet tient dans une seule AZ (Availability Zone, datacenter isolé de la région) |
| 🔢 Subnets par VPC | 200 par défaut, ajustable | Prévoir au moins un subnet par AZ et par couche (public, privé) |
| 🌍 VPC par région | 5 par défaut, ajustable | Relever ce quota relève d’autant celui des Internet Gateways |
| 🎁 VPC par défaut | 172.31.0.0/16, un subnet /20 par AZ | Tous ses subnets sont publics : pratique pour tester, à éviter en production |
🔢 IP réservées par subnet
AWS réserve 5 adresses dans chaque subnet : les 4 premières et la dernière. Exemple avec 10.0.0.0/24 :
| 📌 Adresse | 📊 Rôle |
|---|---|
10.0.0.0 | Adresse réseau |
10.0.0.1 | Routeur du VPC |
10.0.0.2 | Réservée par AWS (le DNS Amazon répond sur l’adresse de base du VPC + 2) |
10.0.0.3 | Réservée par AWS pour un usage futur |
10.0.0.255 | Broadcast : non supporté dans un VPC, réservé quand même |
Conséquence : un /28 n’offre que 11 adresses utilisables et un /24 en offre 251. Les endpoints d’interface et les attachments Transit Gateway prennent aussi une IP dans le subnet : un subnet trop juste bloque vite les déploiements.
🌐 Subnet public ou privé
Le type d’un subnet dépend uniquement de sa table de routage.
| 📌 Type | 🛣️ Route vers | 📊 Usage type |
|---|---|---|
| 🌍 Public | IGW (Internet Gateway) | Load balancer exposé, bastion, NAT Gateway zonale |
| 🔒 Privé | NAT Gateway, ou aucune sortie Internet directe | Serveurs applicatifs, bases de données |
| 🏢 VPN-only | VGW (Virtual Private Gateway) vers le site distant | Ressources joignables seulement depuis le réseau interne |
| 🧊 Isolé | Aucune destination hors du VPC | Ressources qui ne parlent qu’au VPC |
| 📌 Condition pour joindre Internet | 📊 Détail |
|---|---|
| 🚪 IGW attaché au VPC | Un seul IGW par VPC ; gratuit, redondant, sans contrainte de bande passante |
| 🛣️ Route vers l’IGW | 0.0.0.0/0 (IPv4) ou ::/0 (IPv6) dans la table du subnet |
| 🏷️ Adresse publique | IP publique ou EIP (Elastic IP, adresse publique fixe) : sans elle, pas d’Internet même en subnet public |
| 🛡️ Filtrage | Le Security Group et la NACL doivent autoriser le flux |
| 💶 Coût IPv4 publique | Facturée à l’heure, qu’elle soit attachée ou inutilisée |
🛣️ Tables de routage
| 📌 Élément | 📊 Comportement |
|---|---|
| 🗺️ Table principale (main) | Créée avec le VPC, appliquée à tout subnet sans association explicite |
| 🔗 Association | Un subnet a une seule table ; une table peut servir plusieurs subnets |
🏠 Route local | Couvre le CIDR du VPC : tous les subnets se joignent sans route ajoutée |
| 🎯 Priorité | La route la plus spécifique gagne (longest prefix match) : /32 passe avant /24 |
| ⚖️ Destination identique | Route statique prioritaire sur une route propagée par VPN ou Direct Connect |
| 📏 Routes par table | 500 par défaut (hors routes propagées), ajustable jusqu’à 1 000 |
Conséquence : un subnet créé sans association hérite de la table principale. Si cette table route vers l’IGW, le subnet devient public sans qu’on l’ait décidé.
🚪 NAT Gateway
Le NAT (Network Address Translation) permet à des ressources privées d’ouvrir des connexions sortantes sans être joignables depuis l’extérieur.
| 📌 Élément | 📊 Valeur |
|---|---|
| 🏗️ NAT Gateway zonale | Créée dans un subnet public avec une EIP, redondante dans son AZ uniquement |
| 🌐 NAT Gateway régionale | Aucun subnet public requis, s’étend seule aux AZ qui ont des ressources (jusqu’à 60 min) |
| 🚀 Bande passante | 5 Gbps, montée automatique jusqu’à 100 Gbps |
| 🔌 Connexions | 55 000 simultanées par IP vers une même destination (IP, port, protocole) |
| 🛡️ Security Group | Non attachable : filtrer sur les instances et dans la NACL |
| 🔁 Ports sources | 1024-65535, à autoriser dans la NACL |
| 🚫 Depuis un VPC pair | Impossible de sortir par la NAT Gateway d’un VPC en peering |
| 🌐 Équivalent IPv6 | Egress-only Internet Gateway : gratuit, stateful, bloque les connexions entrantes |
| 🧓 NAT instance | EC2 gérée soi-même, contrôle source/destination à désactiver, AMI NAT d’AWS plus maintenue |
Règle de haute disponibilité en mode zonal : une NAT Gateway par AZ, et chaque subnet privé route vers celle de sa propre AZ. Avec une seule NAT Gateway, la panne de son AZ coupe Internet à toutes les autres. Le mode régional règle ce point mais ne gère pas le NAT privé et se facture pour chaque AZ couverte.
🛡️ Security Group ou NACL
Le SG (Security Group) filtre au niveau de l’ENI (Elastic Network Interface, carte réseau virtuelle) ; la NACL (Network Access Control List) filtre ce qui entre et sort du subnet.
| 📌 Critère | 🛡️ Security Group | 🧱 NACL |
|---|---|---|
| 📍 Niveau | Ressource (ENI) | Subnet |
| ✅ Types de règles | Allow uniquement | Allow et Deny |
| 🔄 État | Stateful : la réponse est autorisée d’office | Stateless : la réponse doit avoir sa propre règle |
| 🔢 Évaluation | Toutes les règles avant décision | Par numéro croissant, arrêt à la première correspondance |
| 🎁 Par défaut | SG default : entrée depuis ce même SG, sortie totale | NACL par défaut : tout autorisé ; NACL créée : tout refusé |
| 🎯 Source possible | CIDR, prefix list ou autre SG | CIDR uniquement |
| 📏 Quotas par défaut | 60 règles entrantes et 60 sortantes ; 5 SG par ENI (jusqu’à 16) | 20 règles par sens, ajustable jusqu’à 40 |
| 🔗 Association | Plusieurs SG par ressource | Une NACL par subnet, partageable entre subnets |
Ni le SG ni la NACL ne filtrent le DNS Amazon, le DHCP, les métadonnées d’instance ou le Time Sync Service. AWS recommande le SG comme contrôle principal et la NACL comme garde-fou au niveau du subnet.
🔌 VPC Endpoints
Un endpoint donne accès aux services AWS sans IGW ni NAT : le trafic reste sur le réseau AWS.
| 📌 Critère | 🚪 Gateway Endpoint | 🔌 Interface Endpoint |
|---|---|---|
| 🎯 Services | S3 et DynamoDB uniquement | La plupart des services AWS via PrivateLink, dont S3 et DynamoDB |
| ⚙️ Mécanisme | Route vers une prefix list ajoutée à la table de routage | ENI avec IP privée, un subnet par AZ |
| 💶 Coût | Gratuit | Facturé à l’heure par AZ et au Go traité |
| 🏢 Accès depuis le site (VPN, Direct Connect) | Non | Oui |
| 🔗 Accès depuis un autre VPC | Non (un VPC pair ne peut pas l’utiliser) | Oui, via peering ou Transit Gateway |
Règle pour S3 : Gateway Endpoint pour le trafic interne au VPC, Interface Endpoint pour le trafic venant du site distant. Les deux cohabitent dans le même VPC.
🔗 VPC Peering ou Transit Gateway
| 📌 Critère | 🤝 VPC Peering | 🚉 Transit Gateway (TGW) |
|---|---|---|
| 🧩 Modèle | Lien 1 à 1 entre deux VPC | Routeur virtuel régional central |
| 🔁 Transitivité | Aucune : A-B et B-C ne donnent pas A-C | Oui, selon les tables de routage du TGW |
| 🧮 Liens pour n VPC maillés | n(n-1)/2 (10 VPC = 45 peerings) | Un attachment par VPC |
| 🌍 Portée | Même région, inter-régions, inter-comptes | Régional, peering de TGW entre régions, partage via RAM (Resource Access Manager) |
| 🔌 Autres rattachements | Aucun : pas d’accès à l’IGW, la NAT, le VPN ou Direct Connect du pair | VPN, Direct Connect gateway, autres TGW |
| 🧱 Segmentation | Par choix des liens créés | Plusieurs tables de routage (isoler DEV et PROD) |
| 🚀 Débit | Pas de goulot ni de point unique de panne | Jusqu’à 100 Gbps par attachment VPC et par AZ |
| 💶 Coût | Création gratuite ; trafic gratuit dans une AZ, payant entre AZ et régions | À l’heure par attachment et au Go traité |
| 📏 Quota par défaut | 50 peerings actifs par VPC, ajustable jusqu’à 125 | 5 000 attachments par TGW, ajustable |
Règle peering : les CIDR ne doivent pas se chevaucher, même partiellement (d’où l’intérêt d’un plan d’adressage commun). Après acceptation, ajouter la route vers le CIDR distant des deux côtés, sinon rien ne passe. Dans une même région, un SG peut référencer un SG du VPC pair.
🏢 Connectivité hybride
| 📌 Critère | 🔐 Site-to-Site VPN | 📡 Direct Connect (DX) |
|---|---|---|
| 🛤️ Transport | Tunnels IPsec sur Internet | Lien physique privé depuis une Direct Connect location |
| 🔒 Chiffrement | Oui (IPsec) | Non par défaut : MACsec sur ports dédiés 10, 100 ou 400 Gbps (sites sélectionnés), ou VPN par-dessus |
| 🚀 Débit | 2 tunnels par connexion, jusqu’à 1,25 Gbps par tunnel (5 Gbps en Large Bandwidth Tunnel sur TGW) | Dédié : 1, 10, 100 ou 400 Gbps ; hébergé par un partenaire : 50 Mbps à 25 Gbps |
| ⏱️ Mise en place | Quelques minutes | Circuit physique à commander (port AWS, cross-connect, opérateur) |
| 📉 Latence | Dépend d’Internet | Stable |
| 🧱 Côté AWS | VGW (un VPC) ou TGW (plusieurs VPC, ECMP pour cumuler les tunnels) | VIF (Virtual Interface) privée, publique ou transit |
ECMP (Equal-Cost Multi-Path) répartit le trafic sur plusieurs tunnels actifs, à condition d’utiliser le routage dynamique BGP (Border Gateway Protocol). Le Direct Connect gateway, ressource globale, relie une connexion DX à des VPC de plusieurs régions sans permettre le trafic entre ces VPC. Schéma robuste : DX en lien principal, VPN en secours, AWS préférant toujours le chemin DX quand il est actif.
📜 VPC Flow Logs
| 📌 Élément | 📊 Détail |
|---|---|
| 🎯 Niveau | VPC, subnet ou ENI (y compris celles d’un load balancer, d’une NAT Gateway ou d’un TGW) |
| 🔎 Filtre | Trafic accepté, rejeté, ou les deux |
| 📦 Destinations | CloudWatch Logs, S3 (requêtes SQL avec Athena), Data Firehose |
| ⏱️ Délai | Pas de temps réel : plusieurs minutes avant les premiers enregistrements |
| ⚡ Impact réseau | Aucun : la collecte se fait hors du chemin du trafic |
| ✏️ Modification | Impossible après création : supprimer puis recréer |
| 🙈 Non capturé | DNS Amazon, DHCP, métadonnées 169.254.169.254, Time Sync 169.254.169.123, ARP |
| 💶 Coût | Tarif « vended logs » de CloudWatch (ingestion et archivage) |
Usage type : un flux marqué REJECT pointe vers un SG ou une NACL trop restrictif ; activer le filtre « rejeté » sur le subnet concerné donne la réponse sans capture réseau.