Leçon 3 / 8
Leçon 03 · Microsoft Azure

Machines virtuelles

Une machine virtuelle Azure (VM) est un serveur hébergé dans le cloud Microsoft. Elle dispose d'un OS complet, de CPU, de RAM et de stockage — exactement comme un serveur physique, mais entièrement géré à distance. Tu choisis la taille, l'image OS et tu peux la démarrer en quelques minutes.

Séries et tailles de VM

Azure propose des centaines de tailles regroupées en séries. Chaque série est optimisée pour un usage particulier. Le nom suit un schéma logique : la lettre indique la famille, le chiffre indique la génération, et le suffixe précise des variantes (disque local, mémoire étendue, etc.).

Les familles principales

Série Usage typique Exemple
B-series Dev, test, petits serveurs web — charge CPU variable, facturation à la consommation du burst Standard_B2s (2 vCPU, 4 Go RAM)
D-series Usage général, applications d'entreprise, bases de données légères Standard_D4s_v5 (4 vCPU, 16 Go RAM)
F-series Calcul intensif, gaming, rendu — ratio CPU/RAM élevé Standard_F8s_v2 (8 vCPU, 16 Go RAM)
E-series Mémoire optimisée — bases de données lourdes, SAP Standard_E16s_v5 (16 vCPU, 128 Go RAM)
N-series GPU — IA, rendu 3D, visualisation Standard_NC6s_v3
Conseil de départ : pour un homelab ou un projet de formation, commence par une B2s ou B2ms. Elles sont éligibles au niveau gratuit Azure (750 heures/mois la première année) et suffisent largement pour apprendre.

Images disponibles

Une image est le modèle de départ de ta VM : elle contient l'OS pré-installé et parfois des logiciels additionnels. Azure Marketplace en propose plusieurs centaines.

Images courantes

  • Ubuntu Server 24.04 LTS — le choix numéro 1 pour Linux sur Azure, publié par Canonical
  • Ubuntu Server 22.04 LTS — stable, très documenté, recommandé en production
  • Debian 12 — minimaliste, idéale pour les serveurs légers
  • Windows Server 2022 Datacenter — pour les environnements Microsoft (Active Directory, IIS, SQL Server)
  • Windows Server 2019 — encore très répandu en entreprise
  • Red Hat Enterprise Linux (RHEL) 9 — distribution d'entreprise, intégration support Microsoft/Red Hat
  • Rocky Linux / AlmaLinux — alternatives RHEL libres et gratuites

Images personnalisées (Shared Image Gallery)

Tu peux créer ta propre image à partir d'une VM existante que tu as configurée (logiciels installés, configuration appliquée), puis la stocker dans la Shared Image Gallery pour la réutiliser ou la partager avec d'autres abonnements. Très utile pour déployer rapidement plusieurs VM identiques.

Créer une VM avec le portail Azure

Le portail Azure propose un assistant de création guidé. Voici les étapes clés à renseigner.

Étape 1 — Informations de base

  • Abonnement : l'abonnement Azure à facturer (ex. Azure for Students ou Pay-As-You-Go)
  • Groupe de ressources : le conteneur logique où sera placée la VM (crées-en un nouveau ou utilises-en un existant)
  • Nom de la VM : ex. vm-monlab-01
  • Région : le datacenter Azure où sera hébergée la VM (ex. France Central ou West Europe). Choisis la région la plus proche de tes utilisateurs
  • Options de disponibilité : pour démarrer, laisse sur Aucune redondance
  • Image : choisis l'OS (ex. Ubuntu Server 24.04 LTS)
  • Taille : clique sur Voir toutes les tailles et sélectionne la série adaptée (ex. Standard_B2s)

Étape 2 — Authentification

  • Linux : choisis Clé publique SSH (recommandé) ou mot de passe. Azure peut générer la paire de clés pour toi.
  • Windows : choisis un nom d'utilisateur et un mot de passe fort (utilisé pour RDP).

Étape 3 — Réseau

Azure crée automatiquement un réseau virtuel (VNet), un sous-réseau et une IP publique. Un Network Security Group (NSG) est attaché à la carte réseau, avec par défaut le port SSH (22) ou RDP (3389) ouvert selon l'OS.

Attention : laisser le port 22 (SSH) ou 3389 (RDP) ouvert sur Internet expose immédiatement ta VM à des tentatives de connexion automatisées. Pense à restreindre l'accès à ton IP fixe, ou mieux encore, utilise Azure Bastion (voir plus bas).

Étape 4 — Disques et options avancées

Tu peux ajouter des disques de données supplémentaires, choisir le type de disque OS (SSD Premium, SSD Standard, HDD Standard) et activer la surveillance. Pour un lab, les valeurs par défaut conviennent.

Clique sur Vérifier + créer, valide la synthèse et confirme. La VM sera déployée en 1 à 3 minutes.

Créer une VM avec Azure CLI

L'Azure CLI permet de scripter la création de VM et de l'automatiser. C'est l'approche privilégiée en infrastructure-as-code et en homelab.

Prérequis : se connecter et choisir son abonnement

# Connexion interactive (ouvre le navigateur)
az login

# Lister les abonnements disponibles
az account list --output table

# Sélectionner l'abonnement voulu
az account set --subscription "Mon abonnement Azure"

Créer un groupe de ressources

az group create \
  --name rg-monlab \
  --location francecentral

Créer une VM Linux (Ubuntu)

az vm create \
  --resource-group rg-monlab \
  --name vm-ubuntu-01 \
  --image Ubuntu2404 \
  --size Standard_B2s \
  --admin-username azureuser \
  --generate-ssh-keys \
  --output json

Le flag --generate-ssh-keys crée automatiquement une paire de clés SSH dans ~/.ssh/ si elle n'existe pas déjà, et injecte la clé publique dans la VM. L'IP publique de la VM est retournée dans la sortie JSON.

Créer une VM Windows Server

az vm create \
  --resource-group rg-monlab \
  --name vm-win-01 \
  --image Win2022Datacenter \
  --size Standard_B2ms \
  --admin-username azureadmin \
  --admin-password "MonMotDePasse2024!" \
  --output json
Astuce : pour lister toutes les images disponibles dans une région, utilise la commande az vm image list --location francecentral --output table. Ajoute --all pour voir le catalogue complet (attention, la liste est longue !).

Ouvrir un port dans le NSG

# Ouvrir le port HTTP 80
az vm open-port \
  --resource-group rg-monlab \
  --name vm-ubuntu-01 \
  --port 80

# Ouvrir un port personnalisé (ex. 8080)
az vm open-port \
  --resource-group rg-monlab \
  --name vm-ubuntu-01 \
  --port 8080 \
  --priority 110

Se connecter à une VM

SSH — connexion Linux

Récupère d'abord l'IP publique de ta VM, puis connecte-toi avec SSH.

# Obtenir l'IP publique via CLI
az vm show \
  --resource-group rg-monlab \
  --name vm-ubuntu-01 \
  --show-details \
  --query publicIps \
  --output tsv

# Se connecter en SSH (clé générée par Azure CLI)
ssh azureuser@20.XX.XX.XX

# Si la clé est dans un chemin personnalisé
ssh -i ~/.ssh/ma-cle.pem azureuser@20.XX.XX.XX

RDP — connexion Windows

Sur Windows, ouvre le Bureau à distance (mstsc) et saisis l'IP publique de la VM suivie du port 3389. Connecte-toi avec le nom d'utilisateur et le mot de passe définis à la création.

Sur macOS et Linux, installe Microsoft Remote Desktop (disponible sur le Mac App Store) ou utilise remmina / xfreerdp.

# Connexion RDP depuis Linux avec xfreerdp
xfreerdp /v:20.XX.XX.XX /u:azureadmin /p:"MonMotDePasse2024!" /f

Azure Bastion — connexion sécurisée sans IP publique

Azure Bastion est un service managé qui agit comme un jump host. Il permet de se connecter à une VM directement depuis le navigateur (portail Azure), sans exposer de port SSH ou RDP sur Internet. La VM n'a même pas besoin d'IP publique.

  • Déployé au niveau du VNet (un Bastion par VNet)
  • Accès SSH ou RDP via HTTPS dans le navigateur
  • Niveau Basic : connexion par clé ou mot de passe
  • Niveau Standard : tunneling, copier-coller, partage de fichiers
Coût : Azure Bastion est un service payant (environ 0,19 $/heure en Basic). Pour un homelab, il est plus économique de restreindre les règles NSG à ton IP fixe plutôt que de déployer Bastion en permanence.

Gérer les disques

Types de disques

  • OS Disk : disque système, créé automatiquement avec la VM. Contient l'OS et le bootloader.
  • Data Disk : disque de données supplémentaire, à monter manuellement dans l'OS. Indépendant du cycle de vie de la VM.
  • Temporary Disk : disque local SSD, non persistent — les données sont perdues à l'arrêt ou au redémarrage de la VM. Utilisé pour le swap ou les fichiers temporaires.

Types de performance

  • HDD Standard — le moins cher, pour les sauvegardes et les données rarement accédées
  • SSD Standard — bon compromis coût/performance pour les charges légères
  • SSD Premium — pour les bases de données et les applications nécessitant une faible latence
  • Ultra Disk — pour les charges les plus exigeantes (IOPS très élevés)

Ajouter un disque de données

# Ajouter un disque SSD Standard de 128 Go
az vm disk attach \
  --resource-group rg-monlab \
  --vm-name vm-ubuntu-01 \
  --name disk-data-01 \
  --size-gb 128 \
  --sku Standard_LRS \
  --new

# Sous Linux, initialiser et monter le disque
# (après connexion SSH à la VM)
sudo fdisk -l                        # repérer le nouveau disque (ex. /dev/sdc)
sudo mkfs.ext4 /dev/sdc              # formater en ext4
sudo mkdir /data
sudo mount /dev/sdc /data            # monter le disque
echo "/dev/sdc /data ext4 defaults 0 0" | sudo tee -a /etc/fstab  # mount permanent

Créer un snapshot

Un snapshot est une copie ponctuelle d'un disque managé. Il permet de revenir à un état antérieur ou de cloner un disque.

# Obtenir l'ID du disque OS
DISK_ID=$(az vm show \
  --resource-group rg-monlab \
  --name vm-ubuntu-01 \
  --query storageProfile.osDisk.managedDisk.id \
  --output tsv)

# Créer un snapshot
az snapshot create \
  --resource-group rg-monlab \
  --name snapshot-ubuntu-01-avant-maj \
  --source "$DISK_ID"

Arrêter vs désallouer une VM

C'est l'un des points les plus importants à comprendre pour maîtriser sa facture Azure.

Arrêter (stopped) ≠ Désallouer (deallocated)

Action État Azure Facturation compute IP publique
Éteindre depuis l'OS (shutdown ou bouton Démarrer/Arrêter Windows) Stopped (not deallocated) Toujours facturée Conservée
Arrêter depuis le portail Azure ou la CLI Stopped (deallocated) Non facturée Libérée (si dynamique)
Attention ! Si tu éteins ta VM depuis l'intérieur de l'OS (ex. sudo poweroff), Azure considère la VM comme Stopped but not deallocated. Tu continues de payer les vCPU et la RAM. Pour ne plus payer, utilise toujours le portail ou la CLI pour désallouer la VM.
# Désallouer une VM (arrêt complet, pas de facturation compute)
az vm deallocate \
  --resource-group rg-monlab \
  --name vm-ubuntu-01

# Démarrer une VM
az vm start \
  --resource-group rg-monlab \
  --name vm-ubuntu-01

# Vérifier l'état d'une VM
az vm get-instance-view \
  --resource-group rg-monlab \
  --name vm-ubuntu-01 \
  --query instanceView.statuses[1].displayStatus \
  --output tsv
Note : même une VM désallouée continue de générer des coûts pour ses disques managés et son IP publique statique. Pour supprimer totalement les coûts, il faut supprimer la VM et ses ressources associées.

À retenir

  • Les VM Azure sont regroupées en séries : B-series pour dev/test, D-series pour usage général, F-series pour calcul intensif.
  • Le Marketplace propose des dizaines d'images OS : Ubuntu, Windows Server, Debian, RHEL et bien d'autres.
  • On peut créer une VM via le portail Azure (assistant visuel) ou via Azure CLI (az vm create) pour l'automatisation.
  • La connexion se fait en SSH pour Linux et en RDP pour Windows. Azure Bastion évite d'exposer ces ports sur Internet.
  • Un disque OS, des disques de données et un disque temporaire (non persistant) composent le stockage d'une VM.
  • Les snapshots permettent de sauvegarder l'état d'un disque à un instant T.
  • Éteindre une VM depuis l'OS ne suffit pas : il faut la désallouer depuis Azure pour arrêter la facturation compute.