Aller au contenu principal

Types d'Instances EC2

Comprendre les Types d'Instances​

Le type d'instance détermine les ressources matérielles (CPU, RAM, réseau, stockage) disponibles pour votre serveur virtuel. AWS propose plus de 500 types d'instances !

┌─────────────────────────────────────────────────────────────┐
│ NOMENCLATURE DES INSTANCES │
├─────────────────────────────────────────────────────────────┤
│ │
│ t3.large │
│ │ │ │
│ │ └── Taille (nano, micro, small, │
│ │ medium, large, xlarge, 2xlarge) │
│ │ │
│ └── Famille + Génération │
│ (t=burstable, 3=3ème génération) │
│ │
│ Exemples : │
│ • t3.micro = Burstable, 3ème gen, très petit │
│ • m5.xlarge = General purpose, 5ème gen, extra large │
│ • c6i.2xlarge = Compute optimized, 6ème gen Intel │
│ • r5.4xlarge = Memory optimized, 5ème gen │
│ │
└─────────────────────────────────────────────────────────────┘

Les Familles d'Instances​

Vue d'Ensemble​

┌─────────────────────────────────────────────────────────────┐
│ FAMILLES D'INSTANCES EC2 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 🎯 GENERAL PURPOSE (T, M) │
│ Équilibre CPU/RAM, usage général │
│ │
│ ⚡ COMPUTE OPTIMIZED (C) │
│ Plus de CPU, calcul intensif │
│ │
│ 🧠 MEMORY OPTIMIZED (R, X) │
│ Plus de RAM, bases de données │
│ │
│ 💾 STORAGE OPTIMIZED (I, D, H) │
│ I/O élevé, big data │
│ │
│ 🎮 ACCELERATED COMPUTING (P, G, Inf) │
│ GPU, machine learning │
│ │
└─────────────────────────────────────────────────────────────┘

Famille T - Burstable (Usage Général)​

┌─────────────────────────────────────────────────────────────┐
│ FAMILLE T (Burstable) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Caractéristiques : │
│ • Capacité de "burst" au-delà du baseline │
│ • Accumule des crédits CPU quand inactive │
│ • Économique pour charges variables │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ CPU Usage │ │
│ │ │ │
│ │ 100%| ████ │ │
│ │ | ████ Burst (utilise crédits) │ │
│ │ 40%|──────────████─────────────── Baseline │ │
│ │ | ████ ████ │ │
│ │ 0%| ████ ████ │ │
│ │ └──────────────────────────────────► Temps │ │
│ │ Accumule Utilise Accumule │ │
│ │ crédits crédits crédits │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ Cas d'usage : │
│ ✅ Serveurs web à trafic variable │
│ ✅ Environnements de développement │
│ ✅ Petites bases de données │
│ ✅ Micro-services légers │
│ │
│ ❌ À éviter si charge CPU constante > baseline │
│ │
└─────────────────────────────────────────────────────────────┘

Types T Courants :

TypevCPURAMBaseline CPUPrix/h (us-east-1)
t3.nano20.5 GiB5%$0.0052
t3.micro21 GiB10%$0.0104
t3.small22 GiB20%$0.0208
t3.medium24 GiB20%$0.0416
t3.large28 GiB30%$0.0832

Famille M - General Purpose​

┌─────────────────────────────────────────────────────────────┐
│ FAMILLE M (General Purpose) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Caractéristiques : │
│ • Équilibre CPU/RAM │
│ • Pas de burst (performances constantes) │
│ • Workloads stables │
│ │
│ Ratio : ~4 GiB RAM par vCPU │
│ │
│ Cas d'usage : │
│ ✅ Applications métier │
│ ✅ Serveurs d'applications │
│ ✅ Backends d'entreprise │
│ ✅ Gaming servers │
│ ✅ Bases de données moyennes │
│ │
└─────────────────────────────────────────────────────────────┘

Types M Courants :

TypevCPURAMPrix/h
m5.large28 GiB$0.096
m5.xlarge416 GiB$0.192
m5.2xlarge832 GiB$0.384
m6i.large28 GiB$0.096

Famille C - Compute Optimized​

┌─────────────────────────────────────────────────────────────┐
│ FAMILLE C (Compute Optimized) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Caractéristiques : │
│ • Ratio CPU/RAM élevé │
│ • Processeurs haute fréquence │
│ • Idéal pour calcul intensif │
│ │
│ Ratio : ~2 GiB RAM par vCPU │
│ │
│ Cas d'usage : │
│ ✅ Traitement par lots (batch) │
│ ✅ Encodage vidéo │
│ ✅ Serveurs de jeux haute performance │
│ ✅ Modélisation scientifique │
│ ✅ Machine learning (inférence) │
│ │
└─────────────────────────────────────────────────────────────┘

Types C Courants :

TypevCPURAMPrix/h
c5.large24 GiB$0.085
c5.xlarge48 GiB$0.170
c6i.2xlarge816 GiB$0.340

Famille R - Memory Optimized​

┌─────────────────────────────────────────────────────────────┐
│ FAMILLE R (Memory Optimized) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Caractéristiques : │
│ • Beaucoup de RAM │
│ • Idéal pour données en mémoire │
│ • Bases de données haute performance │
│ │
│ Ratio : ~8 GiB RAM par vCPU │
│ │
│ Cas d'usage : │
│ ✅ Bases de données relationnelles │
│ ✅ Cache distribué (Redis, Memcached) │
│ ✅ Analyse en temps réel │
│ ✅ Apache Spark │
│ ✅ SAP HANA │
│ │
└─────────────────────────────────────────────────────────────┘

Types R Courants :

TypevCPURAMPrix/h
r5.large216 GiB$0.126
r5.xlarge432 GiB$0.252
r5.2xlarge864 GiB$0.504

Tableau de Sélection Rapide​

┌─────────────────────────────────────────────────────────────┐
│ GUIDE DE SÉLECTION D'INSTANCE │
├─────────────────────────────────────────────────────────────┤
│ │
│ Votre besoin → Famille recommandée │
│ ────────────────────────────────────────────────────── │
│ │
│ 💡 Budget serré, charge variable → T3 (burstable) │
│ 🏢 Application standard → M5/M6i │
│ ⚡ Calcul CPU intensif → C5/C6i │
│ 🧠 Base de données, cache → R5/R6i │
│ 💾 Big Data, data warehouse → I3/D2 │
│ 🎮 Machine Learning, GPU → P4/G4 │
│ │
│ Taille de départ recommandée : │
│ • Dev/Test : .micro ou .small │
│ • Production : .large ou .xlarge │
│ • Scale up si nécessaire │
│ │
└─────────────────────────────────────────────────────────────┘

Processeurs et Générations​

Suffixes de Génération​

SuffixeSignification
(rien)Intel
aAMD (souvent moins cher)
gAWS Graviton (ARM, économique)
iIntel dernière génération
dStockage NVMe local
nRéseau amélioré

Exemples :

  • m5.large = Intel
  • m5a.large = AMD (10-20% moins cher)
  • m6g.large = Graviton (40% moins cher, ARM)
  • m5d.large = Avec stockage NVMe local

AWS Graviton​

┌─────────────────────────────────────────────────────────────┐
│ AWS GRAVITON │
├─────────────────────────────────────────────────────────────┤
│ │
│ Processeurs ARM conçus par AWS │
│ │
│ Avantages : │
│ ✅ Jusqu'à 40% moins cher que Intel │
│ ✅ Meilleur rapport performance/prix │
│ ✅ Efficacité énergétique │
│ │
│ Contraintes : │
│ ⚠️ Applications doivent supporter ARM │
│ ⚠️ Certains logiciels non compatibles │
│ │
│ Compatible : │
│ ✅ Linux, containers, Node.js, Python, Java │
│ ❌ Windows, certains logiciels legacy │
│ │
└─────────────────────────────────────────────────────────────┘

Exercice Pratique : Choisir le Bon Type​

Scénario 1 : Site Web WordPress​

Contexte :
- Site vitrine PME
- 500 visiteurs/jour
- Pics occasionnels (promotions)
- Budget limité

Analyse :
- Charge variable → Burstable
- Faible trafic → Petit type
- Budget → Économique

✅ Recommandation : t3.micro ou t3.small
Justification : Les crédits burst couvrent les pics,
coût minimal pour charge faible

Scénario 2 : Base de Données PostgreSQL​

Contexte :
- Application métier
- 50 utilisateurs simultanés
- Base de 100 GB
- Requêtes complexes

Analyse :
- Besoin de RAM pour cache → Memory
- Charge constante → Pas de burst
- Production → Performances stables

✅ Recommandation : r5.large ou r5.xlarge
Justification : 16-32 GB RAM pour cache PostgreSQL,
performances constantes

Scénario 3 : Serveur de Jeu Minecraft​

Contexte :
- 20 joueurs max
- Monde avec mods
- Réactivité importante

Analyse :
- CPU intensif → Compute
- Mods = RAM → Moyen
- Réactivité → Fréquence CPU haute

✅ Recommandation : c5.large ou m5.large
Justification : Bon équilibre CPU/RAM,
fréquence CPU élevée pour la réactivité

Bonnes Pratiques​

1. Commencer Petit​

DEV     →    TEST    →    STAGING    →    PROD
t3.micro t3.small t3.medium m5.large

Surveillez les métriques, puis ajustez.

2. Utiliser les Métriques​

CloudWatch Metrics à surveiller :

CPU Utilization
├── < 20% constamment → Trop grand, réduire
├── 40-70% → Optimal
└── > 80% constamment → Trop petit, augmenter

Memory Utilization
├── < 50% → Peut-être trop de RAM
└── > 80% → Risque de swap, augmenter

3. Considérer Graviton​

Si votre application est :
✅ Linux
✅ Conteneurisée ou interprétée (Python, Node, Java)
✅ Open source

→ Testez les instances Graviton (g) pour économiser !

Résumé​

FamilleCaractéristiqueCas d'Usage
TBurstableDev, sites variables
MÉquilibréApplications générales
CCPU fortCalcul, encodage
RRAM forteBDD, cache
I/DStockage fortBig Data
P/GGPUML, graphisme

Quiz de Validation​

  1. Que signifie "t3.large" ?
  2. Quelle famille pour une base de données en mémoire ?
  3. Qu'est-ce que le "burst" dans la famille T ?
  4. Quel suffixe indique un processeur AMD ?
  5. Pourquoi choisir Graviton ?
  6. Par quelle taille commencer pour un nouveau projet ?

Prochaine section : Authentification et Paires de Clés