Exercice 04 : Lancer et configurer une instance EC2
🎯 Objectifs
À la fin de cet exercice, vous serez capable de :
- ✅ Lancer une instance EC2 Amazon Linux 2 depuis la console
- ✅ Créer et configurer un Security Group avec les bons ports
- ✅ Générer une paire de clés SSH et se connecter à l'instance
- ✅ Installer Nginx et accéder au serveur depuis votre navigateur
- ✅ Arrêter proprement l'instance pour éviter les coûts
Durée estimée : 35 minutes
Difficulté : ⭐☆☆☆☆ (Débutant)
Prérequis : Compte AWS créé (Exercice 01), accès à la console AWS
📖 Contexte
EC2 (Elastic Compute Cloud) est le service de serveurs virtuels d'AWS. C'est le fondement de nombreuses architectures cloud. Au lieu d'acheter un serveur physique, vous louez une machine virtuelle à la minute (ou à la seconde) et payez uniquement ce que vous utilisez.
📋 Énoncé
Lancez une instance EC2, installez un serveur web et accédez-y depuis votre navigateur. Durée gratuite : les instances t2.micro sont éligibles au Free Tier.
🧭 Déroulement de l'exercice
Tâche 1 : Créer une paire de clés SSH
Avant de lancer une instance, créez une clé SSH pour vous connecter.
- Console AWS → EC2 → Paires de clés (menu gauche, section Réseau et sécurité)
- Cliquer Créer une paire de clés
- Nom :
devops-key - Type : RSA, Format : .pem (Linux/Mac) ou .ppk (Windows avec PuTTY)
- Créer - le fichier est téléchargé automatiquement
# Sur votre machine locale, sécuriser la clé
chmod 400 ~/Downloads/devops-key.pemTâche 2 : Lancer l'instance EC2
- Console AWS → EC2 → Instances → Lancer des instances
Configuration :
- Nom :
mon-serveur-web - AMI : Amazon Linux 2023 (éligible Free Tier ✓)
- Type d'instance : t2.micro (Free Tier, 1 vCPU, 1 Go RAM)
- Paire de clés :
devops-key
Paramètres réseau (Important) :
- Activer "Attribuer une adresse IP publique automatiquement"
- Créer un nouveau Security Group :
sg-web-server - Règles de sécurité entrantes :
- SSH : Port 22, Source : Mon IP (votre IP actuelle)
- HTTP : Port 80, Source : N'importe où (0.0.0.0/0)
Stockage : Garder les valeurs par défaut (8 Go gp3)
- Lancer l'instance
Indice : Le Security Group est le pare-feu de votre instance. Par défaut, tout le trafic entrant est bloqué. Vous devez explicitement ouvrir les ports dont vous avez besoin. Limitez toujours le port SSH à "Mon IP" pour éviter les tentatives d'intrusion.
Tâche 3 : Se connecter et installer Nginx
# Récupérer l'IP publique dans la console EC2
# Onglet "Détails" de votre instance → "Adresse IPv4 publique"
EC2_IP="xx.xx.xx.xx" # Remplacer par votre IP
# Se connecter via SSH
ssh -i ~/Downloads/devops-key.pem ec2-user@$EC2_IP
# Une fois connecté, mettre à jour et installer Nginx
sudo dnf update -y
sudo dnf install -y nginx
# Démarrer Nginx et l'activer au démarrage
sudo systemctl start nginx
sudo systemctl enable nginx
# Vérifier le statut
sudo systemctl status nginx# Personnaliser la page d'accueil
sudo bash -c 'cat > /usr/share/nginx/html/index.html << "HTML"
<!DOCTYPE html>
<html>
<head><title>Mon serveur AWS</title></head>
<body>
<h1>Mon premier serveur EC2 !</h1>
<p>Déployé sur AWS avec Amazon Linux 2023</p>
</body>
</html>
HTML'Vérification : Ouvrez http://$EC2_IP dans votre navigateur.
Tâche 4 : Arrêter l'instance (économiser les crédits)
# Quitter la session SSH
exitSur la console AWS :
- Sélectionner votre instance
- Actions → État de l'instance → Arrêter (stop, pas terminate)
Indice : "Arrêter" = la machine s'éteint mais le disque est conservé (petit coût de stockage). "Résilier" (terminate) = tout est supprimé définitivement. Pour ce Free Tier, arrêtez l'instance après chaque exercice.
✅ Vérification du résultat
- L'instance EC2 est en état "En cours d'exécution" dans la console
- La connexion SSH fonctionne :
ssh -i devops-key.pem ec2-user@$IP http://$EC2_IPaffiche la page Nginx dans le navigateur- L'instance est arrêtée après l'exercice
💡 À retenir
Composants clés d'une instance EC2 :
| Composant | Rôle |
|---|---|
| AMI | Image de départ du système d'exploitation |
| Type d'instance | CPU + RAM (t2.micro = Free Tier) |
| Security Group | Pare-feu : règles entrantes/sortantes |
| Paire de clés | Authentification SSH (jamais de mot de passe) |
| IP Publique | Adresse temporaire (change à chaque restart) |
| Elastic IP | Adresse IP fixe (payante si non utilisée) |
Free Tier EC2 : 750 heures/mois de t2.micro ou t3.micro pendant 12 mois.
✨ Solution Complète
# Connexion SSH
ssh -i ~/devops-key.pem ec2-user@<IP_PUBLIQUE>
# Installation Nginx
sudo dnf install -y nginx
sudo systemctl enable --now nginx
# Vérification
curl http://localhost