الأخطاء الشائعة EC2
نظرة عامة
تسجل هذه القسم الأخطاء الأكثر شيوعًا عند إنشاء واستخدام مثيلات EC2، مع أسبابها وحلولها.
أخطاء إنشاء المثيل
1. InsufficientInstanceCapacity
┌─────────────────────────────────────────────────────────────┐
│ InsufficientInstanceCapacity │
├─────────────────────────────────────────────────────────────┤
│ │
│ Message : │
│ "We currently do not have sufficient capacity in the │
│ Availability Zone you requested" │
│ │
│ Cause : │
│ AWS ليس لديها خوادم متاحة لهذا النوع من المثيلات في │
│ منطقة التوافر المحددة │
│ │
│ Solutions : │
│ 1. محاولة منطقة توافر أخرى │
│ → us-east-1a → us-east-1b │
│ │
│ 2. محاولة نوع مثيل آخر │
│ → t3.micro → t3.small │
│ → t3.micro → t3a.micro (AMD) │
│ │
│ 3. الانتظار لبضع دقائق والمحاولة مرة أخرى │
│ │
│ 4. استخدام Spot Instances (إذا كان يمكن تحمل │
│ الانقطاعات) │
│ │
└─────────────────────────────────────────────────────────────┘
2. InstanceLimitExceeded
┌─────────────────────────────────────────────────────────────┐
│ InstanceLimitExceeded │
├─────────────────────────────────────────────────────────────┤
│ │
│ Message : │
│ "You have requested more instances than your current │
│ instance limit allows" │
│ │
│ Cause : │
│ لقد وصلت إلى الحد الأقصى لعدد المثيلات لحساب AWS الخاص بك │
│ في هذه المنطقة │
│ │
│ Limites par défaut (varient) : │
│ • On-Demand : ~20 instances par type │
│ • Spot : Variable selon le type │
│ │
│ Solutions : │
│ 1. إنهاء المثيلات غير المستخدمة │
│ │
│ 2. طلب زيادة الحصة │
│ → Service Quotas → EC2 → Request quota increase │
│ │
│ 3. استخدام منطقة أخرى │
│ │
└─────────────────────────────────────────────────────────────┘
3. InvalidParameterValue (AMI)
┌─────────────────────────────────────────────────────────────┐
│ InvalidParameterValue - AMI │
├─────────────────────────────────────────────────────────────┤
│ │
│ Message : │
│ "Value (ami-xxxxxxxx) for parameter imageId is invalid" │
│ │
│ Causes possibles : │
│ │
│ 1. AMI غير موجودة أو محذوفة │
│ → تحقق من أن AMI لا تزال موجودة │
│ │
│ 2. AMI في منطقة أخرى │
│ → AMI إقليمية! │
│ → ami-xxx في us-east-1 ≠ ami-xxx في eu-west-1 │
│ │
│ 3. AMI خاصة بدون إذن │
│ → ليس لديك حق الوصول إلى هذه AMI │
│ │
│ Solution : │
│ تحقق من معرف AMI في المنطقة الصحيحة │
│ │
└─────────────────────────────────────────────────────────────┘
4. InvalidGroup.NotFound
┌─────────────────────────────────────────────────────────────┐
│ InvalidGroup.NotFound │
├─────────────────────────────────────────────────────────────┤
│ │
│ Message : │
│ "The security group 'sg-xxxxxxxx' does not exist" │
│ │
│ Causes possibles : │
│ │
│ 1. مجموعة الأمان محذوفة │
│ │
│ 2. مجموعة الأمان في VPC آخر │
│ → مجموعات الأمان مرتبطة بـ VPC محدد │
│ │
│ 3. معرف مجموعة الأمان غير صحيح │
│ │
│ 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 : │
│ • الشبكة الفرعية محذوفة │
│ • الشبكة الفرعية في منطقة أخرى │
│ • معرف الشبكة الفرعية غير صحيح │
│ │
│ Solution : │
│ تحقق من الشبكات الفرعية المتاحة : │
│ aws ec2 describe-subnets │
│ │
└─────────────────────────────────────────────────────────────┘
أخطاء الاتصال
6. SSH Timeout
┌─────────────────────────────────────────────────────────────┐
│ SSH Connection Timeout │
├─────────────────────────────────────────────────────────────┤
│ │
│ Symptôme : │
│ ssh: connect to host X.X.X.X port 22: Connection timed out│
│ │
│ Diagnostic : │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 1. هل المثيل يعمل؟ │ │
│ │ └── تحقق من الحالة في وحدة التحكم │ │
│ │ │ │
│ │ 2. هل هناك IP عام؟ │ │
│ │ └── هل لدى المثيل IP عام؟ │ │
│ │ └── هل الشبكة الفرعية تحتوي على "تعيين تلقائي لـ │ │
│ │ IP العام"؟ │ │
│ │ │ │
│ │ 3. مجموعة الأمان؟ │ │
│ │ └── هل منفذ 22 مفتوح؟ │ │
│ │ └── هل IP الخاص بك مسموح؟ │ │
│ │ │ │
│ │ 4. NACL؟ │ │
│ │ └── هل حركة المرور الواردة لمنفذ 22 مسموحة؟ │ │
│ │ └── هل حركة المرور الصادرة للمنافذ المؤقتة مسموحة؟│ │
│ │ │ │
│ │ 5. جدول التوجيه؟ │ │
│ │ └── هل هناك توجيه إلى بوابة الإنترنت؟ │ │
│ │ │ │
│ │ 6. بوابة الإنترنت؟ │ │
│ │ └── هل IGW متصل بـ VPC؟ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
7. Permission Denied (publickey)
┌─────────────────────────────────────────────────────────────┐
│ Permission Denied (publickey) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Message : │
│ Permission denied (publickey,gssapi-keyex,gssapi-with-mic)│
│ │
│ Checklist : │
│ │
│ □ هل المفتاح الخاص صحيح؟ │
│ └── تحقق من أنه المفتاح المرتبط بالمثيل │
│ │
│ □ هل المستخدم صحيح؟ │
│ └── Amazon Linux : ec2-user │
│ └── Ubuntu : ubuntu │
│ └── Debian : admin │
│ └── RHEL : ec2-user │
│ │
│ □ هل أذونات المفتاح صحيحة؟ │
│ └── chmod 400 ma-cle.pem │
│ │
│ □ هل المثيل تم تشغيله بمفتاح؟ │
│ └── لا يمكن الاتصال إذا لم يكن هناك مفتاح مرتبط │
│ │
└─────────────────────────────────────────────────────────────┘
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 = الحزمة لا تصل (شبكة/جدار ناري) │
│ • Refused = الحزمة تصل لكن المنفذ مغلق │
│ │
│ Causes : │
│ 1. خدمة SSH غير مفعلة على المثيل │
│ → تحقق باستخدام EC2 Serial Console │
│ │
│ 2. المثيل لم يكن جاهزًا بعد │
│ → انتظر حتى تمر فحوصات الحالة │
│ │
│ 3. جدار ناري OS (iptables) │
│ → SSH محظور على مستوى المثيل │
│ │
└─────────────────────────────────────────────────────────────┘
أخطاء حالة المثيل
9. Instance Stuck in Pending
┌─────────────────────────────────────────────────────────────┐
│ Instance Stuck in Pending │
├─────────────────────────────────────────────────────────────┤
│ │
│ Symptôme : │
│ المثيل يبقى في حالة "قيد الانتظار" لأكثر من 10 دقائق │
│ │
│ Causes possibles : │
│ 1. مشكلة في قدرة AWS │
│ 2. مشكلة مع AMI │
│ 3. مشكلة مع الجذر EBS volume │
│ │
│ Solutions : │
│ 1. إنهاء وإعادة التشغيل في منطقة توافر أخرى │
│ 2. محاولة AMI مختلفة │
│ 3. الاتصال بدعم AWS إذا استمرت المشكلة │
│ │
└─────────────────────────────────────────────────────────────┘
10. Instance Immediately Terminates
┌─────────────────────────────────────────────────────────────┐
│ Instance Terminates Immediately │
├─────────────────────────────────────────────────────────────┤
│ │
│ Symptôme : │
│ المثيل ينتقل من قيد الانتظار → قيد التشغيل → منتهي │
│ في غضون ثوانٍ │
│ │
│ Diagnostic : │
│ EC2 → Instances → Sélectionner → Description │
│ → State transition reason │
│ │
│ Causes courantes : │
│ │
│ "Client.VolumeLimitExceeded" │
│ → عدد كبير من EBS volumes │
│ │
│ "Client.InternalError" │
│ → مشكلة مع AMI (تالف) │
│ │
│ "Server.InternalError" │
│ → مشكلة في جانب AWS، حاول مرة أخرى │
│ │
│ "Client.InvalidSnapshot.NotFound" │
│ → Snapshot لـ AMI محذوف │
│ │
└─────────────────────────────────────────────────────────────┘
11. Status Check Failed
┌─────────────────────────────────────────────────────────────┐
│ Status Check Failed │
├─────────────────────────────────────────────────────────────┤
│ │
│ Deux types de Status Checks : │
│ │
│ SYSTEM STATUS CHECK │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ تحقق : بنية AWS التحتية │ │
│ │ • الشبكة الفيزيائية │ │
│ │ • الـ hypervisor │ │
│ │ • الطاقة │ │
│ │ │ │
│ │ إذا فشل : │ │
│ │ → مشكلة في AWS، ليست خطأك │ │
│ │ → إيقاف/تشغيل المثيل (الانتقال إلى مضيف آخر) │ │
│ │ → أو الانتظار حتى تحل AWS المشكلة │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ INSTANCE STATUS CHECK │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ تحقق : تكوينك │ │
│ │ • نظام التشغيل يستجيب │ │
│ │ • تكوين الشبكة للمثيل │ │
│ │ • نظام الملفات │ │
│ │ │ │
│ │ إذا فشل : │ │
│ │ → مشكلة في تكوينك │ │
│ │ → تحقق من سجلات النظام │ │
│ │ → تحقق من القرص (ممتلئ؟) │ │
│ │ → تحقق من تكوين الشبكة في نظام التشغيل │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
جدول ملخص
| Erreur | Cause Probable | Solution Rapide |
|---|---|---|
| InsufficientCapacity | لا توجد خوادم متاحة | تغيير AZ أو النوع |
| InstanceLimitExceeded | الحد الأقصى تم الوصول إليه | إنهاء أو طلب زيادة الحصة |
| InvalidAMI | معرف أو منطقة خاطئة | تحقق من AMI في المنطقة |
| SSH Timeout | شبكة/SG | تحقق من SG منفذ 22 |
| Permission Denied | مفتاح/مستخدم خاطئ | تحقق من المفتاح والمستخدم |
| Instance Terminates | مشكلة AMI/EBS | تحقق من سبب انتقال الحالة |
| Status Check Failed | بنية تحتية أو تكوين | إيقاف/تشغيل أو تصحيح نظام التشغيل |
اختبار التحقق
- ما الفرق بين SSH timeout وconnection refused؟
- ماذا يعني "InsufficientInstanceCapacity"؟
- كيف تجد سبب الإنهاء الفوري؟
- ما هو المستخدم SSH لأوبونتو؟
- ماذا تفعل إذا فشل System Status Check؟
القسم التالي: طريقة التشخيص