13 août 2026
De zéro connaissance à véritablement prêt à l’emploi comme ingénieur cloud.
Vous vous formez pour être ingénieur cloud : la personne qui construit des serveurs avec du code, maintient les systèmes en vie à 3 heures du matin, automatise les tâches ennuyeuses, et sait regarder un système en panne et découvrir calmement pourquoi. C’est un métier qui se pratique avec les mains, et ce cours le traite comme tel. Vous passerez bien plus de temps à taper qu’à lire — chaque module comporte des labs (travaux pratiques), et les labs sont le cours. Lire sur le cloud construit la reconnaissance ; construire dans le cloud construit une carrière.
Le cours comporte cinq étapes. Étape 0 (Semaines 1–4) : Fondations — comment fonctionnent réellement les ordinateurs et les réseaux, et Linux, le système d’exploitation sur lequel tourne le cloud. Étape 1 (Semaines 5–12) : Le cœur du cloud, en pratique — les cinq services AWS qui apparaissent dans chaque description de poste, appris sous forme de labs que vous construisez puis démontez. Étape 2 (Semaines 13–20) : Automatisation — scripting, Git, Terraform, CI/CD et conteneurs : les compétences qui séparent un ingénieur d’un cliqueur de console. Étape 3 (Semaines 21–28) : Opérations — supervision, incidents, sécurité et coûts : les compétences pour lesquelles on vous paie réellement. Étape 4 (Mois 8–12) : Préparation à l’emploi — trois projets de portfolio, trois certifications et un entraînement aux entretiens.
Règles pour l’ensemble du cours : étudiez 1,5 à 2 heures par jour, six jours par semaine — la régularité l’emporte sur l’intensité, et c’est un métier qui s’apprend par la répétition quotidienne, comme un instrument de musique. Chaque module se termine par un tableau de Vocabulaire (les mots que vous devez posséder), un exercice « À dire à voix haute » (des phrases que vous répétez jusqu’à ce qu’elles deviennent naturelles — les entretiens d’embauche se parlent, ils ne s’écrivent pas), des Exercices pratiques, et un Jalon (Milestone) qui conditionne la progression : ne passez pas à la suite tant que vous ne savez pas le faire, car chaque étape repose sur la précédente. Dès la Semaine 1, tenez un Journal d’ingénierie : chaque lab, chaque message d’erreur, chaque correction, un paragraphe honnête. Au Mois 10, ce journal devient la matière première de votre portfolio et vos histoires d’entretien.
Une promesse en retour : rien dans ce cours ne suppose que vous sachiez quoi que ce soit. Chaque terme est défini la première fois qu’il apparaît. Si vous savez utiliser un navigateur web et que vous acceptez de taper des commandes qui vous sembleront étranges pendant les deux premières semaines, vous avez tous les prérequis qui existent.
En août 2026, nous avons extrait de vraies descriptions de poste de Cloud Engineer à partir de modèles d’employeurs et de guides de recrutement (Arc.dev, Wiz, DevsData, X0PA, Betterteam — liste complète dans les Sources). Retirez les noms d’entreprises, et les mêmes exigences reviennent encore et encore. Ce tableau est votre contrat avec le cours — chaque point demandé par un employeur correspond à l’étape qui l’enseigne :
| Ce que demandent les vraies descriptions de poste (quasi mot pour mot) | Où ce cours l’enseigne |
|---|---|
| « Connaissance des systèmes d’exploitation Linux/Unix » | Étape 0, Module 1 |
| « Expertise en réseau cloud, y compris VPC, sous-réseaux, équilibreurs de charge, DNS » | Étape 0 Module 2 + Étape 1 Lab 3 |
| « Expertise démontrée des services AWS de base, dont EC2, S3, RDS, VPC, IAM » | Étape 1 (Labs 1–5) |
| « Concevoir, développer et déployer une infrastructure cloud à l’aide d’outils d’infrastructure as code tels que Terraform, CloudFormation » | Étape 2, Module 7 |
| « Maîtrise de langages de script tels que Python, Bash, PowerShell ou Go » | Étape 2, Module 6 |
| « Construire et maintenir des pipelines CI/CD avec des outils comme Jenkins, GitLab CI ou GitHub Actions » | Étape 2, Module 8 |
| « Expérience des technologies de conteneurisation, y compris Docker et Kubernetes » | Étape 2, Module 8 |
| « Surveiller la santé et la performance de l’infrastructure à l’aide d’outils de supervision cloud natifs » | Étape 3, Module 9 |
| « Participer à la réponse aux incidents, y compris l’analyse de logs » ; « compétences en dépannage et en analyse » | Étape 3, Module 10 |
| « Mettre en œuvre et faire appliquer des contrôles de sécurité, y compris le chiffrement, la gestion des identités et des accès » ; « accès en moindre privilège » | Étape 1 Lab 5 + Étape 3 Module 10 |
| « Gérer les coûts cloud par le rightsizing des ressources, la mise en place de l’auto-scaling, l’étiquetage des ressources » | Étape 3, Module 10 |
| « Maintenir, tester et mettre en œuvre des procédures de reprise après sinistre » | Étape 3 + Projet de portfolio 3 |
| « Certifications AWS appréciées » | Calendrier de certifications de l’Étape 4 (CCP → SAA → Terraform Associate) |
| « Fournir des orientations techniques et de la documentation » ; « bonnes compétences en communication et en collaboration » | Journal + runbooks + préparation aux entretiens de l’Étape 4 |
Contexte salarial, pour savoir vers quoi vous travaillez : les salaires des ingénieurs cloud aux États-Unis se concentrent autour d’une médiane proche de 104 000 * *,avecunefourchettetypiquede * * 85K–140 K$, et des postes AWS seniors/spécialisés affichés bien au-dessus. Les postes débutants existent sous de nombreux intitulés — cloud support associate, junior cloud engineer, cloud operations engineer — et ce cours cible exactement leurs exigences.
La grande idée : un serveur n’est qu’un ordinateur dont le travail est de servir d’autres ordinateurs. Le laptop devant vous et les machines qui font tourner Netflix diffèrent par la taille et la fiabilité, pas par la nature : les deux sont un CPU (la partie qui fait le travail), de la mémoire/RAM (l’espace de travail rapide à court terme, effacé au redémarrage), un disque (le stockage lent à long terme qui survit aux redémarrages) et une carte réseau (la connexion à tout le reste), le tout coordonné par un système d’exploitation (OS). Votre laptop tourne probablement sous Windows ou macOS. Les serveurs tournent massivement sous Linux — un OS gratuit et open source, stable, scriptable, et contrôlé entièrement par des commandes tapées. Ce dernier point est l’essentiel : on ne peut pas automatiser des clics de souris, mais on peut automatiser des commandes, et l’ingénierie cloud est de l’automatisation. Votre première fluidité sera donc le terminal.
Le terminal, démystifié. Le terminal (ou « shell » —
le programme à l’intérieur est généralement Bash) est
une conversation textuelle avec l’ordinateur. Vous tapez une commande ;
il répond. C’est tout. Le $ que vous verrez dans les
exemples est le prompt (l’invite) — le shell qui dit «
à vous ». Sous Linux, tout est fichier, les fichiers vivent dans un
arbre unique qui commence à la racine /, et votre dossier
personnel est /home/votrenom (surnom : ~). Un
chemin (path) est l’adresse d’un fichier dans cet arbre
: /home/anna/notes.txt.
Procurez-vous un Linux pour vous entraîner (choisissez-en un, dix minutes) : sous Windows, installez WSL (Windows Subsystem for Linux — un vrai Linux Ubuntu à l’intérieur de Windows : https://learn.microsoft.com/en-us/windows/wsl/install) ; sur un Mac, l’application Terminal intégrée est assez proche pour commencer (macOS est un cousin d’Unix) ; ou attendez la Semaine 5, où vous louerez gratuitement un vrai serveur Linux chez AWS. WSL est la meilleure réponse pour la plupart des gens.
Les 25 commandes essentielles — ce tableau, c’est les Semaines 1–2. Tapez chacune d’elles, de nombreuses fois :
| Commande | Ce qu’elle fait | Exemple |
|---|---|---|
pwd |
Print working directory — « où suis-je ? » | pwd |
ls |
Lister les fichiers ici (-l détail long,
-a inclure les cachés) |
ls -la |
cd |
Change directory — se déplacer dans l’arbre | cd /var/log |
mkdir |
Créer un répertoire (dossier) | mkdir projects |
touch |
Créer un fichier vide | touch notes.txt |
cp |
Copier un fichier (-r pour les dossiers) |
cp a.txt backup.txt |
mv |
Déplacer ou renommer | mv old.txt new.txt |
rm |
Supprimer — définitivement, pas de corbeille. Respectez-la. | rm notes.txt |
cat |
Afficher tout le contenu d’un fichier | cat notes.txt |
less |
Lire un long fichier page par page (q pour
quitter) |
less /var/log/syslog |
head / tail |
Premières / dernières lignes d’un fichier. tail -f suit
un log en direct — un classique des opérations |
tail -f app.log |
grep |
Chercher un motif dans du texte — la commande d’exploitation la plus utilisée de toutes | grep "ERROR" app.log |
find |
Trouver des fichiers par nom/taille/âge | find / -name "*.conf" |
echo |
Afficher du texte (souvent vers des fichiers ou des variables) | echo "hello" |
nano |
Un éditeur de texte convivial dans le terminal | nano notes.txt |
man |
Le manuel de n’importe quelle commande (q pour
quitter) |
man grep |
sudo |
Exécuter une commande en tant qu’admin tout-puissant (« root »). Avec respect. | sudo apt update |
apt |
Installer/mettre à jour des logiciels (famille Ubuntu/Debian) | sudo apt install htop |
chmod |
Changer les permissions d’un fichier | chmod 644 notes.txt |
chown |
Changer le propriétaire d’un fichier | sudo chown anna file |
ps |
Lister les processus en cours (ps aux pour tous) |
ps aux |
top (ou htop) |
Tableau de bord en direct CPU/mémoire/processus — « pourquoi le serveur est-il lent ? » commence ici | top |
df -h / du -sh |
Espace disque libre / espace utilisé par un dossier — « le disque est plein » commence ici | df -h |
ssh |
Se connecter au terminal d’une autre machine via le réseau — la porte d’entrée de l’ingénieur cloud | ssh anna@server-ip |
curl |
Faire une requête web depuis le terminal — « le site est-il en ligne ? » | curl https://example.com |
Les permissions, version 60 secondes. Chaque fichier
a un propriétaire et un mode comme rwxr-xr-- : trois
triplets — propriétaire, groupe, tout le monde — de r
(read, lecture), w (write, écriture),
x (execute, exécution). En chiffres : r=4, w=2, x=1,
donc chmod 755 script.sh signifie « le propriétaire peut
tout faire (7=4+2+1) ; tous les autres peuvent le lire et l’exécuter
(5=4+1) ». Quand un programme « n’a pas la permission », c’est le
système qui dit non — et désormais vous savez lire pourquoi.
SSH, version 60 secondes. ssh ouvre un
terminal distant sécurisé sur une autre machine — depuis votre laptop
vers un serveur en Virginie comme si vous étiez assis devant. Au lieu de
mots de passe, les professionnels utilisent une paire de
clés : une clé privée (un fichier secret sur votre laptop,
jamais partagé) et une clé publique (placée sur le serveur). Elles
s’emboîtent comme une clé et une serrure. Chaque serveur AWS que vous
lancerez à l’Étape 1 vous remettra exactement cela.
Processus et services : un
processus est un programme en cours d’exécution ; un
service (ou « daemon », démon) est un processus qui
tourne en permanence en arrière-plan — serveurs web, bases de données.
systemctl status nginx demande à Linux « le service nginx
est-il en bonne santé ? » — une phrase que vous taperez
professionnellement pendant des années.
Vocabulaire :
| Terme | Définition |
|---|---|
| Serveur | Un ordinateur dont le travail est de servir d’autres ordinateurs. Dans le cloud, un que vous louez. |
| CPU / RAM / disque | Le travailleur, l’espace de travail temporaire rapide (effacé au redémarrage), et le stockage permanent lent. |
| Système d’exploitation (OS) | Le logiciel qui fait tourner la machine et héberge les programmes. Les serveurs tournent sous Linux. |
| Linux / distribution | L’OS serveur gratuit et open source. Une « distro » (Ubuntu, Amazon Linux, Debian) en est une déclinaison packagée. |
| Terminal / shell / Bash | L’interface texte vers l’OS / le programme qui interprète vos commandes / le nom du shell standard. |
| Prompt (invite) | Le $ — le shell qui attend votre commande. |
| Répertoire / chemin | Un dossier / l’adresse complète d’un fichier dans l’arbre unique qui
commence à /. |
| Root (deux sens) | Le sommet de l’arbre de fichiers (/) et
l’utilisateur admin tout-puissant. Le contexte vous dit lequel. |
sudo |
« Superuser do » — exécuter une commande avec les pouvoirs d’admin. |
| Permissions (rwx) | Règles par fichier sur qui peut lire, écrire, exécuter — affichées en triplets pour propriétaire/groupe/tout le monde. |
| Processus / service (daemon) | Un programme en cours d’exécution / un qui tourne en permanence en arrière-plan (serveurs web, bases de données). |
| SSH / paire de clés | Connexion distante sécurisée au terminal d’une autre machine / les fichiers de clés privée+publique qui remplacent les mots de passe. |
| Log (journal) | Un fichier texte où le logiciel écrit ce qui s’est passé — le premier endroit où regarder quand quelque chose casse. |
| Gestionnaire de paquets | L’installateur de l’OS (apt, yum) — du
logiciel par commande, pas par page de téléchargement. |
Vidéos pour ce module (liens vérifiés) :
| Vidéo | Chaîne | Durée | Lien |
|---|---|---|---|
| Linux Operating System — Crash Course for Beginners | freeCodeCamp | ~2 h | https://www.youtube.com/watch?v=ROjZy1WbCIA |
| WSL install guide (référence, pas une vidéo) | Microsoft Learn | — | https://learn.microsoft.com/en-us/windows/wsl/install |
À dire à voix haute jusqu’à ce que ce soit naturel : “Let me SSH in and check the logs.” (« Je vais me connecter en SSH et vérifier les logs. ») · “Grep the log for the error, then tail -f it while we retry.” (« Greppez le log pour trouver l’erreur, puis faites un tail -f pendant qu’on réessaie. ») · “It’s a permissions problem — who owns the file and what’s the mode?” (« C’est un problème de permissions — qui possède le fichier et quel est le mode ? ») · “Check top — is it CPU, memory, or disk?” (« Regardez top — c’est le CPU, la mémoire ou le disque ? »)
Exercices : (1) Dans votre terminal Linux,
construisez une petite arborescence de projet avec mkdir et
touch, copiez et déplacez des choses, puis supprimez le
tout — en narrant chaque commande à voix haute. (2) Créez
hello.sh contenant
echo "hello from $(whoami)", rendez-le exécutable avec
chmod +x, exécutez-le avec ./hello.sh. (3)
Lancez tail -f sur un fichier de log (sous Ubuntu :
sudo tail -f /var/log/syslog) et regardez les lignes
arriver. (4) Journal : expliquez à un ami imaginaire pourquoi les
serveurs tournent sous Linux, en trois phrases.
Jalon : sans notes, vous savez naviguer n’importe où
dans l’arbre de fichiers, créer/copier/déplacer/supprimer des fichiers,
expliquer chmod 755, et utiliser grep pour
trouver un mot dans un fichier. Si l’un de ces points exige de chercher
quelque chose, passez deux jours de plus ici. Ce module est porteur pour
tout le reste.
La grande idée : un réseau, ce sont des ordinateurs
qui se passent des enveloppes adressées. Chaque machine reçoit une
adresse IP (comme 172.31.8.14 — une
adresse postale numérique). Les données sont découpées en
paquets (des enveloppes) et acheminées saut par saut
vers l’adresse de destination. À l’arrivée, un numéro de
port indique à quel programme l’enveloppe est destinée
— le même immeuble, des milliers de portes numérotées : le port
22 est SSH, 80 le web non chiffré
(HTTP), 443 le web chiffré
(HTTPS), 5432 PostgreSQL. « Ouvrir le
port 443 » signifie « autoriser les enveloppes adressées à la porte 443
».
Privé vs public : votre domicile et chaque réseau
cloud réutilisent des plages d’IP privées
(10.x.x.x, 172.16–31.x.x,
192.168.x.x) qui ne fonctionnent qu’à l’intérieur du réseau
local ; une IP publique est joignable depuis tout
l’internet. Cette séparation est le socle de la sécurité cloud : ce qui
n’a pas besoin de faire face à l’internet ne reçoit aucune adresse
publique du tout.
DNS — l’annuaire téléphonique de l’internet. Les
humains utilisent des noms (example.com) ; les paquets ont
besoin de numéros. Le DNS traduit : votre machine
demande à un serveur DNS « quelle est l’IP de example.com ? », obtient
le numéro, puis se connecte. La moitié des pannes mystérieuses
impliquent le DNS ; la blague du métier “it’s always DNS” (« c’est
toujours le DNS ») existe parce que c’est souvent vrai.
nslookup example.com effectue la résolution à la main.
HTTP — comment parle le web. Un
client (navigateur) envoie une requête — une
méthode (GET = récupérer,
POST = soumettre) plus un chemin — et le
serveur répond avec un code de statut
: 200 OK, 301 déplacé, 403
interdit, 404 introuvable, 500 erreur serveur,
502/503 « le serveur derrière moi est
cassé/surchargé ». Mémorisez ces six-là ; en tant qu’ingénieur, vous les
lirez quotidiennement. curl -I https://example.com vous
montre une ligne de statut et des en-têtes en direct.
Les pare-feu : une liste de règles décidant quels paquets peuvent passer, selon la source, la destination et le port — « autoriser 443 depuis partout ; autoriser 22 uniquement depuis le bureau ; refuser le reste ». Dans AWS, le pare-feu par serveur s’appelle un groupe de sécurité (security group), et les groupes mal configurés sont le trou de sécurité n°1 du débutant. La latence (le délai, en millisecondes) et la bande passante (la capacité par seconde) complètent le vocabulaire : la distance crée de la latence, raison pour laquelle les clouds ont des régions dans le monde entier.
Maintenant, votre compte AWS — la seconde moitié de ce module. Rendez-vous sur https://aws.amazon.com/free et créez un compte Free Tier (offre gratuite) (e-mail, téléphone, carte de crédit/débit pour l’identité — la carte n’est pas réellement débitée si vous suivez la discipline de teardown de ce cours). Le Free Tier donne des allocations mensuelles des services de base (dont 750 heures/mois d’un petit serveur EC2 la première année) et chaque lab de ce cours est conçu pour y tenir. Ensuite, avant toute autre chose, trois étapes de sécurité non négociables — les réaliser est le premier exercice de votre carrière en sécurité :
Vocabulaire :
| Terme | Définition |
|---|---|
| Adresse IP | L’adresse réseau numérique d’une machine, p. ex.
172.31.8.14. |
| Paquet | Une enveloppe de données adressée ; tout le trafic en est un flux. |
| Port | Une porte numérotée sur une machine identifiant le programme destinataire du trafic : 22 SSH, 80 HTTP, 443 HTTPS. |
| IP privée / publique | Une adresse valable uniquement dans un réseau local / une adresse joignable depuis tout l’internet. |
| DNS | Le système qui traduit les noms (example.com) en adresses IP. “It’s always DNS.” |
| HTTP / HTTPS | Le protocole requête-réponse du web / le même, chiffré avec TLS. |
| Code de statut | Le résumé de la réponse du serveur : 200 OK, 404 introuvable, 500 erreur serveur, 503 surchargé. |
| Pare-feu | La liste de règles décidant quels paquets passent, selon source, destination, port. |
| Groupe de sécurité | Le pare-feu par serveur d’AWS. En configurer un de travers est le trou classique du débutant. |
| Latence / bande passante | Délai (ms) / capacité (par seconde). La distance crée de la latence. |
| Client / serveur (rôles) | Celui qui demande et celui qui répond dans toute conversation réseau. |
| AWS Free Tier | L’allocation mensuelle gratuite d’un nouveau compte AWS — le budget entier de ce cours. |
| Utilisateur root | L’identité maîtresse du compte AWS. Protégez-la par MFA, puis cessez de l’utiliser. |
| Alerte de facturation / budget | L’e-mail automatique quand la dépense franchit un seuil. Le vôtre est réglé à 0 $. |
Vidéos pour ce module :
| Vidéo | Chaîne | Durée | Lien |
|---|---|---|---|
| What is AWS? | Amazon Web Services (official) | ~2 min | https://www.youtube.com/watch?v=a9__D53WsUs |
| Top 50+ AWS Services Explained in 10 Minutes | Fireship | ~10 min | https://www.youtube.com/watch?v=JIbIYCM48to |
| AWS Networking Basics — VPC & Subnets | KodeKloud | ~30 min | https://www.youtube.com/watch?v=QM63dyA_4Pc |
À dire à voix haute : “What’s the IP, and is it public or private?” (« Quelle est l’IP, et est-elle publique ou privée ? ») · “Is port 443 open in the security group?” (« Le port 443 est-il ouvert dans le groupe de sécurité ? ») · “Curl it — what status code do you get?” (« Faites un curl — quel code de statut obtenez-vous ? ») · “Did DNS resolve? Check with nslookup before blaming the server.” (« Le DNS a-t-il résolu ? Vérifiez avec nslookup avant d’accuser le serveur. »)
Exercices : (1) ping google.com (notez
la latence), nslookup google.com (notez que le DNS renvoie
plusieurs IP), curl -I https://aws.amazon.com (lisez la
ligne de statut et trois en-têtes, puis cherchez la signification de
chacun). (2) Trouvez l’IP privée de votre machine (ip addr
sous Linux) et votre IP publique (cherchez « what is my IP ») —
expliquez dans votre journal pourquoi elles diffèrent. (3) Terminez la
configuration du compte AWS : MFA, utilisateur admin, budget zéro
dépense — capture d’écran du budget pour votre journal. (4) Dessinez de
mémoire : laptop → résolution DNS → requête HTTPS sur le port 443 →
pare-feu → serveur web. Trois fois, jusqu’à ce que ce soit
automatique.
Jalon — fin de l’Étape 0 : vous savez narrer ce qui se passe quand vous tapez une URL et appuyez sur Entrée — DNS, IP, port, pare-feu, requête HTTP, code de statut — en moins de deux minutes, en utilisant chaque terme correctement ; et votre compte AWS existe avec la MFA et une alerte de budget à 0 $. Vous en savez désormais plus sur le fonctionnement de l’internet que la plupart des gens qui en vivent. L’Étape 1 est celle où vous commencez à construire dessus.
Comment fonctionne cette étape. Chacun des cinq services ci-dessous est un Lab : un objectif, un plan d’étapes (assez détaillé pour être suivi, assez court pour vous obliger à réfléchir — la réflexion, c’est l’apprentissage), ce que vous avez appris, et — toujours — le teardown (démontage). La discipline du teardown compte doublement : elle vous maintient dans le Free Tier, et « ne rien laisser tourner qui ne soit pas nécessaire » est un réflexe professionnel que les recruteurs sondent réellement en entretien. Reconstruisez chaque lab au moins deux fois : une fois en suivant le plan, une fois de mémoire. La seconde construction est celle où le savoir passe dans vos mains. Prévoyez environ une semaine et demie par lab ; utilisez la marge pour la casse, car des choses vont casser, et les déboguer est le meilleur enseignement que ce cours ne peut pas scénariser.
D’abord, trois idées qui cadrent tout ce que vous allez construire.
Régions et zones de disponibilité : une Région est un
groupe géographique de centres de données AWS (choisissez-en une proche
de vous et restez-y — les ressources d’une région sont invisibles depuis
une autre, la confusion n°1 du « où est passé mon serveur ? »). Une
zone de disponibilité (Availability Zone, AZ) est un
centre de données isolé au sein de la région ; les systèmes sérieux
tournent dans deux AZ pour que la défaillance d’un bâtiment ne les fasse
pas tomber. La console vs la CLI : la console
(https://console.aws.amazon.com) est le panneau de contrôle web d’AWS —
parfaite pour apprendre et observer ; la CLI AWS
(aws dans votre terminal) fait tout ce que fait la console,
de façon scriptable. Vous commencerez dans la console et passerez à la
CLI, car l’Étape 2 automatise tout ce que vous faites ici à la main.
EC2 (Elastic Compute Cloud) loue des machines virtuelles, appelées instances. C’est l’acte primal de l’ingénierie cloud : un vrai serveur Linux, sur l’internet, en 60 secondes, gratuitement.
Objectif : lancer un serveur Linux, s’y connecter en SSH, lui faire servir une page web au monde entier, puis le détruire.
Plan des étapes : 1. Console → EC2 → Launch
instance. Nommez-la. Choisissez Amazon Linux 2023 comme
AMI (Amazon Machine Image — le disque modèle depuis
lequel votre serveur démarre) et t2.micro ou
t3.micro comme type d’instance (la
taille ; ceux-ci sont dans le Free Tier). 2. Créez une paire de
clés ; un fichier de clé privée .pem se
télécharge. C’est votre clé SSH du Module 1 — gardez-la précieusement,
faites-lui un chmod 400. 3. Dans les paramètres réseau,
autorisez SSH (port 22) depuis « My IP » uniquement — vous
savez exactement ce que signifie cette règle de groupe de sécurité
désormais — et autorisez HTTP (port 80) depuis partout. 4. Lancez,
attendez « running », copiez l’IP publique, puis depuis votre terminal :
ssh -i mykey.pem ec2-user@<public-ip>. Respirez un
coup : vous êtes à l’intérieur d’un ordinateur dans un centre de données
AWS. 5. Sur le serveur :
sudo dnf install -y nginx && sudo systemctl start nginx && sudo systemctl enable nginx.
Puis naviguez vers http://<public-ip> — c’est
votre serveur web qui répond au monde. 6. Remplacez la page par
défaut :
echo "<h1>Built by me, on EC2</h1>" | sudo tee /usr/share/nginx/html/index.html.
Rafraîchissez. Capture d’écran pour le journal. 7. Fouillez comme un
ingénieur : top, df -h,
sudo tail -f /var/log/nginx/access.log pendant que vous
rafraîchissez la page — regardez vos propres visites arriver dans le
log.
Ce que vous avez appris : les AMI, les types d’instance, les paires de clés, les groupes de sécurité en conditions réelles, le SSH vers un vrai serveur, l’installation et l’exécution d’un service Linux, la lecture de ses logs — c’est-à-dire les gestes physiques quotidiens du métier.
Teardown : EC2 → sélectionner l’instance → Instance state → Terminate. Confirmez qu’elle affiche « terminated ». Le Free Tier donne 750 heures/mois d’une instance micro, donc même la laisser tourner n’aurait rien facturé — mais démontez-la quand même. L’habitude est le but.
S3 (Simple Storage Service) est du stockage objet : un seau sans fond, durable à onze neufs, pour les fichiers. C’est la réponse par défaut à « où met-on les fichiers ? » et, mal configuré, la source des fuites de données les plus célèbres de l’histoire — raison pour laquelle ce lab est à moitié stockage, à moitié sécurité.
Objectif : créer un bucket, le manipuler depuis la CLI, héberger un minuscule site web statique, et comprendre exactement ce que signifie « bucket public ».
Plan des étapes : 1. Console → S3 → Create bucket
(les noms sont uniques au niveau mondial —
yourname-lab-2026 fonctionne). Notez que Block
Public Access est activé par défaut. Téléversez n’importe quel
fichier via la console ; retéléchargez-le. 2. Installez la CLI AWS
localement et exécutez aws configure avec une clé
d’accès (access key) que vous créez pour votre utilisateur
admin IAM (une clé d’accès est un identifiant+mot de passe
programmatique pour l’API — traitez-la comme un mot de passe, ne la
mettez jamais dans du code ; vous intérioriserez cette règle au Lab 5).
3. Depuis votre terminal : aws s3 ls ·
aws s3 cp notes.txt s3://yourname-lab-2026/ ·
aws s3 sync ./myfolder s3://yourname-lab-2026/backup/.
Sentez la différence : la console, c’est de la visite ; la CLI, c’est de
l’ingénierie. 4. Site web statique : créez un second bucket, activez
l’hébergement de site statique, téléversez un index.html,
et ajoutez la bucket policy (politique de bucket) de
lecture publique documentée (un document JSON de permissions — lisez-le
ligne par ligne : qui peut faire quoi sur
quel bucket). Votre page est désormais sur l’internet sans
aucun serveur. 5. Explorez les classes de stockage
(Standard → Infrequent Access → Glacier : moins cher par Go, plus
lent/coûteux à récupérer) et définissez une règle de cycle de
vie (« déplacer les objets vers IA après 30 jours ») — votre
premier avant-goût de gestion de coûts automatisée.
Ce que vous avez appris : le stockage objet vs les disques, la CLI et les clés d’accès, les bucket policies et l’accès public (délibérément, pas accidentellement), les niveaux de stockage comme levier de coût.
Teardown : videz les deux buckets, supprimez les deux buckets, et — important — désactivez toute clé d’accès que vous n’utilisez pas. L’allocation gratuite de S3 est petite (5 Go) mais ces fichiers pèsent des kilo-octets ; la discipline, encore une fois, est le but.
VPC (Virtual Private Cloud) est votre tranche privée et clôturée du réseau d’AWS. Jusqu’ici vous utilisiez celle par défaut sans la regarder ; les ingénieurs construisent la leur, car la phrase « la base de données se trouve dans un sous-réseau privé sans route vers l’internet » est la moitié de la sécurité cloud, et vous allez la rendre vraie de vos propres mains.
Objectif : construire un réseau à deux niveaux — sous-réseau public pour un serveur web, sous-réseau privé pour une future base de données — et prouver que la moitié privée est injoignable depuis l’internet.
Plan des étapes : 1. Console → VPC → Create VPC.
Donnez-lui le bloc d’adresses 10.0.0.0/16 — la
notation CIDR, où /16 signifie « les 16
premiers bits sont fixes, le reste est à moi » : 65 536 adresses
privées. 2. Créez deux sous-réseaux (subnets) :
10.0.1.0/24 (public, dans l’AZ-a) et
10.0.2.0/24 (privé, dans l’AZ-b). Un sous-réseau est un
bloc plus petit au sein du VPC, vivant dans exactement une AZ. 3. Créez
une Internet Gateway (passerelle internet — la porte du
VPC vers l’internet) et attachez-la. Créez une table de
routage avec la règle 0.0.0.0/0 → internet gateway
(« tout ce qui n’est pas local va vers la porte internet ») et
associez-la au sous-réseau public uniquement. Le sous-réseau
privé ne garde que la route locale — cette absence de route est
la sécurité. 4. Lancez une instance EC2 micro dans chaque sous-réseau
(la publique avec une IP publique, la privée sans). 5. La preuve : SSH
vers l’instance publique — ça fonctionne. Essayez l’adresse de
l’instance privée depuis votre laptop — ça bloque indéfiniment, et vous
savez désormais dire précisément pourquoi. Puis faites SSH
depuis l’instance publique vers la privée (elle est
joignable depuis l’intérieur du VPC) : la machine publique joue le rôle
de bastion (bastion host), un motif standard de
l’industrie que vous venez de découvrir en le construisant. 6. Concept
bonus à rechercher et consigner : une NAT gateway
(passerelle NAT) permet aux machines privées d’appeler vers
l’extérieur (pour les mises à jour) tout en restant injoignables de
l’extérieur — mais elle facture à l’heure, alors lisez à son sujet, ne
la construisez pas.
Ce que vous avez appris : CIDR, sous-réseaux, tables de routage, passerelles internet, la séparation public/privé, les bastions — le point réseau exact de chaque description de poste cloud, en mémoire musculaire.
Teardown : terminez d’abord les deux instances, puis supprimez le VPC (qui emporte avec lui sous-réseaux, tables de routage et passerelle). Vérifiez dans EC2 que rien n’affiche « running ».
RDS (Relational Database Service) est une base de données managée : AWS fait tourner le moteur de base de données (PostgreSQL, MySQL…) et gère les sauvegardes, les correctifs et le failover (bascule automatique), tandis que vous possédez les données et les requêtes. Le « service managé » est le marché central du cloud — échanger un peu de contrôle contre beaucoup de labeur indifférencié — et ce lab est celui où vous ressentez ce marché.
Objectif : lancer une base PostgreSQL dans un sous-réseau privé, s’y connecter depuis une instance EC2, et comprendre les sauvegardes et le multi-AZ — puis la démonter promptement, car RDS est le lab le plus facile à laisser tourner par accident.
Plan des étapes : 1. Reconstruisez rapidement le VPC
du Lab 3 (seconde construction de mémoire — c’est de la répétition
espacée délibérée), en ajoutant un second sous-réseau privé
dans une autre AZ, car RDS exige un groupe de sous-réseaux
(subnet group) couvrant deux AZ. 2. Console → RDS → Create
database → PostgreSQL → modèle Free tier (cela
présélectionne db.t3.micro/db.t4g.micro,
mono-AZ). Définissez le mot de passe maître. Placez-la dans votre VPC,
Public access: No, dans un groupe de sécurité qui
autorise le port 5432 uniquement depuis le groupe de sécurité du
serveur web — une règle qui référence une autre règle plutôt qu’une
IP. Élégant, et standard. 3. Lancez une EC2 micro dans le sous-réseau
public, installez le client postgresql, et connectez-vous :
psql -h <rds-endpoint> -U postgres.
L’endpoint (point de terminaison) est un nom DNS, pas
une IP — AWS peut déplacer la machine sous-jacente, et le nom la suit.
(Le Module 2 paie déjà son loyer.) 4. À l’invite psql :
créez une table, insérez trois lignes, relisez-les avec un select. Vous
n’avez pas besoin de profondeur SQL aujourd’hui ; vous avez besoin d’y
avoir touché. 5. Visitez sans activer : le réglage des
sauvegardes automatiques (restauration à un instant
donné à partir de snapshots nocturnes + logs), et l’option
Multi-AZ (une réplique de secours en direct dans une
autre AZ avec failover automatique — environ le double
du coût, raison pour laquelle la prod dit oui et les labs disent non).
Prenez un snapshot manuel, retrouvez-le dans la
console, comprenez que vous pourriez en restaurer un clone. 6. Question
de journal qui vaut dix minutes : que fait AWS pour vous ici,
exactement, que vous devriez sinon faire vous-même à 2 heures du matin ?
(Correctifs, sauvegardes, failover, matériel.) Cette réponse est la
réponse d’entretien sur les services managés.
Ce que vous avez appris : les bases de données managées, les groupes de sous-réseaux, les règles de groupe de sécurité à groupe de sécurité, les endpoints, les snapshots, le multi-AZ/failover — plus une démonstration en direct du fait de payer en contrôle pour acheter de la fiabilité.
Teardown : supprimez l’instance RDS (refusez le snapshot final pour un lab ; notez que la prod en prendrait un), supprimez le snapshot manuel (les snapshots facturent le stockage !), terminez l’EC2, supprimez le VPC. Vérifiez votre tableau de bord de facturation le lendemain — le lire chaque semaine est une habitude de l’Étape 3 qui commence maintenant.
IAM (Identity and Access Management) décide quelles personnes et quels programmes peuvent faire quoi sur quelles ressources. Il ne facture rien, ne provisionne rien — et c’est le service le plus audité, le plus sondé en entretien et le plus impliqué dans les brèches de tout AWS. Les points sécurité des descriptions de poste (« contrôles d’accès en moindre privilège », « politiques IAM ») signifient ce lab.
Objectif : créer des utilisateurs, des groupes, des politiques et — la cruciale — un rôle, et intérioriser le moindre privilège en vous faisant refuser par AWS.
Plan des étapes : 1. Les concepts d’abord, cinq
minutes : un utilisateur est une identité pour un
humain ou un programme ; un groupe regroupe des
utilisateurs ; une politique (policy) est un document
JSON accordant des permissions (« allow s3:GetObject on
arn:aws:s3:::my-bucket/* ») ; un rôle est
une identité avec des politiques mais sans mot de passe, qu’une
partie de confiance assume temporairement — c’est ainsi que les
serveurs et services obtiennent des permissions sans aucun secret
stocké. 2. Créez une utilisatrice readonly-rita dans un
groupe doté de la politique managée AWS ReadOnlyAccess.
Connectez-vous avec elle dans une fenêtre de navigation privée : elle
voit tout, mais chaque bouton de création/suppression échoue avec un
refus explicite. Lisez entièrement l’une de ces erreurs — apprendre à
décoder « not authorized to perform X on Y » est une compétence
quotidienne du métier. 3. Écrivez votre première politique personnalisée
dans l’éditeur JSON : autorisez s3:ListBucket et
s3:GetObject sur un bucket spécifique. Attachez-la à une
nouvelle utilisatrice ; vérifiez qu’elle peut lire ce bucket et rien
d’autre. Vous venez de mettre en œuvre le moindre privilège, pas
seulement de le définir. 4. Le rôle, la récompense : créez un rôle pour
EC2 avec AmazonS3ReadOnlyAccess, lancez une instance micro
avec ce rôle attaché, connectez-vous en SSH, et exécutez
aws s3 ls — cela fonctionne avec aucune clé d’accès
nulle part sur la machine. L’instance assume le rôle et reçoit
automatiquement des identifiants de courte durée. C’est le motif de
sécurité le plus important d’AWS : des rôles pour les machines,
jamais de clés sur les machines. Dites-le deux fois. 5. Auditez
votre propre compte comme un pro : le root est-il sous MFA (Semaine 3) ?
Des clés d’accès de plus de 90 jours ? Un utilisateur a-t-il plus de
permissions qu’il n’en utilise ? Lancez le credential
report (rapport d’identifiants) d’IAM et lisez-le. Ce rituel de
dix minutes, mensuel, est la naissance de la checklist d’hygiène IAM de
l’Étape 3.
Ce que vous avez appris : utilisateurs/groupes/politiques/rôles, lire et écrire du JSON de politique, le moindre privilège imposé par l’expérience, des-rôles-pas-des-clés, et votre premier audit de sécurité.
Teardown : supprimez les utilisateurs de test et leurs identifiants, terminez l’instance, gardez pour toujours la connaissance des rôles.
Vocabulaire pour l’Étape 1 (un seul tableau, les cinq labs) :
| Terme | Définition |
|---|---|
| Région / zone de disponibilité | Groupe géographique de centres de données AWS / un centre de données isolé en son sein. Les systèmes sérieux couvrent deux AZ. |
| EC2 / instance | Le service de location de machines virtuelles / un serveur loué. |
| AMI | Amazon Machine Image — le disque modèle depuis lequel une instance démarre. |
| Type d’instance | La taille/spécification choisie (t3.micro = minuscule, Free Tier). |
| Groupe de sécurité | Pare-feu par ressource : quels ports, depuis quelles sources. |
| Paire de clés | Les clés SSH privée/publique pour atteindre votre instance. |
| S3 / bucket / objet | Stockage objet / un conteneur nommé / un fichier stocké. |
| Classe de stockage / règle de cycle de vie | Niveau prix-vitesse des objets / règle automatique les déplaçant vers des niveaux moins chers avec l’âge. |
| Bucket policy | Document JSON énonçant qui peut faire quoi sur un bucket. Les publics font les gros titres. |
| CLI AWS / clé d’accès | L’interface terminal vers AWS / les identifiants programmatiques pour elle (à traiter comme un mot de passe). |
| VPC / sous-réseau | Votre tranche de réseau privée / un bloc plus petit de celle-ci vivant dans une AZ, public ou privé. |
| CIDR | Notation de bloc d’adresses : 10.0.0.0/16 = « 16
premiers bits fixes, 65 536 adresses à moi ». |
| Internet gateway / table de routage | La porte internet du VPC / les règles décidant où le trafic est envoyé. Pas de route = injoignable = sécurisé. |
| NAT gateway | Permet aux machines privées d’appeler dehors sans être joignables dedans. Facture à l’heure — connaissez-la, ne la laissez pas tourner. |
| Bastion (bastion host) | La machine publique durcie par laquelle vous passez en SSH pour atteindre les privées. |
| RDS / endpoint | Service managé de base de données relationnelle / le nom DNS auquel vous vous connectez. |
| Snapshot / Multi-AZ / failover | Copie à un instant donné / réplique de secours en direct dans une seconde AZ / la bascule automatique vers elle. |
| Utilisateur / groupe / politique / rôle IAM | Identité / ensemble d’identités / octroi de permissions en JSON / identité assumable sans mot de passe — comment les machines obtiennent des permissions. |
| Moindre privilège | La règle d’or : le minimum de permissions qui fait le travail, rien de plus. |
| Service managé | AWS exécute le labeur indifférencié (correctifs, sauvegardes, failover) ; vous gardez les données et les décisions. |
Vidéos pour cette étape :
| Vidéo | Chaîne | Durée | Lien |
|---|---|---|---|
| Getting Started with EC2 | AWS Developers (official) | 27 min | https://www.youtube.com/watch?v=nJ-djerESW0 |
| Introduction to Amazon S3 | Amazon Web Services (official) | ~5 min | https://www.youtube.com/watch?v=ecv-19sYL3w |
| AWS Networking Basics — VPC & Subnets | KodeKloud (à revoir après le Lab 3 — elle résonne différemment désormais) | ~30 min | https://www.youtube.com/watch?v=QM63dyA_4Pc |
| The AWS Shared Responsibility Model | Digital Cloud Training | 4 min | https://www.youtube.com/watch?v=ESPBBEK-cvo |
À dire à voix haute : “It’s in a private subnet; there’s no route to the internet gateway.” (« C’est dans un sous-réseau privé ; il n’y a pas de route vers l’internet gateway. ») · “The security group only allows 5432 from the web tier’s security group.” (« Le groupe de sécurité n’autorise 5432 que depuis le groupe de sécurité du niveau web. ») · “The instance uses a role — there are no keys on the box.” (« L’instance utilise un rôle — il n’y a pas de clés sur la machine. ») · “Terminate it when you’re done; nothing idles in this account.” (« Terminez-la quand vous avez fini ; rien ne tourne au ralenti dans ce compte. »)
Jalon — fin de l’Étape 1 : la construction du gantelet. En une seule séance, de mémoire : VPC avec sous-réseaux public/privé → serveur web EC2 (public, rôle attaché, servant une page) → RDS PostgreSQL (privée, joignable uniquement depuis le serveur web) → un bucket S3 que l’instance peut lire via son rôle — puis démontez le tout proprement. Moins de trois heures signifie que vous êtes prêt pour l’Étape 2. Aussi : commencez la préparation du CLF-C02 maintenant (le cours complet de freeCodeCamp — https://www.youtube.com/watch?v=7HKot-brXFE — à 1,25× en révision ; l’édition classique de 14 heures est https://www.youtube.com/watch?v=NhDYbskXRgc), et passez l’examen AWS Cloud Practitioner vers la Semaine 14–16.
L’idée de cette étape : tout ce que vous avez cliqué à l’Étape 1, vous allez maintenant le faire avec du code. La légère insulte de l’industrie pour le clic dans la console est le ClickOps ; la formule de description de poste pour ce qui le remplace est « concevoir, développer et déployer une infrastructure cloud à l’aide de l’infrastructure as code ». Cette étape est la différence entre quelqu’un qui a utilisé AWS et quelqu’un qu’une entreprise paiera pour le faire tourner.
Le scripting Bash, c’est mettre les commandes du
Module 1 dans un fichier pour que l’ordinateur les répète parfaitement.
Apprenez, dans cet ordre : les variables
(NAME="web-1"), la substitution de
commande (TODAY=$(date +%F)), le
if (if [ -f "$FILE" ]; then … fi), les
boucles
(for f in *.log; do gzip "$f"; done), les codes de
sortie (chaque commande renvoie 0 en cas de succès, non-zéro en
cas d’échec ; && enchaîne sur succès — les scripts
prennent leurs décisions avec ça), et la lecture des
arguments ($1, $2). C’est 90
% du Bash d’exploitation réel. Écrivez votre premier script
véritablement utile cette semaine : backup.sh — archivez un
répertoire avec tar, nommez l’archive avec la date du jour, envoyez-la
avec aws s3 cp vers un bucket, supprimez les archives
locales de plus de 7 jours, et écrivez avec echo une ligne
de succès/échec dans un fichier de log. Ce seul script réunit variables,
substitution, conditionnelles, codes de sortie et la CLI en un seul
artefact — et un point sur votre CV (« sauvegardes automatisées vers S3
»).
Python est le grand frère de Bash : meilleur pour
tout ce qui implique de la logique, des données ou des appels d’API.
Vous avez besoin d’un Python d’exploitation fonctionnel, pas d’une
profondeur de génie logiciel : variables et types, listes et
dictionnaires, if/for, fonctions,
lecture/écriture de fichiers, gestion d’erreurs try/except,
et installation de bibliothèques avec pip. Puis rencontrez
boto3, la bibliothèque AWS pour Python :
import boto3; ec2 = boto3.client("ec2"); ec2.describe_instances()
— soudain votre savoir de l’Étape 1 devient programmable. Écrivez
audit.py : listez chaque instance EC2 du compte avec son
nom, son type, son état et son heure de lancement, et affichez une ligne
d’avertissement pour tout ce qui tourne depuis plus de 24 heures.
Félicitations — vous avez écrit un véritable outil de contrôle des coûts
pour lequel les employeurs paient.
Git est le système de gestion de versions dans
lequel vit tout le travail d’ingénierie. Les concepts : un dépôt
(repository) (un dossier dont tout l’historique est
enregistré), un commit (un instantané sauvegardé avec
un message), une branche (une ligne de travail
parallèle), un remote (la copie sur GitHub), et une
pull request (demander qu’une branche soit relue et
fusionnée). La boucle quotidienne tient en six commandes :
git init / git clone, git status,
git add, git commit -m "message",
git push, git pull. Créez un compte GitHub
aujourd’hui, créez un dépôt nommé cloud-journey, et à
partir de maintenant, chaque script et chaque config que vous
écrivez dans ce cours y est commité. Dans dix mois, cet
historique de commits est la preuve publique et datée de tout ce que ce
cours affirme que vous savez faire.
Vocabulaire :
| Terme | Définition |
|---|---|
| Script | Un fichier de commandes exécutées de haut en bas — l’atome de l’automatisation. |
| Variable / argument | Une valeur nommée dans un script / une valeur passée à l’exécution
($1). |
| Code de sortie | Le signal de succès (0) ou d’échec (non-zéro) de chaque commande — comment les scripts prennent leurs décisions. |
| Cron | Le planificateur de Linux : exécuter un script chaque nuit à 2 h, pour toujours. |
| Python / pip | Le langage de programmation préféré du monde des opérations / son installateur de paquets. |
| boto3 | La bibliothèque Python pour piloter AWS — la console, en code. |
| try/except | Le « tente ceci ; si ça échoue, fais cela à la place » de Python — comment les scripts échouent avec élégance. |
| Git / dépôt / commit | La gestion de versions / l’historique enregistré d’un projet / un instantané sauvegardé avec un message. |
| Branche / merge | Une ligne de travail parallèle / sa réintégration dans la ligne principale. |
| GitHub / remote / pull request | Le site d’hébergement / la copie cloud de votre dépôt / une demande de fusion d’une branche, relue et discutée. |
| README | Le document de première page d’un dépôt expliquant ce qu’il est et comment le lancer. Les recruteurs les lisent. |
Vidéos pour ce module :
| Vidéo | Chaîne | Durée | Lien |
|---|---|---|---|
| Learn Python — Full Course for Beginners | freeCodeCamp | ~4,5 h (à regarder sur les 3 semaines) | https://www.youtube.com/watch?v=rfscVS0vtbw |
À dire à voix haute : “I’ll script it — it’ll be wrong once, then never again.” (« Je vais le scripter — ce sera faux une fois, puis plus jamais. ») · “Check the exit code before the next step runs.” (« Vérifiez le code de sortie avant que l’étape suivante ne s’exécute. ») · “Commit it with a message that says why, not what.” (« Commitez-le avec un message qui dit pourquoi, pas quoi. ») · “It’s in the repo — pull the latest.” (« C’est dans le dépôt — tirez la dernière version. »)
Exercices : (1) backup.sh, comme
spécifié ci-dessus, planifié chaque nuit avec cron sur une instance EC2
de lab. (2) audit.py, comme spécifié ci-dessus. (3) Les
deux commités dans cloud-journey avec un README expliquant
chacun. (4) Cassez votre propre script exprès (un chemin erroné, un
bucket manquant) et faites-le échouer bruyamment et clairement
— la gestion d’erreurs est un langage d’amour des opérations.
Jalon : votre script de sauvegarde survit à deux exécutions d’affilée et à un dossier manquant (pas de crash, message clair) ; votre audit Python tourne contre votre vrai compte ; votre dépôt montre une semaine de commits.
La grande idée : au lieu de faire exister les ressources en cliquant, vous écrivez des fichiers texte déclarant ce qui doit exister — « un VPC, deux sous-réseaux, une instance, ces tags » — et Terraform fait en sorte qu’AWS corresponde au fichier. Déclaratif, pas impératif : vous énoncez la destination, pas les virages. Pourquoi chaque description de poste le demande : les fichiers vivent dans Git, donc l’infrastructure devient relue (des pull requests avant les changements), répétable (le même fichier construit dev, staging et prod à l’identique), réversible (retour en arrière en annulant le commit) et auditable (l’historique dit qui a changé quoi, quand, pourquoi). La console est un atelier ; Terraform est une usine.
La boucle centrale que vous exécuterez des centaines de fois
: terraform init (télécharger le
provider AWS — le plugin qui traduit vos fichiers en
appels d’API) → terraform plan (une répétition à blanc qui
affiche exactement ce qui serait créé/modifié/détruit — lisez chaque
ligne ; les ingénieurs qui appliquent sans lire les plans causent des
pannes) → terraform apply (le rendre réel) →
terraform destroy (le défaire — le teardown en une seule
commande, ce que vous trouverez désormais magnifique). Terraform
consigne ce qu’il a construit dans un fichier d’état (state
file) — sa mémoire de la réalité ; perdez-le ou modifiez la
réalité à la main dans son dos (le « drift », la dérive) et la douleur
suit. Les ressources se déclarent en HCL, un langage de
configuration lisible :
resource "aws_instance" "web" {
ami = "ami-0abcdef1234567890"
instance_type = "t3.micro"
tags = { Name = "web-1", Project = "lab" }
}
Le lab (c’est le module) : reconstruisez le gantelet
de l’Étape 1 en Terraform, de façon incrémentale. (1) Initialisez un
dépôt terraform-labs ; écrivez la config d’un simple bucket
S3 taggé ; plan, lecture, apply, vérification dans la console — il est
là ; destroy. (2) Faites grandir la config : VPC, deux sous-réseaux,
internet gateway, table de routage — la construction du Lab 3, désormais
~60 lignes de HCL. (3) Ajoutez le groupe de sécurité et une instance EC2
avec variables.tf (région, taille d’instance) et
outputs.tf (afficher l’IP publique après l’apply). (4)
Changez le type d’instance dans le fichier et ré-appliquez — regardez
Terraform calculer la différence et ne changer que cela. Ce
comportement piloté par le diff est toute la magie. (5) Détruisez tout,
confirmez que la console est vide, commitez, et taguez le dépôt
v1.0. La documentation de référence vit sur
https://developer.hashicorp.com/terraform — mettez-la en favori ; lire
la doc des providers est la moitié du vrai travail Terraform.
Vocabulaire :
| Terme | Définition |
|---|---|
| IaC (Infrastructure as Code) | Déclarer l’infrastructure dans des fichiers texte versionnés qu’un outil transforme en réalité. |
| Terraform / HCL | L’outil IaC multi-cloud dominant / son langage de configuration. |
| Provider | Le plugin traduisant vos fichiers en appels d’API d’un cloud (ici : AWS). |
plan / apply / destroy |
Le diff à blanc / le rendre réel / tout défaire. Lisez chaque plan. |
| Fichier d’état | Le registre de ce que Terraform a construit — sa mémoire de la réalité. Protégez-le. |
| Drift (dérive) | La réalité a changé dans le dos de Terraform (quelqu’un a cliqué). L’ennemi. |
| Variable / output / module | Une entrée de config / un résultat affiché (une IP, une URL) / un morceau de config réutilisable et packagé. |
| Déclaratif vs impératif | Énoncer la destination vs scripter les virages. Terraform est déclaratif. |
| CloudFormation | Le service IaC propre à AWS — même idée, AWS uniquement. Les descriptions de poste acceptent l’un ou l’autre ; apprenez Terraform d’abord. |
Vidéos pour ce module :
| Vidéo | Chaîne | Durée | Lien |
|---|---|---|---|
| Terraform explained in 15 mins | TechWorld with Nana | 18 min | https://www.youtube.com/watch?v=l5k1ai_GBDE |
| Terraform Course — Automate your AWS cloud infrastructure | freeCodeCamp | ~2,5 h | https://www.youtube.com/watch?v=SLB_c_ayRMo |
À dire à voix haute : “Nothing changes in prod except through Terraform.” (« Rien ne change en prod sauf via Terraform. ») · “Show me the plan before you apply.” (« Montrez-moi le plan avant d’appliquer. ») · “That was clicked in manually — that’s drift; let’s import it or remove it.” (« Ça a été cliqué à la main — c’est du drift ; importons-le ou supprimons-le. ») · “It’s in the module; reuse it, don’t rewrite it.” (« C’est dans le module ; réutilisez-le, ne le réécrivez pas. »)
Exercices : le lab ci-dessus, plus : (1) créez
délibérément du drift — changez le tag de l’instance à la main dans la
console, lancez terraform plan, et regardez Terraform s’en
apercevoir ; consignez ce qu’il a proposé. (2) Écrivez un paragraphe en
langage clair dans le README du dépôt : « pourquoi cela bat le clic ».
Si vous ne savez pas l’écrire, vous ne le possédez pas encore.
Jalon : depuis un répertoire vide, vous savez monter
la pile VPC + instance avec init/plan/apply et la retirer
avec destroy, en expliquant à voix haute ce que fait chaque
commande — sans notes.
La CI/CD (Continuous Integration / Continuous
Delivery — intégration et livraison continues) est le tapis roulant
robotisé attaché à votre dépôt Git : à chaque push, il vérifie, teste,
construit et — quand c’est configuré — déploie automatiquement votre
changement. Le but : des mises en production petites, fréquentes et
ennuyeuses au lieu de rares et terrifiantes. GitHub
Actions est le système CI/CD intégré à GitHub : un
workflow est un fichier YAML dans
.github/workflows/ disant « au push, exécute ces étapes sur
un runner neuf (une VM temporaire) ». Lab : ajoutez à
terraform-labs un workflow qui exécute
terraform fmt -check et terraform validate à
chaque push — poussez un fichier délibérément malformé et regardez le ✗
rouge, corrigez-le et regardez le ✓ vert. Vous avez désormais un
pipeline ; aussi petit soit-il, c’est la même espèce que ceux de chaque
description de poste. (Deuxième étape, dans le Projet 1 : un workflow
qui exécute terraform plan sur les pull requests, pour que
les changements d’infrastructure proposés montrent leur diff dans la
revue.)
Docker emballe une application avec tout ce dont
elle a besoin dans un conteneur — une boîte à lunch
scellée qui tourne à l’identique sur votre laptop, sur EC2 et partout
ailleurs, mettant fin à l’antique fléau du « ça marche sur ma machine ».
Une image est la recette figée (construite depuis un
Dockerfile, un court fichier texte d’étapes de build :
partir FROM une image de base, COPY votre
application, définir la commande de démarrage) ; un
conteneur est une instance en cours d’exécution d’une
image ; un registre (registry) (Docker Hub, ou
ECR d’AWS) est l’endroit où les images sont poussées et
tirées. Les conteneurs ne sont pas des VM : ils partagent le
noyau Linux de l’hôte, donc ils démarrent en une seconde environ et vous
pouvez en faire tourner des dizaines sur une instance micro. Lab : sur
une instance EC2, installez Docker, docker run hello-world,
puis docker run -d -p 80:8080 <a sample web image> et
naviguez dessus ; puis écrivez un Dockerfile de cinq lignes servant
votre page statique du Lab 2 depuis une image de base
nginx, construisez-le, exécutez-le, et poussez-le sur
Docker Hub. Apprenez les verbes quotidiens : docker ps,
docker logs, docker exec -it <id> bash
(un shell à l’intérieur du conteneur),
docker stop.
Kubernetes (K8s) — pour ce cours, une compétence de niveau lecture, honnêtement étiquetée. Quand une entreprise fait tourner des centaines de conteneurs sur de nombreuses machines, quelque chose doit les planifier, redémarrer ceux qui plantent, faire monter en charge les occupés et router le trafic entre eux : cet orchestrateur est Kubernetes. Apprenez la carte des concepts dès maintenant — un cluster de nœuds (nodes) exécute des pods (la plus petite unité déployable, généralement un conteneur) ; un deployment déclare « garde 3 réplicas de ce pod en vie » et le cluster le rend vrai en continu (déclaratif encore — Kubernetes est la philosophie de Terraform appliquée au logiciel en cours d’exécution) ; un service donne aux pods une adresse stable. L’offre managée d’AWS est EKS. Les descriptions de poste junior veulent exactement cette culture générale plus la fluidité Docker ; la vraie compétence d’exploitation K8s (et la certification CKA) est un solide objectif d’Année 2, pas de Mois 5. Ce cours vous dit honnêtement ce qui relève de l’un et de l’autre.
Vocabulaire :
| Terme | Définition |
|---|---|
| CI/CD | Le pipeline automatisé qui vérifie, construit, teste et livre chaque changement. |
| GitHub Actions / workflow / runner | La CI/CD intégrée de GitHub / le fichier YAML définissant un pipeline / la VM temporaire qui l’exécute. |
| YAML | Le format de config à indentation des pipelines et de Kubernetes. L’indentation, c’est le sens — faites-y attention. |
| Docker / image / conteneur | La boîte à outils des conteneurs / la recette figée en couches / une instance en cours d’exécution de celle-ci. |
| Dockerfile | Le court fichier texte d’étapes qui construit une image. |
| Registre / ECR | L’endroit où les images sont poussées et tirées / le registre d’AWS. |
| Kubernetes (K8s) / cluster / nœud | L’orchestrateur de conteneurs / son groupe de machines / une machine de ce groupe. |
| Pod / deployment / service | La plus petite unité déployable / « garde N réplicas en vie », imposé en continu / une adresse stable devant les pods. |
| EKS | Le plan de contrôle Kubernetes managé d’AWS. |
| Rollback | Revenir vite à la version précédente quand une mise en production se comporte mal — le filet de sécurité que la CI/CD rend routinier. |
Vidéos pour ce module :
| Vidéo | Chaîne | Durée | Lien |
|---|---|---|---|
| DevOps CI/CD Explained in 100 Seconds | Fireship | 2 min | https://www.youtube.com/watch?v=scEDHsr3APg |
| What is DevOps? REALLY understand it | TechWorld with Nana | ~15 min | https://www.youtube.com/watch?v=0yWAtQ6wYNM |
| Docker in 100 Seconds | Fireship | 2 min | https://www.youtube.com/watch?v=Gjnup-PuquQ |
| Docker Tutorial for Beginners [FULL COURSE in 3 Hours] | TechWorld with Nana | 3 h | https://www.youtube.com/watch?v=3c-iBn73dDE |
| Kubernetes explained in 15 mins | TechWorld with Nana | ~16 min | https://www.youtube.com/watch?v=VnvRFRk_51k |
À dire à voix haute : “Don’t merge until the pipeline is green.” (« Ne fusionnez pas tant que le pipeline n’est pas vert. ») · “It’s containerized — same image in dev and prod.” (« C’est conteneurisé — la même image en dev et en prod. ») · “Exec into the container and check its logs.” (« Entrez dans le conteneur avec exec et vérifiez ses logs. ») · “K8s keeps three replicas up; kill one and watch it come back.” (« K8s garde trois réplicas en vie ; tuez-en un et regardez-le revenir. »)
Exercices : les deux labs ci-dessus, plus : (1) consignez une réponse en un paragraphe à « VM vs conteneur vs serverless — quand utiliser chacun ? » (le Serverless in 100 Seconds de Fireship — https://www.youtube.com/watch?v=W_VV2Fx32_Y — complète la troisième option). (2) Terminez l’instance du lab Docker ; confirmez que vos images survivent dans le registre — remarquez que l’artefact survit désormais au serveur, ce qui est toute la vision moderne du déploiement en une seule observation.
Jalon — fin de l’Étape 2 : votre GitHub montre : un dépôt de scripts d’exploitation Bash + Python fonctionnels, un dépôt Terraform qui construit et détruit une vraie pile, un workflow Actions vert, et un Dockerfile poussé vers un registre — et vous savez expliquer chaque fichier en entretien. Ce profil GitHub n’est plus celui d’un étudiant. C’est celui d’un ingénieur junior.
L’idée de cette étape : construire des systèmes vous fait embaucher ; les faire tourner est le vrai métier. Les points de description de poste auxquels cette étape répond sont la moitié opérationnelle — « surveiller la santé de l’infrastructure », « participer à la réponse aux incidents, y compris l’analyse de logs », « identifier, analyser et résoudre les vulnérabilités de l’infrastructure », « gérer les coûts cloud ». La semaine d’un ingénieur cloud, c’est surtout cette étape.
La supervision — savoir avant les utilisateurs. CloudWatch est le service d’observabilité intégré d’AWS. Trois primitives : les métriques (des nombres dans le temps — % CPU, % disque, nombre de requêtes, nombre d’erreurs), les alarmes (une règle surveillant une métrique : « si CPU > 80 % pendant 5 minutes → notifier »), et les tableaux de bord (des métriques disposées sur un seul écran). Les notifications passent par SNS (Simple Notification Service — un topic sur lequel vous publiez, les abonnés reçoivent e-mails/alertes). L’art est de savoir sur quoi alerter : ne réveillez un humain que pour ce qui exige un humain, sinon les gens apprennent à ignorer le pager (la fatigue d’alerte (alert fatigue) — le mode de défaillance qui a précédé bien des pannes célèbres). Les quatre signaux d’or à mémoriser : latence, trafic, erreurs, saturation — à quel point c’est lent, occupé, cassé, plein.
Les logs — savoir pourquoi. Les métriques
disent que quelque chose ne va pas ; les logs disent ce qui s’est passé.
CloudWatch Logs les centralise : un
agent sur chaque instance expédie des fichiers comme
/var/log/nginx/access.log vers des groupes de logs
(log groups), où Logs Insights vous permet de
requêter à travers les machines (« compter les réponses 5xx par minute
sur la dernière heure »). La centralisation compte parce que les
serveurs sont désormais jetables (vous l’avez prouvé au Module 8) — les
logs doivent survivre aux machines qui les ont écrits.
Lab (Semaines 21–22) : montez un petit serveur web
supervisé, entièrement en Terraform (votre pile du Module 7, étendue) :
EC2 + nginx + l’agent CloudWatch ; un topic SNS qui vous envoie des
e-mails ; une alarme sur CPU élevé et une autre sur l’échec du status
check de l’instance. Puis attaquez-vous vous-même : connectez-vous en
SSH et lancez un brûleur de CPU (yes > /dev/null &
plusieurs fois) ; regardez la métrique grimper, l’alarme se déclencher,
l’e-mail arriver ; tuez les processus ; regardez la récupération. Puis
requêtez vos propres logs d’accès dans Logs Insights. Vous venez
d’assister à la boucle complète détecter→notifier→diagnostiquer→résoudre
sur un système que vous avez construit.
La réponse aux incidents — la moitié humaine. Un incident est un « le système ne va pas bien » non planifié ; les niveaux de sévérité (sev-1 = clients à terre, tout le monde sur le pont) fixent l’échelle de la réponse. La boucle professionnelle : détecter (l’alarme, pas un e-mail de client, idéalement) → trier (triage) (à quel point c’est grave, qui est nécessaire) → mitiger (arrêter l’hémorragie d’abord — rollback, redémarrage, failover ; la cause racine vient plus tard) → résoudre → post-mortem : une revue écrite sans blâme de ce qui s’est passé, pourquoi, et ce qui empêchera une récidive. Sans blâme n’est pas de la mollesse ; c’est de l’ingénierie : les gens punis cachent l’information, et l’information cachée cause les pannes récurrentes. L’astreinte (on-call) est la rotation de qui porte le pager ; les descriptions de poste la mentionnent, les recruteurs posent des questions dessus, et votre réponse honnête après ce module est « je l’ai simulée et je connais la boucle ».
Les runbooks — le point documentation, rendu concret. Un runbook est une recette pas à pas pour une situation opérationnelle, écrite pour qu’une personne stressée à 3 heures du matin puisse la suivre : symptômes → vérifications (commandes exactes) → correctifs (commandes exactes) → escalade (qui réveiller si ça ne marche pas). Lab (Semaines 23–24) : écrivez deux runbooks dans votre dépôt — « serveur web à terre » et « disque qui se remplit » — puis entraînez-les : cassez la chose, suivez votre propre document à la lettre, et corrigez chaque étape qui s’est révélée vague. Puis lancez un game day complet : demandez à un ami (ou à une IA) de casser votre pile de lab en secret ; vous êtes alerté, vous diagnostiquez à partir des métriques et des logs, vous mitigez, et vous rédigez le post-mortem dans votre journal. Ce post-mortem est une histoire d’entretien, et une bonne.
Vocabulaire :
| Terme | Définition |
|---|---|
| CloudWatch | Le service de supervision d’AWS : métriques, alarmes, tableaux de bord, logs. |
| Métrique / alarme / tableau de bord | Un nombre dans le temps / une règle qui se déclenche dessus / un écran qui les rassemble. |
| SNS | Le service de notification vers lequel les alarmes publient — e-mail, SMS, pager. |
| Signaux d’or | Latence, trafic, erreurs, saturation — les quatre nombres qui décrivent la santé de n’importe quel service. |
| Fatigue d’alerte | Trop d’alertes non actionnables → alertes ignorées → vraies alertes manquées. L’ennemi de la conception d’alarmes. |
| Groupe de logs / Logs Insights | Là où atterrissent les logs centralisés / le langage de requête au-dessus d’eux. |
| Incident / sévérité | Une dégradation non planifiée / sa gravité classée (sev-1 = la pire). |
| Triage / mitiger / résoudre | Évaluer vite / arrêter l’hémorragie d’abord / réparer vraiment. |
| Post-mortem | La revue écrite sans blâme : quoi, pourquoi, ce qui empêche une récidive. |
| Runbook | La recette à l’épreuve de 3 h du matin pour une situation : symptômes, vérifications, correctifs, escalade. |
| Astreinte / game day | La rotation du pager / un incident d’entraînement délibéré. |
| MTTR | Mean time to recovery (temps moyen de rétablissement) — la métrique d’exploitation que les équipes mûres optimisent. |
À dire à voix haute : “Did we find out from the alarm or from a customer?” (« L’avons-nous appris par l’alarme ou par un client ? ») · “Mitigate first — root cause after we’re stable.” (« Mitigez d’abord — la cause racine après la stabilisation. ») · “Is there a runbook for this? There will be by tomorrow.” (« Y a-t-il un runbook pour ça ? Il y en aura un d’ici demain. ») · “What did the post-mortem conclude, and what’s the prevention item?” (« Qu’a conclu le post-mortem, et quelle est l’action de prévention ? »)
Jalon : votre post-mortem de game day existe, est sans blâme, et nomme une prévention concrète que vous avez ensuite réellement mise en œuvre (une alarme ajoutée, un runbook corrigé).
Les opérations de sécurité — de l’hygiène, pas de l’héroïsme. Le modèle de responsabilité partagée d’abord (à revoir : https://www.youtube.com/watch?v=ESPBBEK-cvo) : AWS sécurise le cloud lui-même ; vous sécurisez ce que vous y mettez — et la plupart des vraies brèches sont des erreurs de configuration client, pas des défaillances d’AWS. Votre checklist de sécurité opérationnelle, pratiquée jusqu’à l’ennui :
* dans chaque politique. Vous avez construit ce
réflexe au Lab 5 — c’est maintenant une entrée de calendrier.La gestion des coûts — la compétence qui fait paraître les
juniors seniors. Le point de description de poste est mot pour
mot : « gérer les coûts cloud par le rightsizing des ressources, la
mise en place de l’auto-scaling, l’étiquetage des ressources ».
Comment tourne le compteur : le calcul facture à la seconde où il est
allumé (inactif ≠ gratuit — « on l’a laissé tourner » est le
gaspillage classique), le stockage au Go-mois, et
l’egress (les données sortant d’AWS) au Go
tandis que les données entrantes sont gratuites — la célèbre surprise de
facture. Les leviers, dans l’ordre où un junior peut les actionner :
éteindre (les systèmes de dev la nuit ; votre habitude
de teardown, industrialisée) → rightsizer (la plupart
des serveurs sont surdimensionnés ; consultez l’historique CPU de
CloudWatch et réduisez) → tout tagger
(Project, Owner, Environment — la
dépense non taguée est une dépense sans responsable ; imposez les tags
dans votre Terraform) → hiérarchiser le stockage (les
règles de cycle de vie du Lab 2) → savoir que la capacité
réservée/les Savings Plans (engagement 1–3 ans, économie de
30–70 %) et le Spot (jusqu’à 90 % de réduction,
interruptible) existent respectivement pour les charges stables et les
traitements par lots. Les outils : Cost Explorer (la
dépense du compte, en graphiques — à lire chaque semaine, pour toujours)
et AWS Budgets (votre alerte à 0 $ de la Semaine 3,
désormais comprise comme le plus petit membre d’une famille sérieuse).
La discipline plus large s’appelle le FinOps — deux
minutes qui en valent la peine :
https://www.youtube.com/watch?v=Y-c_xw9bHFw.
Vocabulaire :
| Terme | Définition |
|---|---|
| Modèle de responsabilité partagée | AWS sécurise le cloud ; vous sécurisez ce que vous y mettez. La plupart des brèches relèvent de la seconde moitié. |
| CloudTrail | Le journal d’audit du compte : chaque appel d’API, par qui, quand. |
| GuardDuty | La détection de menaces automatisée d’AWS sur les logs et le trafic. |
| Patching / SSM | Appliquer les mises à jour de sécurité / le Systems Manager d’AWS, qui l’automatise à l’échelle du parc. |
| Versioning S3 | Garder chaque version écrasée — le contrôle anti-oups, anti-ransomware. |
| KMS / chiffrement au repos et en transit | Le service de clés d’AWS / les données brouillées sur disque et sur le réseau. Toujours activé. |
| Egress | Les données quittant AWS — facturées au Go ; l’entrant est gratuit. La surprise de facture classique. |
| Rightsizing | Réduire les ressources surdimensionnées au besoin mesuré. De l’argent gratuit. |
| Tagging (étiquetage) | Étiqueter chaque ressource avec propriétaire/projet/environnement pour que toute dépense soit attribuable. |
| Savings Plans / Spot | Engagement de 1–3 ans pour 30–70 % de réduction sur la charge stable / capacité inutilisée récupérable jusqu’à −90 % pour les lots. |
| Cost Explorer / Budgets | Les graphiques de dépense que vous lisez chaque semaine / les alertes qui font que vous n’apprenez jamais par la facture. |
| FinOps | La discipline qui rend la dépense cloud visible, allouée et continuellement optimisée. |
À dire à voix haute : “Who has access to prod, and when did we last review the list?” (« Qui a accès à la prod, et quand avons-nous revu la liste pour la dernière fois ? ») · “When did we last restore a backup?” (« Quand avons-nous restauré une sauvegarde pour la dernière fois ? ») · “What’s untagged, and what died but is still billing?” (« Qu’est-ce qui n’est pas tagué, et qu’est-ce qui est mort mais facture encore ? ») · “It’s over-provisioned — the CPU history says we can halve it.” (« C’est surprovisionné — l’historique CPU dit qu’on peut le réduire de moitié. »)
Exercices : (1) Le lab de test de restauration ci-dessus. (2) Un fichier de checklist de sécurité mensuelle dans votre dépôt, puis exécutez-la réellement contre votre compte. (3) Dans Cost Explorer, trouvez la chose la plus coûteuse de l’historique de votre compte et expliquez-la en une phrase de journal. (4) Ajoutez des tags par défaut à chaque ressource de votre dépôt Terraform.
Jalon — fin de l’Étape 3 : menez un auto-audit complet — checklist de sécurité, revue des coûts, test d’alarme, restauration de sauvegarde — et rédigez le rapport d’une page. Vous savez désormais faire le métier, pas seulement la construction. Ce qui reste, c’est le prouver à des inconnus : l’Étape 4.
Les certifications disent que vous avez étudié ; les projets prouvent que vous savez construire. Trois, chacun dans son propre dépôt GitHub, chacun avec un diagramme d’architecture, un README écrit pour un responsable du recrutement (quoi, pourquoi, comment le lancer, ce que ça coûte) et un script de teardown. Construire → capturer/enregistrer → détruire — le dépôt est l’artefact, pas une facture qui tourne.
Projet 1 — Application web trois tiers, entièrement
automatisée (la pièce maîtresse). Terraform construit tout :
VPC avec sous-réseaux publics/privés sur deux AZ ; un
Application Load Balancer (équilibreur de charge
applicatif — le dispositif qui répartit le trafic, nouveau pour vous, et
la suite naturelle du Lab 3) devant un Auto Scaling
Group d’instances web (AWS ajoute/retire des instances selon la
charge — renseignez-vous, câblez-le) ; RDS dans les sous-réseaux privés
; S3 pour les ressources statiques ; alarmes CloudWatch et un runbook.
GitHub Actions exécute terraform plan sur chaque pull
request et apply à la fusion — un vrai pipeline
d’infrastructure. Ce seul projet démontre dix des quatorze points de
description de poste du tableau de correspondance ; attendez-vous à ce
que chaque entretien le parcoure, et répétez sa narration en cinq
minutes.
Projet 2 — Pipeline de données serverless (l’étendue). Aucun serveur du tout : un fichier atterrissant dans un bucket S3 déclenche une fonction Lambda (votre Python, exécuté par AWS par événement, facturé à l’invocation) qui le traite — parser un CSV, le résumer, écrire les résultats dans un second bucket ou une table DynamoDB — avec les échecs interceptés, loggés dans CloudWatch, et alarmés vers votre boîte mail. Déployez-le avec Terraform. Il montre Python, la pensée événementielle, et une envergure au-delà d’EC2. Deux minutes d’orientation d’abord : https://www.youtube.com/watch?v=W_VV2Fx32_Y.
Projet 3 — Vitrine d’exploitation façon production (le différenciateur). Prenez le Projet 1 et exploitez-le comme si ça comptait : un tableau de bord CloudWatch des signaux d’or ; des alarmes avec une politique d’alerte documentée ; trois runbooks ; une procédure de sauvegarde-restauration testée avec ses preuves ; une passe de durcissement sécurité (audit IAM, notes de patching, CloudTrail activé) rédigée ; une analyse de coûts (« cette pile coûte X $/mois ; voici les trois changements qui la réduiraient de moitié ») ; et un post-mortem de game day. Presque aucun candidat junior n’a cela. Il répond à la seule question que posent vraiment les entretiens — « peut-on confier la production à cette personne ? » — avec des documents au lieu d’adjectifs.
Les certifications ouvrent les filtres des recruteurs et structurent votre étude. Le parcours standard 2026 pour ce poste, avec une préparation réaliste au rythme de ce cours — notez comment chaque examen tombe juste après les étapes du cours qui enseignent son contenu, raison pour laquelle ces durées sont plus courtes que celles d’internet :
| Ordre | Certification | Ce qu’elle prouve | Temps de préparation depuis là où vous serez | Quand la passer |
|---|---|---|---|---|
| 1 | AWS Certified Cloud Practitioner (CLF-C02) | Vocabulaire cloud, facturation, responsabilité partagée | 3–4 semaines (les guides disent la même chose pour les débutants ; les Étapes 0–1 en couvrent l’essentiel) | ~Mois 4 |
| 2 | AWS Solutions Architect Associate (SAA-C03) | Concevoir de vraies architectures AWS — le titre sur lequel les descriptions de poste filtrent réellement | 6–8 semaines de préparation ciblée (estimation standard de l’industrie après le CCP) | Mois 8–9 |
| 3 | HashiCorp Terraform Associate (003) | La fluidité IaC, vérifiée | 2–3 semaines — après le Module 7 et le Projet 1, vous êtes surtout en révision (préparation officielle : https://developer.hashicorp.com/terraform/tutorials/certification-003) | Mois 10–11 |
Quatrième optionnelle, si vous visez des postes à intitulé opérationnel : AWS SysOps Administrator / CloudOps Associate — son contenu est littéralement l’Étape 3. Pour le CLF-C02, le cours complet de freeCodeCamp (https://www.youtube.com/watch?v=7HKot-brXFE, édition classique https://www.youtube.com/watch?v=NhDYbskXRgc) plus des examens blancs est le chemin gratuit bien balisé ; pour le SAA-C03, associez un cours à de nombreux tests blancs chronométrés — l’examen est basé sur des scénarios et l’endurance compte.
Le CV : une page. Commencez par les compétences (AWS, Terraform, Python/Bash, Docker, CI/CD, CloudWatch — reprenez les mots mêmes de la description de poste ; les filtres automatiques matchent les mots-clés) et les trois projets, chacun en deux puces de la forme a fait X avec Y en obtenant Z : « Déployé une application web trois tiers sur AWS avec Terraform et GitHub Actions ; déploiements sans interruption via ALB + Auto Scaling ». Listez les certifications avec les dates. Mettez le lien GitHub — puis partez du principe qu’ils vont vraiment l’ouvrir, car les bons le font, et le vôtre récompense désormais la visite.
La préparation aux entretiens : trois saveurs à répéter — les questions de connaissance (les tableaux de vocabulaire des Étapes), les scénarios (les labs que vous avez réellement faits) et le comportemental (les histoires de votre journal, racontées en forme STAR : Situation, Tâche, Action, Résultat). Entraînez-vous à voix haute, quotidiennement, pendant deux semaines — idéalement avec un intervieweur IA, sans pitié. Les dix questions ci-dessous couvrent les classiques ; les exemples de réponses sont délibérément compacts — développez chacun avec vos propres détails de lab, car « …et quand j’ai construit ceci, ce qui s’est réellement passé, c’est… » est la phrase qui vous sépare des candidats qui n’ont fait que lire.
Les dix questions, avec des réponses solides :
systemctl status), le disque est-il plein
(df -h), le CPU est-il saturé (top) ; puis les
logs (tail sur le log d’erreurs). Mitiger d’abord —
redémarrer le service ou remplacer l’instance — et faire la cause racine
une fois stabilisé. C’est l’ordre que je répète dans mes
runbooks.plan montre le diff exact avant que quoi que
ce soit n’arrive. Mon pipeline exécute plan sur chaque PR pour que le
diff fasse partie de la revue.La mécanique de la recherche d’emploi : candidatez dès le Mois 11 — après le SAA, n’attendez pas d’être « prêt », car les entretiens sont de l’entraînement. Intitulés cibles : cloud engineer (junior/associate), cloud support engineer, cloud operations engineer, junior DevOps engineer, AWS support associate. Chaque refus avec entretien est une leçon gratuite ; consignez ce qu’ils ont demandé.
Vocabulaire :
| Terme | Définition |
|---|---|
| Portfolio | La preuve publique et documentée que vous savez construire — pour ce métier, des dépôts GitHub avec diagrammes et README. |
| Application Load Balancer (ALB) | L’équilibreur de charge d’AWS : répartit les requêtes entre instances saines, écarte les malades. |
| Auto Scaling Group | Maintient N instances en vie et ajuste N selon la charge — auto-réparation et élasticité en un. |
| Lambda / serverless | Du code qu’AWS exécute par événement, facturé à l’invocation — aucun serveur à gérer du tout. |
| DynamoDB | La table NoSQL serverless d’AWS — se marie naturellement avec Lambda. |
| STAR | Situation, Tâche, Action, Résultat — la forme d’une bonne histoire d’entretien. |
| ATS | Applicant tracking system (système de suivi des candidatures) — le filtre à mots-clés que votre CV d’une page doit passer. |
| CLF-C02 / SAA-C03 / Terraform Associate 003 | Vos trois examens : vocabulaire, architecture, IaC. |
| SysOps / CloudOps Associate | L’associate AWS optionnel orienté opérations — l’Étape 3, en examen. |
Jalon — fin du cours : trois dépôts qu’un inconnu peut comprendre, trois certifications planifiées ou obtenues, dix réponses répétées à voix haute, des candidatures en cours. Vous n’êtes pas en train d’« espérer entrer dans le cloud ». Vous êtes un ingénieur cloud junior avec des preuves, en entretien.
| Quand | Focus | Preuve pratique | Preuve externe |
|---|---|---|---|
| Semaines 1–2 | Comment fonctionnent les ordinateurs ; Linux, terminal, permissions, SSH | Opérations sur fichiers scriptées ; premier script shell | — |
| Semaines 3–4 | Réseau : IP, DNS, ports, HTTP, pare-feu ; compte AWS | Compte + MFA + budget à 0 $ | — |
| Semaines 5–6 | Lab 1 : EC2 | Serveur web sur l’internet, démonté | — |
| Semaine 7 | Lab 2 : S3 + CLI | Site statique ; fluidité CLI | — |
| Semaines 8–9 | Lab 3 : VPC | Réseau public/privé, preuve du bastion | — |
| Semaine 10 | Lab 4 : RDS | Base de données privée, snapshot, teardown | — |
| Semaines 11–12 | Lab 5 : IAM ; reconstruction du gantelet de l’Étape 1 | Pile complète de mémoire, <3 h | Planifier le CCP |
| Semaines 13–15 | Bash, Python/boto3, Git | backup.sh, audit.py, historique du dépôt | Examen CCP (~Mois 4) |
| Semaines 16–17 | Terraform | Pile en code, plan/apply/destroy | — |
| Semaines 18–20 | CI/CD, Docker, culture K8s | Pipeline vert ; image dans un registre | — |
| Semaines 21–24 | CloudWatch, logs, incidents, runbooks | Alarme déclenchée + post-mortem de game day | — |
| Semaines 25–28 | Sécurité opérationnelle ; gestion des coûts | Rapport d’auto-audit ; test de restauration | — |
| Mois 8–10 | Projets de portfolio 1–3 | Trois dépôts documentés | SAA-C03 (Mois 8–9) |
| Mois 10–11 | Préparation Terraform Associate | — | Terraform Associate |
| Mois 11–12 | CV, entretiens, candidatures | Dix réponses, à voix haute | Premières offres |
Un mot de clôture de votre professeur. Douze mois, c’est court pour une reconversion et long pour une habitude quotidienne, alors voici le marché honnête : les gens qui terminent ce cours ne sont pas les plus intelligents — ce sont ceux qui ont tapé les commandes les jours de fatigue aussi. Chaque message d’erreur que vous rencontrez est le programme qui fonctionne, pas qui échoue ; l’ingénieur qui a cassé et réparé une centaine de petites choses est exactement ce qu’un responsable du recrutement entend par « expérience ». Tenez le journal, démontez ce que vous construisez, ne prétendez jamais en entretien ce que vos dépôts ne peuvent pas prouver — et dans un an, quand le pager sonnera à 3 heures du matin, vous sentirez quelque chose d’inattendu sous l’adrénaline : de la compétence. Allez construire.
Recherche sur les descriptions de poste (août 2026) : Arc.dev — AWS Cloud Engineer Job Description · Wiz — Cloud Engineer Job Description Guide · DevsData — AWS Cloud Engineer JD Template · X0PA — Cloud Engineer JD Template 2026 · Betterteam — Cloud Engineer Job Description. Parcours de certification et temps de préparation : StudyTech — AWS Certification Roadmap 2026 · Cloud Evolvers — Cloud Engineer Roadmap 2026 · HashiCorp — Terraform Associate 003 prep. Contexte salarial (médiane US ≈ 104 K, fourchette85K–140 K$) : Wiz, ci-dessus. Tous les liens YouTube vérifiés via les métadonnées YouTube au moment de la rédaction.
Un cours B4LCILC — volume compagnon du « Cours du Leader Cloud ».