DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesGCP - Débutant : premiers pas dans le cloud Google04 - Lancer une VM avec Compute Engine

Détails

  • 30 minutes
  • Débutant

Objectifs

  • Créer une instance Compute Engine avec gcloud CLI
  • Configurer les règles de pare-feu pour HTTP et SSH
  • Se connecter via SSH avec gcloud compute ssh
  • Comprendre les types de machines et la facturation à la seconde
Module GCP - Débutant : premiers pas dans le cloud Google

Exercice 04 : Lancer une VM avec Compute Engine

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Créer une instance Compute Engine avec la gcloud CLI
  • ✅ Configurer les règles de pare-feu VPC pour autoriser le trafic HTTP/SSH
  • ✅ Se connecter à la VM via gcloud compute ssh (sans gestion de clé SSH manuelle)
  • ✅ Installer un serveur web et accéder depuis votre navigateur

Durée estimée : 30 minutes

Difficulté : ⭐☆☆☆☆ (Débutant)

Prérequis : Compte GCP avec projet créé, gcloud CLI installée et initialisée


📖 Contexte

Google Compute Engine (GCE) est le service d'instances virtuelles de GCP. Il propose des configurations allant de la micro-VM partagée (e2-micro, éligible au Free Tier) aux VMs massivement parallèles avec des centaines de cœurs. La facturation est à la seconde (minimum 1 minute). Google est le seul des 3 grands clouds à offrir des "sustained use discounts" automatiques (réductions si vous utilisez la VM plus de 25% du mois).


📋 Énoncé

Créez une VM Compute Engine, configurez le pare-feu et déployez un serveur web.


🧭 Déroulement de l'exercice

Tâche 1 : Configurer le projet et créer la VM

bash
# Définir le projet actif
PROJECT_ID=$(gcloud config get-value project)
echo "Projet actif : $PROJECT_ID"

# Activer l'API Compute Engine (si pas encore fait)
gcloud services enable compute.googleapis.com

# Voir les zones disponibles en Europe
gcloud compute zones list --filter="region:europe-west9" --format="table(name,status)"

# Créer l'instance VM
gcloud compute instances create mon-serveur-web \
  --zone=europe-west9-a \
  --machine-type=e2-micro \         # 2 vCPU partagés, 1 Go RAM - Free Tier eligible
  --image-family=debian-12 \
  --image-project=debian-cloud \
  --boot-disk-size=10GB \
  --boot-disk-type=pd-standard \
  --tags=serveur-web \              # Tag pour les règles de pare-feu
  --metadata=enable-oslogin=true    # Authentification via IAM (pas de clé SSH manuelle)

# Voir l'instance créée
gcloud compute instances describe mon-serveur-web \
  --zone=europe-west9-a \
  --format="table(name,status,networkInterfaces[0].accessConfigs[0].natIP)"

Indice : e2-micro est dans le Free Tier GCP : 1 instance par mois gratuitement (régions US seulement - en Europe, elle est facturée mais très peu cher, ~5-6€/mois si allumée 24h/24).


Tâche 2 : Configurer le pare-feu

bash
# Créer une règle de pare-feu pour HTTP (port 80)
# Elle s'applique aux instances avec le tag "serveur-web"
gcloud compute firewall-rules create autoriser-http \
  --allow=tcp:80 \
  --target-tags=serveur-web \
  --source-ranges=0.0.0.0/0 \
  --description="Autoriser le trafic HTTP depuis internet"

# Créer une règle pour HTTPS
gcloud compute firewall-rules create autoriser-https \
  --allow=tcp:443 \
  --target-tags=serveur-web \
  --source-ranges=0.0.0.0/0 \
  --description="Autoriser le trafic HTTPS depuis internet"

# La règle SSH (port 22) existe déjà par défaut dans GCP
# via la règle "default-allow-ssh"

# Voir toutes les règles de pare-feu du projet
gcloud compute firewall-rules list \
  --format="table(name,direction,allowed[].map().firewall_str(),targetTags)"

Tâche 3 : Se connecter et installer Nginx

bash
# Se connecter via gcloud (gère automatiquement les clés SSH)
gcloud compute ssh mon-serveur-web --zone=europe-west9-a

# Une fois connecté :
sudo apt-get update -y
sudo apt-get install -y nginx

sudo systemctl enable --now nginx
sudo systemctl status nginx

# Personnaliser la page d'accueil
sudo bash -c 'cat > /var/www/html/index.html << "HTML"
<!DOCTYPE html>
<html lang="fr">
<head><title>Compute Engine GCP</title></head>
<body>
  <h1>Ma première VM GCP !</h1>
  <p>Hébergée sur Google Compute Engine</p>
</body>
</html>
HTML'

# Quitter
exit
bash
# Récupérer l'IP externe
IP=$(gcloud compute instances describe mon-serveur-web \
  --zone=europe-west9-a \
  --format="value(networkInterfaces[0].accessConfigs[0].natIP)")
echo "IP externe : $IP"

# Tester depuis votre machine
curl http://$IP

Tâche 4 : Arrêter la VM pour économiser

bash
# Arrêter la VM (les données du disque sont conservées)
gcloud compute instances stop mon-serveur-web --zone=europe-west9-a

# Voir l'état
gcloud compute instances list

# Supprimer la VM et les règles pare-feu quand terminé
gcloud compute instances delete mon-serveur-web --zone=europe-west9-a --quiet
gcloud compute firewall-rules delete autoriser-http autoriser-https --quiet

✅ Vérification du résultat

  • gcloud compute instances list affiche la VM en état RUNNING
  • gcloud compute ssh se connecte sans demander de mot de passe
  • curl http://$IP retourne la page HTML personnalisée
  • gcloud compute firewall-rules list affiche les règles HTTP/HTTPS créées

💡 À retenir

Comparaison des types de machines GCP :

FamilleCas d'usageExemple
e2Usage général économiquee2-micro, e2-standard-2
n2Usage général performancen2-standard-4
c2Calcul intensifc2-standard-8
m1/m2Mémoire optimiséem1-megamem-96
a2GPU (ML/IA)a2-highgpu-1g

Modes de facturation :

  • On-demand : paiement à la seconde
  • Preemptible : -80% mais peut être interrompue à tout moment (max 24h)
  • Spot : similaire à preemptible, nouveau modèle
  • Committed use : -57% sur 1 an, -70% sur 3 ans

✨ Solution Complète

bash
# Créer, configurer et accéder en 3 commandes
gcloud compute instances create ma-vm \
  --zone=europe-west9-a --machine-type=e2-micro \
  --image-family=debian-12 --image-project=debian-cloud --tags=web

gcloud compute firewall-rules create allow-http \
  --allow=tcp:80 --target-tags=web --source-ranges=0.0.0.0/0

gcloud compute ssh ma-vm --zone=europe-west9-a \
  --command="sudo apt install -y nginx && sudo systemctl start nginx"
Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement de l'exercice
  • Tâche 1 : Configurer le projet et créer la VM
  • Tâche 2 : Configurer le pare-feu
  • Tâche 3 : Se connecter et installer Nginx
  • Tâche 4 : Arrêter la VM pour économiser
  • ✅ Vérification du résultat
  • 💡 À retenir
  • ✨ Solution Complète