Construire un VPC complet : subnets public/privé, Internet Gateway, NAT Gateway, Route Tables, Security Groups, NACL, VPC peering, Transit Gateway. Toutes les commandes AWS CLI pour la PBQ SAA-C03.
📍 À lire d’abord : Pilier AWS SAA-C03 · Compte AWS Free Tier sans risque.
Introduction
Le VPC (Virtual Private Cloud) est le réseau virtuel privé qui isole tes ressources AWS. Toute architecture SAA-C03 repose sur un VPC bien conçu. Ce tutoriel construit la topologie de référence : VPC + 2 AZ + subnets public et privé par AZ, IGW, NAT Gateway, route tables — exactement ce que demande l’examen.
Prérequis
- Compte AWS Free Tier configuré (cf. tutoriel précédent).
- AWS CLI configuré.
- Compréhension TCP/IP (CIDR, masques).
- Niveau intermédiaire.
- Temps : 2 heures.
Étape 1 — Architecture cible
VPC: 10.0.0.0/16 (eu-west-3 Paris)
AZ eu-west-3a:
Public Subnet 10.0.1.0/24 → IGW
Private Subnet 10.0.11.0/24 → NAT Gateway
AZ eu-west-3b:
Public Subnet 10.0.2.0/24 → IGW
Private Subnet 10.0.12.0/24 → NAT Gateway
Cette architecture multi-AZ avec 2 subnets par zone est le pattern standard pour HA. Les subnets publics hébergent les Load Balancers et bastions ; les privés hébergent les instances applicatives et bases de données.
Étape 2 — Créer le VPC via Console
1. Console > VPC > "Create VPC"
2. Choisir "VPC and more" (wizard qui crée tout en une fois)
3. Name tag : "lab-vpc"
4. IPv4 CIDR : 10.0.0.0/16
5. IPv6 : No
6. Number of AZs : 2
7. Number of public subnets : 2
8. Number of private subnets : 2
9. NAT Gateways : 1 per AZ (recommandé prod) ou "1 in 1 AZ" (pour Free Tier)
⚠️ NAT Gateway = ~32 USD/mois, NON Free Tier — alternative : NAT Instance EC2 t2.micro
10. VPC endpoints : None pour l'instant
11. DNS hostnames + DNS resolution : Enable
12. Create VPC
AWS crée tout en 30-60 secondes. Le wizard provisione : 1 VPC, 4 subnets, 2 route tables (public + private), 1 IGW, NAT Gateway(s).
Étape 3 — Vérifier en CLI
# Lister VPCs
aws ec2 describe-vpcs --query 'Vpcs[*].[VpcId,CidrBlock,Tags[?Key==`Name`].Value|[0]]' --output table
# Lister subnets du VPC
VPC_ID=vpc-xxxxxxxx
aws ec2 describe-subnets --filters "Name=vpc-id,Values=$VPC_ID" --query 'Subnets[*].[SubnetId,CidrBlock,AvailabilityZone,Tags[?Key==`Name`].Value|[0]]' --output table
# Lister route tables
aws ec2 describe-route-tables --filters "Name=vpc-id,Values=$VPC_ID" --output table
# Vérifier IGW attaché
aws ec2 describe-internet-gateways --filters "Name=attachment.vpc-id,Values=$VPC_ID"
# NAT Gateway
aws ec2 describe-nat-gateways --filter "Name=vpc-id,Values=$VPC_ID"
Étape 4 — Comprendre les Route Tables
Chaque subnet est associé à exactement une route table.
Route Table publique :
Destination Target
10.0.0.0/16 local (intra-VPC, automatique)
0.0.0.0/0 igw-xxxxx (Internet via IGW)
Route Table privée :
Destination Target
10.0.0.0/16 local
0.0.0.0/0 nat-xxxxx (Internet sortant via NAT, pas entrant)
Subnets publics ont route 0.0.0.0/0 → IGW (Internet bidirectionnel). Subnets privés ont route 0.0.0.0/0 → NAT Gateway (Internet sortant uniquement, pas entrant).
Étape 5 — Security Groups vs NACL
Deux niveaux de filtrage à connaître pour le SAA.
Security Group (SG)
- Stateful (réponse autorisée automatiquement)
- Attaché à instance/ENI
- Allow rules only (pas de deny explicite)
- Default: deny inbound, allow outbound
- Référençable par autre SG (ex: SG-DB autorise SG-WEB)
NACL (Network Access Control List)
- Stateless (réponse doit être autorisée explicitement)
- Attachée à subnet (s'applique à toutes les ENI du subnet)
- Allow ET deny rules
- Default: allow all inbound + all outbound
- Numérotation des règles (ordre d'évaluation)
À l’examen : SG = primary layer, NACL = backup pour blocages globaux (ex: bloquer une IP attaquante au niveau subnet).
Étape 6 — Créer un Security Group pour serveur web
# Créer SG
aws ec2 create-security-group --group-name web-sg --description "Web server SG" --vpc-id $VPC_ID
# Récupérer SG ID
SG_WEB=sg-xxxxxxxx
# Autoriser HTTP from anywhere
aws ec2 authorize-security-group-ingress --group-id $SG_WEB --protocol tcp --port 80 --cidr 0.0.0.0/0
# Autoriser HTTPS from anywhere
aws ec2 authorize-security-group-ingress --group-id $SG_WEB --protocol tcp --port 443 --cidr 0.0.0.0/0
# Autoriser SSH from ton IP uniquement
MY_IP=$(curl -s ifconfig.me)
aws ec2 authorize-security-group-ingress --group-id $SG_WEB --protocol tcp --port 22 --cidr $MY_IP/32
Étape 7 — VPC Peering
Pour connecter 2 VPCs (même région ou cross-region) :
# Créer peering connection
aws ec2 create-vpc-peering-connection --vpc-id vpc-A --peer-vpc-id vpc-B --peer-region eu-west-1
# Accepter (depuis vpc-B owner)
aws ec2 accept-vpc-peering-connection --vpc-peering-connection-id pcx-xxxxx
# Ajouter routes dans les 2 VPC
aws ec2 create-route --route-table-id rtb-A --destination-cidr-block 10.1.0.0/16 --vpc-peering-connection-id pcx-xxxxx
aws ec2 create-route --route-table-id rtb-B --destination-cidr-block 10.0.0.0/16 --vpc-peering-connection-id pcx-xxxxx
VPC Peering : pas de routage transitif (A↔B et B↔C ne donnent pas A↔C automatiquement). Pour multi-VPC complexe, utiliser Transit Gateway (~36 USD/mois).
Étape 8 — VPC Endpoints (privacy + cost saving)
Au lieu de router le trafic vers S3/DynamoDB via Internet (coût NAT Gateway), utiliser un VPC Endpoint qui crée une route directe AWS-internal.
# Gateway Endpoint pour S3 (gratuit, à privilégier)
aws ec2 create-vpc-endpoint --vpc-id $VPC_ID --service-name com.amazonaws.eu-west-3.s3 --route-table-ids rtb-private
# Interface Endpoint pour SQS (~10 USD/mois par AZ par endpoint)
aws ec2 create-vpc-endpoint --vpc-id $VPC_ID --service-name com.amazonaws.eu-west-3.sqs --vpc-endpoint-type Interface --subnet-ids subnet-private-a subnet-private-b --security-group-ids $SG_ENDPOINT
À l’examen : Gateway Endpoint = gratuit, S3 + DynamoDB seulement. Interface Endpoint = payant, autres services. Question fréquente : « Comment réduire les coûts NAT Gateway pour accès S3 depuis subnets privés ? » → Gateway Endpoint S3.
Étape 9 — Bastion host vs Session Manager
Pour SSH sur instances privées, deux options :
Bastion EC2 (legacy)
- EC2 t2.micro en subnet public
- SSH agent forwarding ou ssh -J bastion final-host
- Surface d'attaque (port 22 ouvert)
- Coût : ~8 USD/mois
AWS Systems Manager Session Manager (recommandé 2026)
- Pas d'EC2, pas de port 22 ouvert
- Auth via IAM, audit CloudTrail intégré
- Gratuit
- Nécessite SSM agent sur instance + IAM role attaché
À l’examen : Session Manager est désormais la réponse « best practice » pour accès admin instances.
Étape 10 — Cleanup obligatoire
# Supprimer NAT Gateway (le plus cher)
aws ec2 delete-nat-gateway --nat-gateway-id nat-xxxxx
# Release Elastic IP attachée au NAT GW
aws ec2 release-address --allocation-id eipalloc-xxxxx
# Quand tout est clean, supprimer VPC (cascade les subnets, RT, IGW)
aws ec2 delete-vpc --vpc-id $VPC_ID
⚠️ Toujours vérifier en console que toutes les ressources sont supprimées. NAT Gateway oublié = 32 USD/mois.
Erreurs fréquentes
| Erreur | Solution |
|---|---|
| Subnet privé peut accéder Internet | Vérifier route table : 0.0.0.0/0 doit pointer vers NAT, pas IGW |
| Instance subnet public sans accès Internet | Vérifier « Auto-assign public IP » du subnet activé |
| SSH bloqué malgré SG ouvert | NACL bloque-t-elle ? Vérifier rule set NACL |
| Coût NAT GW surprise | Préférer NAT Instance t2.micro (Free Tier) en lab, ou supprimer NAT GW |
| VPC peering ne route pas | Routes manquantes des deux côtés du peering |
Adaptation au contexte ouest-africain
Choix de région : eu-west-3 Paris pour latence (~60ms depuis Dakar/Abidjan), af-south-1 Cape Town pour souveraineté de données (~120ms). Pour clients UE : eu-west-1 Irlande, eu-west-3 Paris.
Pour les startups : VPC simple à 2 subnets (1 public + 1 privé) sans NAT Gateway suffit. Économise 32 USD/mois.
Pour les banques régionales : architecture multi-AZ + VPC Endpoints + Transit Gateway pour multi-VPC + AWS Network Firewall pour conformité PCI DSS.
FAQ
Subnet /24 vs /28 ?
/24 = 251 IPs utilisables (5 réservées AWS). /28 = 11 IPs. Pour applications standard, /24 confortable. /28 réservé liens point-à-point ou cas très contraints.
Combien de VPC par compte ?
5 par région par défaut, augmentable via support. La plupart des organisations utilisent 1 VPC par environnement (dev, staging, prod).
IPv6 obligatoire ?
Non, optionnel sur AWS. À activer si besoin spécifique (clients IPv6-only, conformité).
Pour aller plus loin
- 🔝 Pilier AWS SAA-C03
- ➡️ Suite : EC2, EBS et AMI : déployer un serveur AWS (à venir).
- Documentation : AWS VPC User Guide, VPC Best Practices.
Mots-clés : AWS VPC, subnets public privé, Internet Gateway, NAT Gateway coût, Route Tables AWS, Security Group vs NACL, VPC Peering, Transit Gateway, VPC Endpoint S3.
Approfondissement et cas pratiques
Études de cas réelles AWS en Afrique de l’Ouest
Cas 1 — Fintech mobile money, Dakar, 2025. Une fintech sénégalaise traite 4 millions de transactions/mois (Orange Money agrégé). Architecture AWS : ALB multi-AZ (eu-west-3) + ECS Fargate auto-scaling 8-50 tasks + Aurora Serverless v2 PostgreSQL (1-32 ACU) + DynamoDB pour ledger transactionnel + ElastiCache Redis pour sessions + S3 + CloudFront pour static. Coût mensuel 4 200 USD, soit 0.001 USD par transaction. Disponibilité mesurée 99,98 % sur 12 derniers mois. RTO 4 minutes via Multi-AZ failover Aurora.
Cas 2 — E-commerce panafricain, Abidjan/Dakar/Lagos, 2024. Plateforme avec 80 000 visiteurs/jour. Architecture multi-region active-active : eu-west-3 (Paris, principal pour AO/UE) + af-south-1 (Cape Town, secondaire pour Afrique australe) + Route 53 latency-based routing. Réplication Aurora Global Database, S3 Cross-Region Replication, DynamoDB Global Tables. CloudFront edge locations couvrant Lagos, Casablanca, Johannesburg. Coût 8 500 USD/mois, ROI prouvé par augmentation 23 % du taux conversion grâce à latence < 200ms partout en Afrique.
Cas 3 — Migration banque traditionnelle vers AWS, 2024-2025. Banque ivoirienne avec 18 ans d’historique on-prem (datacenter Plateau Abidjan + DR Yamoussoukro). Migration AWS lift-and-shift 80 % des workloads en 14 mois. Stack : VPC hub-and-spoke avec Transit Gateway, AWS Directory Service pour AD legacy, RDS pour Oracle SAP, EC2 dedicated hosts pour licences Microsoft, AWS Backup avec immutability pour conformité, AWS Control Tower pour gouvernance. Économie 40 % vs datacenter on-prem dès l’année 1, montée à 55 % en année 3.
Cinq scénarios SAA-C03 type examen détaillés
Scénario 1 : architecture e-commerce HA pour Black Friday. App attendue à 100x charge normale en 4h. Réponse : ALB + ASG avec scheduled scaling (lance 50 instances 30 min avant), CloudFront pour cache statique, Aurora Read Replicas pour scale read, ElastiCache Redis cluster mode pour sessions, SQS pour découpler order processing.
Scénario 2 : DR cross-region. Compagnie demande RTO 30 min, RPO 5 min. Réponse : Pilot Light pattern, primary eu-west-3, secondary eu-west-1 avec Aurora Global Database (lag < 1s) + AMI répliquées + Route 53 health checks failover automatique.
Scénario 3 : sécurisation données sensibles. Application stocke PII clients. Réponse : S3 SSE-KMS avec CMK, encryption EBS, RDS encrypted, KMS key rotation auto annuelle, IAM least privilege, CloudTrail logs vers S3 Object Lock immutable, GuardDuty actif, Macie pour découverte automatique PII.
Scénario 4 : optimisation coût legacy. Compte AWS avec 250 instances EC2 mostly idle nuit/weekend. Réponse : Instance Scheduler pour stop/start automatique, Reserved Instances 1 an pour baseline 24/7, Spot Instances pour batch processing, S3 Intelligent-Tiering, Compute Savings Plans 3 ans pour stack permanente. Économie attendue 65-75 %.
Scénario 5 : conformité PCI DSS. Architecture e-commerce processant cartes. Réponse : segmentation VPC stricte (CDE = Cardholder Data Environment isolé), AWS WAF + Shield Advanced, CloudHSM pour clés PCI, AWS Config rules pour conformité continue, AWS Inspector pour scan vuln, GuardDuty + Security Hub, CloudTrail multi-region, AWS Audit Manager pour rapports.
Architecture cloud-native moderne 2026
[Route 53 latency-based] → [CloudFront global edges]
↓
[WAF + Shield Advanced]
↓
[API Gateway HTTP API ou Application Load Balancer]
↓
┌────────────────────────┼────────────────────────┐
↓ ↓ ↓
[Lambda functions] [ECS Fargate tasks] [EKS pods auto-scaled]
pour serverless pour containers pour orchestration
↓ ↓ ↓
└────────┬───────────────┴────────┬───────────────┘
↓ ↓
[Aurora Serverless v2] [DynamoDB on-demand]
pour relational pour NoSQL haute scale
↓ ↓
[ElastiCache Redis cluster]
↓
[S3 Intelligent-Tiering + Glacier lifecycle]
pour archives
↓
[Observability : CloudWatch + X-Ray + EventBridge + Step Functions]
[Sécurité : IAM + KMS + Secrets Manager + GuardDuty + Security Hub]
[Gouvernance : Organizations + SCP + Control Tower + Config]
Cette architecture cloud-native moderne sert de référence pour les startups et scale-ups ouest-africaines qui veulent éviter le legacy ops.
Coûts détaillés en FCFA pour cas réel PME
PME 30 employés, 1 application web SaaS, 10 000 utilisateurs actifs/mois :
Service Coût/mois
------- ---------
EC2 t3.medium x2 (ALB + workers) 90 USD
RDS db.t3.micro Multi-AZ 28 USD
S3 + CloudFront (50 Go transfer) 35 USD
ALB + Route 53 25 USD
Backup + monitoring 15 USD
NAT Gateway (alternative : NAT Instance) 32 USD (ou 8 USD)
---------
Total 225 USD/mois
≈ 135 000 FCFA/mois
≈ 1 620 000 FCFA/an
Vs hébergement OVH/Hetzner classique : ~80 USD/mois mais sans HA, sans CDN, sans backup automatisé. AWS premium justifié pour fiabilité + scaling.
Avec Reserved Instances 3 ans : 35 % économie → 145 USD/mois ≈ 87 000 FCFA/mois.
Plan de carrière post-AWS SAA détaillé
0-12 mois : décrocher poste cloud engineer junior dans ESN cloud (Smart Africa, ETRILABS, Kasi Insight, agences Microsoft/AWS partner) ou directement chez client final (banque, opérateur, fintech). Salaire 800 000-1 200 000 FCFA. Activités : provisioning Terraform, déploiement CI/CD, monitoring CloudWatch, support N1/N2.
12-30 mois : monter compétence DevOps + sécurité cloud. Certifications cibles : AWS DevOps Pro (DOP-C02) ou AWS Security Specialty (SCS-C02). Salaire 1 400 000-2 000 000 FCFA. Activités : automation IaC, optimisation coûts (FinOps), implémentation Zero Trust, gestion incidents production.
30-60 mois : positions architecte ou tech lead. Cert AWS Solutions Architect Professional (SAP-C02). Salaire 2 200 000-3 500 000 FCFA local, 4-7 millions FCFA en remote international.
60+ mois : Cloud Architect senior, Engineering Manager, Principal Engineer ou freelance/consulting. Plateformes remote : Toptal, Malt, A.Team, Andela. Tarifs day rate 400-800 USD pour profils seniors AWS+Kubernetes+AI/ML.
Outils et frameworks complémentaires
IaC : Terraform (cross-cloud, le plus utilisé en 2026), AWS CDK (Python/TypeScript), Pulumi (alternative moderne), CloudFormation (legacy mais utile pour AWS-specific).
CI/CD : GitHub Actions (le plus populaire), GitLab CI, AWS CodePipeline (intégré AWS), CircleCI, Jenkins (legacy).
Container orchestration : Amazon ECS (managed), Amazon EKS (Kubernetes), Fargate (serverless containers).
Observability : CloudWatch (de base), Datadog (premium SaaS), New Relic, Grafana Cloud avec Prometheus.
FinOps : AWS Cost Explorer + Budgets + Compute Optimizer, Vantage.sh (alternative), CloudHealth, Apptio Cloudability.
Security : Prowler (audit script open-source), Cloudsploit, AWS Security Hub, Wiz, Lacework.