Erreurs Courantes EC2
Vue d'Ensemble
Cette section catalogue les erreurs les plus fréquentes lors de la création et de l'utilisation d'instances EC2, avec leurs causes et solutions.
Erreurs de Création d'Instance
1. InsufficientInstanceCapacity
┌─────────────────────────────────────────────────────────────┐
│ InsufficientInstanceCapacity │
├─────────────────────────────────────────────────────────────┤
│ │
│ Message : │
│ "We currently do not have sufficient capacity in the │
│ Availability Zone you requested" │
│ │
│ Cause : │
│ AWS n'a plus de serveurs disponibles pour ce type │
│ d'instance dans cette AZ spécifique │
│ │
│ Solutions : │
│ 1. Essayer une autre AZ │
│ → us-east-1a → us-east-1b │
│ │
│ 2. Essayer un autre type d'instance │
│ → t3.micro → t3.small │
│ → t3.micro → t3a.micro (AMD) │
│ │
│ 3. Attendre quelques minutes et réessayer │
│ │
│ 4. Utiliser des Spot Instances (si tolérant aux │
│ interruptions) │
│ │
└─────────────────────────────────────────────────────────────┘
2. InstanceLimitExceeded
┌─────────────────────────────────────────────────────────────┐
│ InstanceLimitExceeded │
├─────────────────────────────────────────────────────────────┤
│ │
│ Message : │
│ "You have requested more instances than your current │
│ instance limit allows" │
│ │
│ Cause : │
│ Vous avez atteint le quota maximum d'instances pour │
│ votre compte AWS dans cette région │
│ │
│ Limites par défaut (varient) : │
│ • On-Demand : ~20 instances par type │
│ • Spot : Variable selon le type │
│ │
│ Solutions : │
│ 1. Terminer des instances non utilisées │
│ │
│ 2. Demander une augmentation de quota │
│ → Service Quotas → EC2 → Request quota increase │
│ │
│ 3. Utiliser une autre région │
│ │
└─────────────────────────────────────────────────────────────┘
3. InvalidParameterValue (AMI)
┌─────────────────────────────────────────────────────────────┐
│ InvalidParameterValue - AMI │
├─────────────────────────────────────────────────────────────┤
│ │
│ Message : │
│ "Value (ami-xxxxxxxx) for parameter imageId is invalid" │
│ │
│ Causes possibles : │
│ │
│ 1. AMI inexistante ou supprimée │
│ → Vérifier que l'AMI existe toujours │
│ │
│ 2. AMI dans une autre région │
│ → Les AMI sont régionales ! │
│ → ami-xxx en us-east-1 ≠ ami-xxx en eu-west-1 │
│ │
│ 3. AMI privée sans permission │
│ → Vous n'avez pas accès à cette AMI │
│ │
│ Solution : │
│ Vérifier l'ID de l'AMI dans la bonne région │
│ │
└─────────────────────────────────────────────────────────────┘
4. InvalidGroup.NotFound
┌─────────────────────────────────────────────────────────────┐
│ InvalidGroup.NotFound │
├─────────────────────────────────────────────────────────────┤
│ │
│ Message : │
│ "The security group 'sg-xxxxxxxx' does not exist" │
│ │
│ Causes possibles : │
│ │
│ 1. Security Group supprimé │
│ │
│ 2. Security Group dans un autre VPC │
│ → Les SG sont liés à un VPC spécifique │
│ │
│ 3. Mauvais ID de Security Group │
│ │
│ Solution : │
│ aws ec2 describe-security-groups --group-ids sg-xxx │
│ │
└─────────────────────────────────────────────────────────────┘
5. InvalidSubnetID.NotFound
┌─────────────────────────────────────────────────────────────┐
│ InvalidSubnetID.NotFound │
├─────────────────────────────────────────────────────────────┤
│ │
│ Message : │
│ "The subnet ID 'subnet-xxxxxxxx' does not exist" │
│ │
│ Causes : │
│ • Subnet supprimé │
│ • Subnet dans une autre région │
│ • Mauvais ID de subnet │
│ │
│ Solution : │
│ Vérifier les subnets disponibles : │
│ aws ec2 describe-subnets │
│ │
└─────────────────────────────────────────────────────────────┘
Erreurs de Connectivité
6. SSH Timeout
┌─────────────────────────────────────────────────────────────┐
│ SSH Connection Timeout │
├─────────────────────────────────────────────────────────────┤
│ │
│ Symptôme : │
│ ssh: connect to host X.X.X.X port 22: Connection timed out│
│ │
│ Diagnostic : │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 1. Instance running ? │ │
│ │ └── Vérifier état dans la console │ │
│ │ │ │
│ │ 2. IP publique ? │ │
│ │ └── Instance a-t-elle une IP publique ? │ │
│ │ └── Subnet a-t-il "auto-assign public IP" ? │ │
│ │ │ │
│ │ 3. Security Group ? │ │
│ │ └── Port 22 ouvert ? │ │
│ │ └── Votre IP autorisée ? │ │
│ │ │ │
│ │ 4. NACL ? │ │
│ │ └── Trafic entrant port 22 autorisé ? │ │
│ │ └── Trafic sortant ephemeral ports autorisé ? │ │
│ │ │ │
│ │ 5. Route Table ? │ │
│ │ └── Route vers Internet Gateway ? │ │
│ │ │ │
│ │ 6. Internet Gateway ? │ │
│ │ └── IGW attaché au VPC ? │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
7. Permission Denied (publickey)
┌─────────────────────────────────────────────────────────────┐
│ Permission Denied (publickey) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Message : │
│ Permission denied (publickey,gssapi-keyex,gssapi-with-mic)│
│ │
│ Checklist : │
│ │
│ □ Bonne clé privée ? │
│ └── Vérifier que c'est la clé associée à l'instance │
│ │
│ □ Bon utilisateur ? │
│ └── Amazon Linux : ec2-user │
│ └── Ubuntu : ubuntu │
│ └── Debian : admin │
│ └── RHEL : ec2-user │
│ │
│ □ Permissions de la clé ? │
│ └── chmod 400 ma-cle.pem │
│ │
│ □ Instance lancée avec une clé ? │
│ └── Impossible de se connecter si pas de clé associée │
│ │
└─────────────────────────────────────────────────────────────┘
8. Connection Refused (port 22)
┌─────────────────────────────────────────────────────────────┐
│ Connection Refused │
├─────────────────────────────────────────────────────────────┤
│ │
│ Message : │
│ ssh: connect to host X.X.X.X port 22: Connection refused │
│ │
│ Différence avec Timeout : │
│ • Timeout = Paquet n'arrive pas (réseau/firewall) │
│ • Refused = Paquet arrive mais port fermé │
│ │
│ Causes : │
│ 1. Service SSH non démarré sur l'instance │
│ → Vérifier avec EC2 Serial Console │
│ │
│ 2. Instance pas encore prête │
│ → Attendre que Status Checks passent │
│ │
│ 3. Firewall OS (iptables) │
│ → SSH bloqué au niveau de l'instance │
│ │
└─────────────────────────────────────────────────────────────┘
Erreurs d'État d'Instance
9. Instance Stuck in Pending
┌─────────────────────────────────────────────────────────────┐
│ Instance Stuck in Pending │
├─────────────────────────────────────────────────────────────┤
│ │
│ Symptôme : │
│ Instance reste en état "pending" plus de 10 minutes │
│ │
│ Causes possibles : │
│ 1. Problème de capacité AWS │
│ 2. Problème avec l'AMI │
│ 3. Problème avec le volume EBS root │
│ │
│ Solutions : │
│ 1. Terminer et relancer dans une autre AZ │
│ 2. Essayer une AMI différente │
│ 3. Contacter le support AWS si persiste │
│ │
└─────────────────────────────────────────────────────────────┘
10. Instance Immediately Terminates
┌─────────────────────────────────────────────────────────────┐
│ Instance Terminates Immediately │
├─────────────────────────────────────────────────────────────┤
│ │
│ Symptôme : │
│ Instance passe de pending → running → terminated │
│ en quelques secondes │
│ │
│ Diagnostic : │
│ EC2 → Instances → Sélectionner → Description │
│ → State transition reason │
│ │
│ Causes courantes : │
│ │
│ "Client.VolumeLimitExceeded" │
│ → Trop de volumes EBS │
│ │
│ "Client.InternalError" │
│ → Problème avec l'AMI (corrompue) │
│ │
│ "Server.InternalError" │
│ → Problème côté AWS, réessayer │
│ │
│ "Client.InvalidSnapshot.NotFound" │
│ → Snapshot de l'AMI supprimé │
│ │
└─────────────────────────────────────────────────────────────┘
11. Status Check Failed
┌─────────────────────────────────────────────────────────────┐
│ Status Check Failed │
├─────────────────────────────────────────────────────────────┤
│ │
│ Deux types de Status Checks : │
│ │
│ SYSTEM STATUS CHECK │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Vérifie : Infrastructure AWS │ │
│ │ • Réseau physique │ │
│ │ • Hyperviseur │ │
│ │ • Alimentation │ │
│ │ │ │
│ │ Si échec : │ │
│ │ → Problème AWS, pas de votre faute │ │
│ │ → Stop/Start l'instance (migration vers autre host) │ │
│ │ → Ou attendre qu'AWS résolve │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ INSTANCE STATUS CHECK │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Vérifie : Votre configuration │ │
│ │ • OS répond │ │
│ │ • Configuration réseau de l'instance │ │
│ │ • Système de fichiers │ │
│ │ │ │
│ │ Si échec : │ │
│ │ → Problème de votre configuration │ │
│ │ → Vérifier les logs système │ │
│ │ → Vérifier le disque (plein ?) │ │
│ │ → Vérifier la config réseau dans l'OS │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Tableau Récapitulatif
| Erreur | Cause Probable | Solution Rapide |
|---|---|---|
| InsufficientCapacity | Pas de serveurs dispo | Changer AZ ou type |
| InstanceLimitExceeded | Quota atteint | Terminer ou demander quota |
| InvalidAMI | Mauvais ID ou région | Vérifier AMI dans la région |
| SSH Timeout | Réseau/SG | Vérifier SG port 22 |
| Permission Denied | Mauvaise clé/user | Vérifier clé et utilisateur |
| Instance Terminates | Problème AMI/EBS | Vérifier state transition reason |
| Status Check Failed | Infra ou config | Stop/Start ou debug OS |
Quiz de Validation
- Quelle est la différence entre SSH timeout et connection refused ?
- Que signifie "InsufficientInstanceCapacity" ?
- Comment trouver la raison d'une terminaison immédiate ?
- Quel utilisateur SSH pour Ubuntu ?
- Que faire si System Status Check échoue ?
Prochaine section : Méthode de Diagnostic