الغوص العميق في هندسة وخدمات AWS
خدمات حوسبة AWS: EC2، Lambda، ECS و EKS
اختيار خدمة الحوسبة هو أحد أكثر مواضيع المقابلات شيوعاً. فهم متى تستخدم كل خدمة يُظهر النضج المعماري.
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 والذاكرة والشبكة. اعتبر:
- تصغير الحجم إلى m5.large (أصغر 4 مرات، أرخص 4 مرات)
- استخدم Compute Savings Plans للأحمال المتوقعة (توفير حتى 72%)
- اعتبر Graviton (m7g) لتخفيض إضافي 20-40% في التكلفة
- طبق التوسع التلقائي للتعامل مع الذروات
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 ومعايير الاختيار. :::