الجزء 4 من سلسلة تعلّم AWS من الصفر

EC2: خيارات الدفع والشبكة

كيف تدفع أقل بكثير على نفس السيرفر بخطط التوفير وSpot، والفرق بين العناوين العامة والخاصة وElastic IP، ومجموعات الوضع، وبطاقات الشبكة، والسبات.

في هذا المقال
  1. خيارات الدفع
  2. العناوين: خاصة وعامة وElastic IP
  3. مجموعات الوضع (Placement Groups)
  4. بطاقات الشبكة (ENI)
  5. السبات (Hibernate)
  6. الخلاصة
  7. اختبر نفسك

في الجزء الثالث شغّلنا سيرفر ودفعنا السعر العادي. بس نفس السيرفر ممكن تدفع عليه أقل بكثير، حسب طريقة استخدامك له. وفي هذا الجزء بنحل كمان مشكلة بقيت معلقة: عنوان IP اللي يتغيّر كل ما توقف السيرفر.

خيارات الدفع

الخيار الفكرة التوفير يناسب
On-Demand تدفع بالثانية بدون أي التزام بدون خصم التجارب والأحمال غير المتوقعة
Savings Plans تلتزم بمبلغ بالساعة لمدة سنة أو ثلاث كبير الأحمال المستمرة، وهو الخيار الأول غالباً
Reserved Instances تحجز نوع سيرفر محدد لسنة أو ثلاث كبير الأحمال الثابتة جداً
Spot تستخدم السعة الفائضة عند AWS الأكبر، حتى 90% المهام اللي تتحمل الانقطاع
Dedicated Hosts سيرفر فعلي كامل لك وحدك لا، الأغلى التراخيص المرتبطة بالجهاز والامتثال
Dedicated Instances سيرفرك على جهاز ما يشاركك فيه حساب ثاني لا متطلبات العزل
Capacity Reservations تضمن سعة في منطقة توفر معينة لا، بس تضمن التوفر أحداث مهمة ما تتحمل نقص السعة

Spot: أرخص شي، بشرط

سيرفرات Spot رخيصة جداً، لكن AWS تقدر تسترجعها متى ما احتاجت السعة، وتعطيك إشعار قبلها بدقيقتين فقط. فهي ممتازة للمهام اللي تقدر تتوقف وتكمّل: معالجة البيانات، وترميز الفيديو، وخطوط CI، والحاويات.

ولا تصلح لقاعدة بيانات أو أي شي ما يتحمل الانقطاع المفاجئ. وتقدر تشوف الأسعار الحالية بنفسك:

Bash
aws ec2 describe-spot-price-history \
  --instance-types t3.micro \
  --product-descriptions "Linux/UNIX" \
  --start-time "$(date -u +%Y-%m-%dT%H:%M:%S)" \
  --query "SpotPriceHistory[].[AvailabilityZone,SpotPrice]" \
  --output table

كيف تختار؟

القاعدة العملية لأي مشروع حقيقي، هي خليط:

  1. الحد الأدنى اللي دايماً شغّال: غطّيه بـ Savings Plans.
  2. الزيادات وقت الضغط: On-Demand.
  3. المهام اللي تتحمل الانقطاع: Spot.

ولا تلتزم بسنة قبل ما تعرف استهلاكك الفعلي. شغّل كم شهر على On-Demand أول، وشوف الأرقام في Cost Explorer.

العناوين: خاصة وعامة وElastic IP

كل سيرفر له عنوان خاص للتواصل داخل شبكتك، وقد يكون له عنوان عام يوصله من الإنترنت.

النوع يوصله إذا أوقفت السيرفر
خاص (Private IP) داخل الشبكة فقط يبقى نفسه
عام (Public IP) من الإنترنت يتغيّر
Elastic IP من الإنترنت يبقى نفسه

Elastic IP عنوان عام ثابت تملكه في حسابك وتربطه بأي سيرفر، وتقدر تنقله لسيرفر ثاني لو تعطّل الأول:

Bash
# احجز عنوان ثابت
aws ec2 allocate-address

# اربطه بالسيرفر (استبدل المعرّفات بالقيم عندك)
aws ec2 associate-address \
  --instance-id i-0123456789abcdef0 \
  --allocation-id eipalloc-0123456789abcdef0

# لما تخلص: افصله ثم حرّره عشان ما تدفع عليه
aws ec2 disassociate-address --association-id eipassoc-0123456789abcdef0
aws ec2 release-address --allocation-id eipalloc-0123456789abcdef0

وفي أغلب الحالات ما تحتاج Elastic IP أصلاً. الحل الأنظف إنك تربط اسم نطاق بموزّع حمل، وهذا بنشوفه في قسم التوفر العالي.

مجموعات الوضع (Placement Groups)

عادةً AWS تقرر وين يعيش سيرفرك. لو تبي تتحكم في هذا، تستخدم مجموعة وضع، ولها ثلاث استراتيجيات:

عنقود (Cluster) جهاز واحد أسرع اتصال، أكبر خطر توزيع (Spread) كل سيرفر على جهاز مستقل تقسيم (Partition) مجموعات معزولة عن بعض
الاستراتيجيات الثلاث لمجموعات الوضع. المربعات الخضراء سيرفرات، والمستطيلات الرمادية أجهزة فعلية.
الاستراتيجية الفكرة تناسب عيبها
Cluster السيرفرات قريبة جداً في منطقة توفر واحدة أقل تأخير: الحوسبة العالية والأنظمة المالية تعطّل الجهاز يوقفهم كلهم
Spread كل سيرفر على جهاز مختلف عدد قليل من السيرفرات الحرجة حد أقصى 7 سيرفرات لكل منطقة توفر
Partition مجموعات سيرفرات، كل مجموعة على أجهزة مستقلة الأنظمة الموزعة الضخمة مثل Kafka وCassandra وHadoop تحتاج نظام يفهم هذا التوزيع

بطاقات الشبكة (ENI)

ENI (Elastic Network Interface) بطاقة شبكة افتراضية، تحمل العنوان الخاص ومجموعات الأمان. أهم ميزة فيها: تقدر تفصلها من سيرفر وتركّبها على سيرفر ثاني في نفس منطقة التوفر، فينتقل معها العنوان. وهذا يسهّل التحويل السريع لسيرفر احتياطي.

السبات (Hibernate)

إذا أوقفت سيرفر عادي، ضاع كل اللي في الذاكرة (RAM)، ولما يقوم يعيد الإقلاع من أوله. أما السبات فيحفظ محتوى الذاكرة في قرص النظام، ولما تشغّله يكمل من حيث وقف، وهذا مفيد للتطبيقات اللي تاخذ وقت طويل في الإقلاع أو تجهيز الكاش.

بشروط: قرص النظام لازم يكون EBS مشفّر وفيه مساحة تكفي الذاكرة، وتفعّله وقت إنشاء السيرفر، وما يقدر يبقى في السبات أكثر من 60 يوم.

الخلاصة

  • On-Demand للمرونة، وSavings Plans للأحمال المستمرة، وSpot للمهام اللي تتحمل الانقطاع. والأذكى خليط منها.
  • العنوان العام يتغيّر مع الإيقاف، وElastic IP ثابت، وكل عناوين IPv4 العامة مدفوعة.
  • Cluster للسرعة، وSpread للعزل، وPartition للأنظمة الموزعة الضخمة.
  • ENI بطاقة شبكة تنتقل بين السيرفرات، والسبات يحفظ الذاكرة ويسرّع الإقلاع.

اختبر نفسك

قبل ما تكمل، جرّب هذي الأسئلة عشان تتأكد إنك فهمت الجزء. كل سؤال موقف عملي، وبعد ما تجاوب يطلع لك الشرح.

السؤال 1 من 5

متجر يشغّل 10 سيرفرات طول الوقت، ويتوقع يستمر هذا سنين. وفي العروض يحتاج حتى 10 زيادة لكم ساعة. وبالليل يشتغل تقرير يقدر يعيد نفسه لو انقطع. أي خليط يكلف أقل؟

اعرض الجواب

الجواب الصحيح: B

كل نوع حمل ياخذ الخيار اللي يناسبه: التزام للي يشتغل دايماً، وبدون التزام للقمم القصيرة، وسعة فائضة للشغل اللي يتحمل الانقطاع.

  • A: هذا أغلى طريقة لتشغيل سيرفرات ما توقف أبداً.
  • C: AWS تقدر تسترجع سيرفرات Spot، وهذا ممكن يوقف المتجر وقت العرض.
  • D: بتدفع السنة كلها على 10 سيرفرات تحتاجها لكم ساعة.

للمراجعة: كيف تختار؟ في هذا الجزء، وChoosing a purchasing option في وثائق AWS.

السؤال 2 من 5

شركة تنقل قاعدة بيانات رخصتها مربوطة بعدد المقابس والأنوية الفعلية، وتبي تستمر على نفس الرخصة. أي خيار يناسب؟

اعرض الجواب

الجواب الصحيح: A

Dedicated Host سيرفر فعلي كامل لك، ويبين لك مقابسه وأنويته، وهذا اللي يحتاجه هذا النوع من الرخص.

  • B: تشتغل على عتاد معزول، بس ما تبين لك المقابس والأنوية.
  • C: ممكن تنقطع، وما لها علاقة بالرخص.
  • D: تضمن السعة في منطقة توفر، وما تعطيك سيرفر فعلي خاص.

للمراجعة: خيارات الدفع في هذا الجزء، وAmazon EC2 Dedicated Hosts في وثائق AWS.

السؤال 3 من 5

جدار حماية عند شريك يقبل الاتصال من عنوان ثابت واحد فقط. وسيرفرك يتصل بهذا الشريك، وينوقف كل ليلة عشان التوفير. كيف تبقي عنوانه العام نفسه؟

اعرض الجواب

الجواب الصحيح: D

Elastic IP يتبع حسابك ويبقى نفسه مع الإيقاف والتشغيل. وتذكر إن عناوين IPv4 العامة عليها رسوم بالساعة.

  • A: هذا العنوان يتغير كل ما أوقفت السيرفر وشغلته.
  • B: العنوان الخاص ما يوصله أحد من الإنترنت.
  • C: ENI يحتفظ بعنوانه الخاص، بس ما يعطيك عنوان عام ثابت لحاله.

للمراجعة: العناوين في هذا الجزء، وElastic IP addresses في وثائق AWS.

السؤال 4 من 5

فريق يشغّل قاعدة بيانات موزعة من 60 عقدة في منطقة توفر وحدة. وعشان يحصر الأعطال، لازم عقد كل مجموعة ما تشارك المجموعات الثانية نفس الـ Rack، ولازم القاعدة تعرف كل عقدة في أي مجموعة. أي استراتيجية تناسب؟

اعرض الجواب

الجواب الصحيح: C

Partition يقسم السيرفرات لمجموعات على Racks منفصلة، ويخلي برنامجك يشوف كل سيرفر في أي Partition.

  • A: يجمع السيرفرات قريب من بعض، فعطل عتاد واحد ممكن يوصل لكثير منها.
  • B: يسمح بسبع سيرفرات شغالة كحد أقصى في منطقة التوفر، وهذا بعيد عن 60.
  • D: حجم السيرفر ما يعطيك تحكم في أي Rack ينزل عليه.

للمراجعة: مجموعات الوضع في هذا الجزء، وPlacement strategies في وثائق AWS.

السؤال 5 من 5

تطبيق ياخذ 15 دقيقة عشان يجهز الكاش في الذاكرة، وسيرفره ينوقف كل ليلة. يخطط الفريق يستخدم السبات عشان يكمل من مكانه. أي شرطين لازم يحققهم؟ (اختر اثنين.)

اعرض الجواب

الجواب الصحيح: A + E

السبات يحفظ الذاكرة في قرص النظام، فلازم يكون EBS ومشفر. وما ينفع تفعله على سيرفر موجود، سواء شغال أو موقوف.

  • B: نوع العنوان ما له علاقة بالسبات.
  • C: هذا عكس المطلوب، لأن Instance Store ما يحفظ البيانات مع الإيقاف.
  • D: السبات ما يحتاج عتاد مخصص.

للمراجعة: السبات في هذا الجزء، وPrerequisites for hibernation في وثائق AWS.

في الجزء الخامس نكمل قسم الخوادم بالتخزين: الأقراص وصور النظام وأنظمة الملفات المشتركة.