الغوص العميق في هندسة وخدمات AWS

خدمات حوسبة AWS: EC2، Lambda، ECS و EKS

4 دقيقة للقراءة

اختيار خدمة الحوسبة هو أحد أكثر مواضيع المقابلات شيوعاً. فهم متى تستخدم كل خدمة يُظهر النضج المعماري.

EC2: الأساس

أنواع المثيلات والاختيار

العائلة حالة الاستخدام مثال
للأغراض العامة (M/T) خوادم الويب، قواعد البيانات الصغيرة m7i.xlarge، t3.medium
محسّنة للحوسبة (C) المعالجة الدفعية، الألعاب c7i.2xlarge
محسّنة للذاكرة (R/X) قواعد البيانات في الذاكرة r7i.4xlarge، x2idn.large
محسّنة للتخزين (I/D) مستودعات البيانات، HDFS i4i.large، d3.xlarge
مُسرَّعة (P/G) تدريب ML، الرسومات p5.48xlarge، g5.xlarge

سؤال المقابلة: تحديد الحجم الصحيح

س: "تطبيق الويب الخاص بك يستخدم مثيلات m5.2xlarge لكن متوسط CPU هو 15%. ماذا توصي؟"

ج: حلل مقاييس CloudWatch لـ CPU والذاكرة والشبكة. اعتبر:

  1. تصغير الحجم إلى m5.large (أصغر 4 مرات، أرخص 4 مرات)
  2. استخدم Compute Savings Plans للأحمال المتوقعة (توفير حتى 72%)
  3. اعتبر Graviton (m7g) لتخفيض إضافي 20-40% في التكلفة
  4. طبق التوسع التلقائي للتعامل مع الذروات

Lambda: الحوسبة بدون خادم

الخصائص الرئيسية

  • المدة القصوى: 15 دقيقة
  • الذاكرة: 128 MB إلى 10,240 MB
  • التزامن: 1,000 افتراضياً (يمكن زيادتها)
  • البدء البارد: 100ms-1s (يختلف حسب وقت التشغيل)

متى تستخدم Lambda

مناسبة:

  • المعالجة المدفوعة بالأحداث (محفزات S3، API Gateway)
  • المهام قصيرة التشغيل (< 15 دقيقة)
  • حركة المرور المتغيرة/غير المتوقعة
  • APIs الخدمات الصغيرة مع متطلبات تأخير منخفض

غير مناسبة:

  • العمليات طويلة التشغيل (استخدم Step Functions أو ECS)
  • الحمل عالي التردد والثابت (EC2 أرخص على نطاق واسع)
  • الأحمال المكثفة لـ GPU

سؤال المقابلة: تكلفة Lambda مقابل EC2

س: "واجهة API الخاصة بك تستقبل 10 ملايين طلب/شهر، كل واحدة تستغرق 200ms وتستخدم 512MB. هل يجب استخدام Lambda أو EC2؟"

ج: احسب تكلفة Lambda:

  • الطلبات: 10M × $0.20/1M = $2.00
  • الحوسبة: 10M × 0.2s × 0.5GB × $0.0000166667 = $16.67
  • الإجمالي: ~$19/شهر

EC2 t3.medium يمكنها التعامل مع هذا لكن تتطلب عبء إداري. Lambda تفوز بالبساطة عند هذا المستوى. فوق ~50 مليون طلب/شهر، EC2 تصبح أكثر فعالية من حيث التكلفة.

ECS: تنسيق الحاويات

أنواع الإطلاق

النوع حالة الاستخدام التسعير
EC2 التحكم في البنية التحتية ادفع مقابل مثيلات EC2
Fargate حاويات بدون خادم ادفع لكل vCPU/ساعة ذاكرة

مكونات هندسة ECS

  • الكتلة (Cluster): تجميع منطقي للخدمات
  • الخدمة (Service): تحافظ على عدد المهام المطلوب
  • تعريف المهمة (Task Definition): تكوين الحاوية (مثل Dockerfile + docker-compose)
  • المهمة (Task): مثيل حاوية قيد التشغيل

سؤال المقابلة: ECS مقابل EKS

س: "متى تختار ECS على EKS؟"

ج: اختر ECS عندما:

  • التكامل الأصلي مع AWS هو الأولوية
  • الفريق يفتقر إلى خبرة Kubernetes
  • نموذج النشر الأبسط مقبول
  • الارتباط بالمورد ليس مصدر قلق

اختر EKS عندما:

  • خبرة Kubernetes موجودة في الفريق
  • الحاجة لقابلية النقل متعددة السحابات
  • نظام Kubernetes الغني مطلوب
  • الشبكات المعقدة (service mesh) مطلوبة

EKS: Kubernetes المُدار

تسعير EKS

  • مستوى التحكم: $0.10/ساعة (~$73/شهر)
  • عقد العمال: تسعير EC2/Fargate
  • لا رسوم إضافية للإضافات المُدارة

سؤال المقابلة: أنواع عقد EKS

س: "ما هي المقايضات بين مجموعات العقد المُدارة، العقد المُدارة ذاتياً، و Fargate لـ EKS؟"

الخيار الإيجابيات السلبيات
مجموعات العقد المُدارة AWS تتولى التحديثات، توسع سهل تخصيص أقل
العقد المُدارة ذاتياً تحكم كامل، AMIs مخصصة أنت تدير التحديثات
Fargate بدون خادم، لا عقد لإدارتها تكلفة أعلى لكل vCPU، ميزات محدودة

إطار قرار الحوسبة

تحتاج GPU؟ → أنواع مثيلات P/G
تحتاج بدون خادم؟
  └── قصيرة العمر (< 15 دقيقة)؟ → Lambda
  └── أطول؟ → Fargate أو Step Functions
تحتاج حاويات؟
  └── Kubernetes مطلوب؟ → EKS
  └── نموذج أبسط؟ → ECS
الافتراضي → EC2 مع Auto Scaling

نصيحة للمقابلة: ناقش دائماً آثار التكلفة، سلوك التوسع، والعبء التشغيلي عند مقارنة خيارات الحوسبة.

بعد ذلك، سنستكشف خدمات تخزين AWS ومعايير الاختيار. :::

اختبار

الوحدة 2: الغوص العميق في هندسة وخدمات AWS

خذ الاختبار