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

تخزين السيرفرات: EBS وAMI وEFS

وين تحفظ بيانات السيرفر؟ أقراص EBS ولقطاتها، وصور النظام AMI، والتخزين المحلي، ونظام الملفات المشترك EFS، ومتى تختار كل واحد.

في هذا المقال
  1. أقراص EBS
  2. صور النظام (AMI)
  3. التخزين المحلي (Instance Store)
  4. نظام الملفات المشترك (EFS)
  5. أيهم تختار؟
  6. عملي: أضف قرص وخذ منه لقطة
  7. الخلاصة
  8. اختبر نفسك

في الأجزاء السابقة شغّلنا سيرفرات، بس وين تعيش بياناتها؟ وش يصير لها لو حذفنا السيرفر؟ وكيف تتشارك بيانات بين أكثر من سيرفر؟

هذا الجزء يجاوب على هذي الأسئلة، ويكمل قسم الخوادم. عندك ثلاثة أنواع من التخزين، وكل واحد له مكانه:

منطقة توفر A منطقة توفر B سيرفر Instance Store EBS سيرفر Instance Store EBS EFS: ملفات مشتركة بين كل السيرفرات
Instance Store داخل الجهاز نفسه، وقرص EBS مربوط بسيرفر في نفس منطقة التوفر، وEFS مشترك بين السيرفرات عبر مناطق التوفر.

أقراص EBS

EBS (Elastic Block Store) قرص شبكي توصله بالسيرفر. يتصرف مثل قرص عادي، لكنه مستقل عن السيرفر، فبياناته تبقى حتى لو حذفت السيرفر. وهذا القرص اللي يقلع منه سيرفرك غالباً.

أهم شي تعرفه عنه:

  • مربوط بمنطقة توفر واحدة. قرص في eu-central-1a ما يتركب مباشرة على سيرفر في eu-central-1b.
  • لسيرفر واحد في الوقت عادةً، والسيرفر الواحد يقدر يركّب كذا قرص. والاستثناء ميزة Multi-Attach في أقراص io1 وio2، داخل نفس منطقة التوفر، وتحتاج نظام ملفات يفهم هذا.
  • الحذف مع السيرفر: قرص النظام ينحذف مع السيرفر افتراضياً، والأقراص الإضافية تبقى. وتقدر تغيّر هذا من إعداد Delete on Termination.
  • تدفع على المساحة المحجوزة، مو المستخدمة.

أنواع الأقراص

النوع وصفه يناسب
gp3 SSD عام، تحدد سرعته مستقلة عن حجمه، ويبدأ من 3000 IOPS الخيار الافتراضي لأغلب الحالات
gp2 SSD عام أقدم، سرعته مرتبطة بحجمه الأنظمة القديمة، واختر gp3 بدله
io2 / io1 SSD بأداء عالٍ مضمون قواعد البيانات الحرجة
st1 قرص صلب سريع النقل، رخيص البيانات الضخمة والسجلات
sc1 قرص صلب للبيانات الباردة، الأرخص أرشيف نادر الوصول

IOPS عدد عمليات القراءة والكتابة في الثانية، وهو اللي يهم قواعد البيانات. وThroughput كمية البيانات المنقولة في الثانية، وهو اللي يهم الملفات الكبيرة. والأقراص الصلبة (st1 وsc1) ما تصلح أقراص إقلاع.

اللقطات (Snapshots)

اللقطة نسخة احتياطية من القرص في لحظة معينة. تحفظ التغييرات فقط بعد أول لقطة، فتوفّر في التكلفة. وتقدر من اللقطة تنشئ قرص جديد في أي منطقة توفر، أو تنسخها لمنطقة ثانية. يعني هي الطريقة الصحيحة لنقل قرص بين مناطق التوفر.

وفيه ميزتين تفيدك: Recycle Bin يحميك من حذف لقطة بالخطأ، وArchive يخفّض تكلفة اللقطات اللي نادراً ترجع لها.

التشفير

فعّل تشفير EBS: البيانات على القرص والنقل بينه وبين السيرفر واللقطات كلها تتشفّر بمفاتيح KMS، بدون أي تغيير في تطبيقك وبأثر بسيط على الأداء. وتقدر تفعّله افتراضياً لكل الأقراص الجديدة في المنطقة من إعدادات EC2.

وتشفير قرص موجود غير مشفّر يمر بخطوات: تسوي له لقطة، تنسخها مع تفعيل التشفير، ثم تنشئ من النسخة قرص جديد مشفّر، وتركّبه بدل القديم.

صور النظام (AMI)

AMI صورة جاهزة يقلع منها السيرفر: نظام التشغيل والبرامج والإعدادات. عندك ثلاثة مصادر: صور AWS، وصور AWS Marketplace الجاهزة من شركات ثانية، وصورك أنت.

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

Bash
aws ec2 create-image \
  --instance-id i-0123456789abcdef0 \
  --name "web-nginx-v1"

الحين أي سيرفر يقلع من هذي الصورة يقوم جاهز خلال ثوانٍ بدل دقائق. وهذا مهم جداً في التوسّع التلقائي. لاحظ إن الصورة مربوطة بمنطقة واحدة، وتقدر تنسخها لمناطق ثانية.

والنمط الشائع: صورة فيها الأشياء الثابتة والثقيلة، وUser Data خفيف للإعدادات اللي تختلف من سيرفر لسيرفر.

التخزين المحلي (Instance Store)

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

يناسب الكاش والملفات المؤقتة والبيانات اللي لها نسخ في مكان ثاني، ولا تحط فيه شي ما تقدر تخسره.

نظام الملفات المشترك (EFS)

EFS (Elastic File System) نظام ملفات شبكي يتركّب على عشرات أو مئات السيرفرات في نفس الوقت، وعبر مناطق توفر مختلفة. يكبر ويصغر تلقائياً، وتدفع على اللي تستخدمه فعلاً.

يناسب المحتوى اللي لازم كل السيرفرات تشوفه، مثل ملفات المستخدمين المرفوعة في موقع يعمل على كذا سيرفر. وله شرطين: يعمل مع لينكس فقط، وسعره أعلى من EBS للجيجا الواحدة. ولتوفير التكلفة، فعّل سياسة دورة الحياة عشان تنتقل الملفات اللي ما تُستخدم لفئة أرخص تلقائياً.

تركيبه على سيرفر:

Bash
sudo dnf install -y amazon-efs-utils
sudo mkdir -p /mnt/shared
sudo mount -t efs fs-0123456789abcdef0:/ /mnt/shared

أيهم تختار؟

EBS Instance Store EFS
النوع قرص شبكي قرص محلي نظام ملفات شبكي
المشاركة سيرفر واحد غالباً سيرفر واحد مئات السيرفرات
النطاق منطقة توفر واحدة الجهاز نفسه عبر مناطق التوفر
البيانات بعد الإيقاف تبقى تضيع تبقى
الأنظمة لينكس وويندوز لينكس وويندوز لينكس فقط
مثال قرص النظام، قاعدة بيانات كاش سريع ملفات مشتركة

عملي: أضف قرص وخذ منه لقطة

شغّل سيرفر في منطقة توفر معروفة، ثم نفّذ هذا من CloudShell:

Bash
# قرص 10 جيجا مشفّر في نفس منطقة توفر السيرفر
aws ec2 create-volume \
  --availability-zone eu-central-1a \
  --size 10 --volume-type gp3 --encrypted

# ركّبه على السيرفر (استبدل المعرّفات بالقيم عندك)
aws ec2 attach-volume \
  --volume-id vol-0123456789abcdef0 \
  --instance-id i-0123456789abcdef0 \
  --device /dev/sdf

وداخل السيرفر، جهّزه واستخدمه:

Bash
# اعرف اسم القرص الجديد، غالباً nvme1n1
lsblk

# تنسيق القرص: يمسح كل ما فيه، فاستخدمه مع قرص جديد فقط
sudo mkfs -t xfs /dev/nvme1n1

sudo mkdir /data
sudo mount /dev/nvme1n1 /data
echo "hello from ebs" | sudo tee /data/test.txt

وأخيراً خذ لقطة من CloudShell:

Bash
aws ec2 create-snapshot \
  --volume-id vol-0123456789abcdef0 \
  --description "data volume before upgrade"

الخلاصة

  • EBS قرص دائم مربوط بمنطقة توفر، وgp3 هو الخيار الافتراضي.
  • اللقطات نسخ احتياطية، وهي الطريق لنقل قرص بين مناطق التوفر والمناطق.
  • AMI تخلي السيرفر يقوم جاهز خلال ثوانٍ، وهذا أساس التوسّع السريع.
  • Instance Store الأسرع، لكن بياناته تضيع مع الإيقاف.
  • EFS للملفات المشتركة بين سيرفرات كثيرة، على لينكس.

اختبر نفسك

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

السؤال 1 من 5

سيرفر في eu-central-1a يحفظ بياناته على قرص EBS. يشغّل الفريق سيرفر بديل في eu-central-1b، ويحتاج نفس البيانات هناك. وش يسوي؟

اعرض الجواب

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

القرص مربوط بمنطقة توفر وحدة، أما اللقطة فتقدر تنشئ منها قرص جديد في أي منطقة توفر داخل المنطقة.

  • A: لازم القرص والسيرفر يكونون في نفس منطقة التوفر.
  • B: Multi-Attach يشتغل داخل منطقة توفر وحدة فقط، وعلى io1 وio2 فقط.
  • C: ما فيه إعداد زي هذا.

للمراجعة: اللقطات في هذا الجزء، وAmazon EBS snapshots في وثائق AWS.

السؤال 2 من 5

شغل معالجة سجلات يقرأ ملفات ضخمة من بدايتها لنهايتها طول اليوم. يحتاج Throughput عالي بتكلفة منخفضة، وهذي البيانات مو على قرص النظام. أي نوع EBS يناسب أكثر؟

اعرض الجواب

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

st1 قرص صلب رخيص مبني للـ Throughput العالي على البيانات اللي تنقرأ كثير، وهذا اللي تحتاجه القراءة المتتابعة الطويلة.

  • A: بتدفع على IOPS عالية جداً، والقراءة المتتابعة ما تعتمد عليها.
  • C: هذا للبيانات اللي نادراً تنقرأ، والـ Throughput فيه أقل.
  • D: ينفع، بس هو SSD، وتكلفته لكل جيجا أعلى لهذا الشغل.

للمراجعة: أنواع الأقراص في هذا الجزء، وAmazon EBS volume types في وثائق AWS.

السؤال 3 من 5

عشرين سيرفر Linux للبناء موزعة على ثلاث مناطق توفر تحتاج مجلد مشترك لكاش البناء. وحجم البيانات يتغير من يوم ليوم، والفريق ما يبي يخطط للسعة. أي تخزين يناسب؟

اعرض الجواب

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

EFS يتركب على سيرفرات Linux كثيرة عبر مناطق التوفر بنفس الوقت، ويكبر ويصغر لحاله.

  • B: Multi-Attach يشتغل داخل منطقة توفر وحدة فقط، ويحتاج نظام ملفات مبني له.
  • C: كل سيرفر بيكون له قرصه، فما فيه شي مشترك.
  • D: ينفع، بس بتشغل سيرفر الملفات بنفسك وتحدد حجمه، وتعتمد على سيرفر واحد في منطقة وحدة.

للمراجعة: نظام الملفات المشترك في هذا الجزء، وHow Amazon EFS works في وثائق AWS.

السؤال 4 من 5

محاكاة تكتب ملفات مؤقتة بسرعة عالية جداً، وتقدر تعيد إنشاءها لو ضاعت. يبي الفريق أسرع قرص، بدون ما يدفع على متانة ما يحتاجها. أي تخزين يناسب؟

اعرض الجواب

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

Instance Store داخل الجهاز نفسه، وهذا يخليه سريع جداً. وبياناته تضيع لما يوقف السيرفر، وهذا مقبول هنا لأن الملفات ممكن تنعاد.

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

للمراجعة: التخزين المحلي في هذا الجزء، وData persistence for instance store في وثائق AWS.

السؤال 5 من 5

السيرفرات الجديدة تاخذ 12 دقيقة عشان تجهز، لأن User Data يثبت كل شي في أول تشغيل. ووقت موجة الزيارات هذا بطيء. كيف يخليها الفريق تجهز أسرع؟

اعرض الجواب

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

مع الـ AMI البرامج مثبتة أصلاً لما يشتغل السيرفر. وUser Data ممكن يبقى للإعدادات الخفيفة اللي تختلف بين السيرفرات.

  • A: السيرفر الأكبر ممكن يثبت أسرع شوي، بس لسا يثبت كل شي.
  • C: نقل السكربت ما يغير الشغل اللي يسويه.
  • D: نفس التثبيت لازم يشتغل، بس في وقت ثاني.

للمراجعة: صور النظام في هذا الجزء، وAmazon Machine Images في وثائق AWS.

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