انتقل إلى المحتوى الرئيسي

الأخطاء الشائعة 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 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ تحقق : تكوينك │ │
│ │ • نظام التشغيل يستجيب │ │
│ │ • تكوين الشبكة للمثيل │ │
│ │ • نظام الملفات │ │
│ │ │ │
│ │ إذا فشل : │ │
│ │ → مشكلة في تكوينك │ │
│ │ → تحقق من سجلات النظام │ │
│ │ → تحقق من القرص (ممتلئ؟) │ │
│ │ → تحقق من تكوين الشبكة في نظام التشغيل │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

جدول ملخص​

ErreurCause ProbableSolution Rapide
InsufficientCapacityلا توجد خوادم متاحةتغيير AZ أو النوع
InstanceLimitExceededالحد الأقصى تم الوصول إليهإنهاء أو طلب زيادة الحصة
InvalidAMIمعرف أو منطقة خاطئةتحقق من AMI في المنطقة
SSH Timeoutشبكة/SGتحقق من SG منفذ 22
Permission Deniedمفتاح/مستخدم خاطئتحقق من المفتاح والمستخدم
Instance Terminatesمشكلة AMI/EBSتحقق من سبب انتقال الحالة
Status Check Failedبنية تحتية أو تكوينإيقاف/تشغيل أو تصحيح نظام التشغيل

اختبار التحقق​

  1. ما الفرق بين SSH timeout وconnection refused؟
  2. ماذا يعني "InsufficientInstanceCapacity"؟
  3. كيف تجد سبب الإنهاء الفوري؟
  4. ما هو المستخدم SSH لأوبونتو؟
  5. ماذا تفعل إذا فشل System Status Check؟

القسم التالي: طريقة التشخيص