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 :
| Type | vCPU | RAM | Baseline CPU | Prix/h (us-east-1) |
|---|---|---|---|---|
| t3.nano | 2 | 0.5 GiB | 5% | $0.0052 |
| t3.micro | 2 | 1 GiB | 10% | $0.0104 |
| t3.small | 2 | 2 GiB | 20% | $0.0208 |
| t3.medium | 2 | 4 GiB | 20% | $0.0416 |
| t3.large | 2 | 8 GiB | 30% | $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 :
| Type | vCPU | RAM | Prix/h |
|---|---|---|---|
| m5.large | 2 | 8 GiB | $0.096 |
| m5.xlarge | 4 | 16 GiB | $0.192 |
| m5.2xlarge | 8 | 32 GiB | $0.384 |
| m6i.large | 2 | 8 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 :
| Type | vCPU | RAM | Prix/h |
|---|---|---|---|
| c5.large | 2 | 4 GiB | $0.085 |
| c5.xlarge | 4 | 8 GiB | $0.170 |
| c6i.2xlarge | 8 | 16 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 :
| Type | vCPU | RAM | Prix/h |
|---|---|---|---|
| r5.large | 2 | 16 GiB | $0.126 |
| r5.xlarge | 4 | 32 GiB | $0.252 |
| r5.2xlarge | 8 | 64 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
| Suffixe | Signification |
|---|---|
| (rien) | Intel |
| a | AMD (souvent moins cher) |
| g | AWS Graviton (ARM, économique) |
| i | Intel dernière génération |
| d | Stockage NVMe local |
| n | Réseau amélioré |
Exemples :
m5.large= Intelm5a.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é
| Famille | Caractéristique | Cas d'Usage |
|---|---|---|
| T | Burstable | Dev, sites variables |
| M | Équilibré | Applications générales |
| C | CPU fort | Calcul, encodage |
| R | RAM forte | BDD, cache |
| I/D | Stockage fort | Big Data |
| P/G | GPU | ML, graphisme |
Quiz de Validation
- Que signifie "t3.large" ?
- Quelle famille pour une base de données en mémoire ?
- Qu'est-ce que le "burst" dans la famille T ?
- Quel suffixe indique un processeur AMD ?
- Pourquoi choisir Graviton ?
- Par quelle taille commencer pour un nouveau projet ?
Prochaine section : Authentification et Paires de Clés