0Pricing
AWS Solutions Architect · درس

لقطات EBS والتشفير وRAID

أنشئ لقطات EBS وأتمت إنشاءها للنسخ الاحتياطي في نقطة زمنية محددة، وشفر وحدات التخزين باستخدام KMS، وافهم الفرق بين RAID 0 وRAID 1 على EC2

لقطات EBS والتشفير وRAID درس مجاني في AWS Solutions Architect على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AWS Solutions Architect، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AWS Solutions Architect 4 دروس في المجموع.

لقطات EBS: نسخ احتياطية لنقطة زمنية

لقطات EBS هي نسخ احتياطية لوحدات EBS في نقطة زمنية محددة، ويتم تخزينها بشكل دائم في Amazon S3 (مع أنها تُدار بواسطة EBS ولا يمكن الوصول إليها مباشرةً من خلال وحدة تحكم S3). اللقطة الأولى هي نسخة كاملة؛ أما اللقطات اللاحقة فهي تزايدية — إذ لا يتم تخزين سوى الكتل التي تغيرت منذ اللقطة السابقة. وعلى الرغم من استخدام التخزين التزايدي، يمكنك استعادة أي لقطة منفردة إلى وحدة كاملة. وتُعد اللقطات الآلية الأساسية لنسخ وحدات EBS احتياطيًا وترحيلها والتعافي من الكوارث.

# Create a snapshot of an EBS volume with a description
aws ec2 create-snapshot \
  --volume-id vol-0abc1234def567890 \
  --description 'Production DB backup 2024-01-01' \
  --tag-specifications 'ResourceType=snapshot,Tags=[{Key=Environment,Value=Production},{Key=Backup,Value=Daily}]'

# Monitor snapshot completion
aws ec2 describe-snapshots \
  --snapshot-ids snap-0abc1234def567890 \
  --query 'Snapshots[].{State:State,Progress:Progress}'

تكاليف اللقطات ودورة حياتها

تتم محاسبتك على التخزين الفعلي المستهلك بواسطة كتل اللقطات التزايدية عبر جميع لقطات الوحدة — وليس على حجم الوحدة. إذا حذفت لقطات وسيطة، فإن S3 يدمج البيانات بحيث تظل اللقطات المتبقية تمثل نقاط استعادة كاملة. ولإدارة التكاليف على نطاق واسع، استخدم Amazon Data Lifecycle Manager (DLM) لإنشاء جداول اللقطات وسياسات الاحتفاظ — على سبيل المثال، أخذ لقطات يومية والاحتفاظ بآخر 7 لقطات يومية و4 أسبوعية و12 شهرية، وحذف اللقطات الأقدم تلقائيًا.

# Create a DLM lifecycle policy for daily snapshots with 7-day retention
aws dlm create-lifecycle-policy \
  --description 'Daily DB snapshots' \
  --state ENABLED \
  --execution-role-arn arn:aws:iam::111122223333:role/AWSDataLifecycleManagerDefaultRole \
  --policy-details '{
    "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
    "ResourceTypes": ["VOLUME"],
    "TargetTags": [{"Key": "Backup", "Value": "Daily"}],
    "Schedules": [{
      "Name": "DailySnapshots",
      "CreateRule": {"Interval": 24, "IntervalUnit": "HOURS", "Times": ["03:00"]},
      "RetainRule": {"Count": 7}
    }]
  }'

نسخ اللقطات عبر المناطق والحسابات

يمكن نسخ اللقطات عبر المناطق للتعافي من الكوارث والتوزيع الجغرافي. كما يمكنك مشاركة اللقطات مع حسابات AWS محددة (أو جعلها عامة) لنقل بيانات EBS بين الحسابات من دون استخدام الشبكة. عند نسخ لقطة، يمكنك تغيير مفتاح التشفير — وهذه هي الطريقة لنقل البيانات من وحدة غير مشفرة إلى وحدة مشفرة، أو من مفتاح في حساب إلى مفتاح في حساب آخر.

# Copy a snapshot to another region with a new KMS key
aws ec2 copy-snapshot \
  --source-region us-east-1 \
  --source-snapshot-id snap-0abc1234def567890 \
  --destination-region eu-west-1 \
  --description 'DR copy' \
  --encrypted \
  --kms-key-id arn:aws:kms:eu-west-1:111122223333:key/KEY_ID \
  --region eu-west-1

# Share a snapshot with another account
aws ec2 modify-snapshot-attribute \
  --snapshot-id snap-0abc1234def567890 \
  --attribute createVolumePermission \
  --operation-type add \
  --user-ids '999888777666'

استعادة الوحدات من اللقطات

إنشاء وحدة من لقطة أمر مباشر، لكن توجد ملاحظة تتعلق بالأداء: تبدأ الوحدات المستعادة من اللقطات مع تخزين جميع الكتل في S3، ويتم تحميلها بشكل كسول عند الوصول إليها للمرة الأولى. وقد يؤدي ذلك إلى زيادة زمن الاستجابة للكتل التي لم يتم تحميلها بعد إلى الوحدة. بالنسبة إلى قواعد بيانات الإنتاج، استخدم Fast Snapshot Restore (FSR) — وهي ميزة مدفوعة تهيئ اللقطة مسبقًا بحيث تعمل الوحدات فورًا بأدائها الكامل. وبدلًا من ذلك، يمكنك إجراء التهيئة المسبقة من خلال قراءة جميع الكتل باستخدام dd أو fio بعد الاستعادة.

# Enable Fast Snapshot Restore for instant full-performance volumes
aws ec2 enable-fast-snapshot-restores \
  --availability-zones us-east-1a us-east-1b \
  --source-snapshot-ids snap-0abc1234def567890

# Create a volume from the snapshot (FSR enabled = full performance immediately)
aws ec2 create-volume \
  --snapshot-id snap-0abc1234def567890 \
  --volume-type gp3 \
  --availability-zone us-east-1a

تشفير EBS: آلية العمل

يستخدم تشفير EBS خوارزمية AES-256 لتشفير البيانات الساكنة (على الوحدة)، والبيانات المنقولة بين الوحدة ومثيل EC2، والبيانات الموجودة في اللقطات. يتولى مشرف EC2 الفائق عملية التشفير بشفافية — ولا يلاحظ تطبيقك أي اختلاف. يستخدم التشفير مفاتيح AWS KMS: يمكنك استخدام المفتاح المُدار بواسطة AWS (aws/ebs) أو مفتاح مُدار بواسطة العميل (CMK). بعد تشفير الوحدة، تُشفّر أيضًا جميع البيانات المكتوبة عليها وجميع اللقطات المأخوذة منها.

# Create an encrypted gp3 volume with a customer-managed key
aws ec2 create-volume \
  --volume-type gp3 \
  --size 100 \
  --encrypted \
  --kms-key-id arn:aws:kms:us-east-1:111122223333:key/KEY_ID \
  --availability-zone us-east-1a

# Enable encryption by default for all new volumes in a region
aws ec2 enable-ebs-encryption-by-default

aws ec2 get-ebs-encryption-by-default
# { "EbsEncryptionByDefault": true }

تشفير وحدة موجودة غير مشفرة

لا يمكنك تشفير وحدة EBS موجودة وغير مشفرة مباشرةً. والحل البديل هو تنفيذ عملية متعددة الخطوات: (1) إنشاء لقطة للوحدة غير المشفرة، (2) نسخ اللقطة باستخدام --encrypted لإنشاء لقطة مشفرة، (3) إنشاء وحدة مشفرة جديدة من اللقطة المشفرة، (4) إيقاف المثيل، وفصل الوحدة القديمة، وإرفاق الوحدة المشفرة الجديدة، ثم إعادة التشغيل. ويمكن تنفيذ هذه العملية باستخدام برنامج نصي، كما يختبرها اختبار SAA-C03 في سيناريوهات الترحيل.

# Step-by-step: encrypt an existing unencrypted volume

# 1. Snapshot the unencrypted volume
aws ec2 create-snapshot --volume-id vol-UNENCRYPTED --description 'Pre-encryption backup'

# 2. Copy snapshot with encryption
aws ec2 copy-snapshot \
  --source-region us-east-1 \
  --source-snapshot-id snap-UNENCRYPTED \
  --region us-east-1 \
  --encrypted \
  --kms-key-id alias/aws/ebs

# 3. Create encrypted volume from the encrypted snapshot
aws ec2 create-volume \
  --snapshot-id snap-ENCRYPTED \
  --volume-type gp3 \
  --availability-zone us-east-1a

RAID 0: توزيع البيانات لتحسين الأداء

يقوم RAID 0 (التوزيع) بتوزيع البيانات عبر عدة وحدات EBS لتجميع IOPS ومعدل النقل الخاص بها. وتوفر وحدتا gp3 بسعة 16,000 IOPS لكل منهما والمستخدمتان في RAID 0 نحو 32,000 IOPS. لكن المقابل هو أنك إذا تعطلت أي من الوحدتين، فستفقد جميع البيانات — إذ لا توجد أي عملية تكرار. ويناسب RAID 0 البيانات المؤقتة أو التي يمكن إعادة إنشائها بسهولة عندما يكون تحقيق أقصى معدل نقل هو الأولوية، مثل طبقات التخزين المؤقت أو قوائم انتظار المعالجة أو المساحة المؤقتة. وتتطلب لقطات صفيف RAID بأكمله تنسيقًا لضمان الاتساق.

# Set up RAID 0 across two EBS volumes on Linux
# (After creating and attaching two gp3 volumes)

# Install mdadm
sudo yum install -y mdadm

# Create a RAID 0 array across /dev/xvdf and /dev/xvdg
sudo mdadm --create /dev/md0 \
  --level=0 \
  --raid-devices=2 \
  /dev/xvdf /dev/xvdg

# Format and mount
sudo mkfs.xfs /dev/md0
sudo mkdir /mnt/raid0
sudo mount /dev/md0 /mnt/raid0

RAID 1: النسخ المتطابق للتكرار

يكتب RAID 1 (النسخ المتطابق) بيانات متطابقة إلى وحدتي EBS في الوقت نفسه. وإذا تعطلت إحدى الوحدتين، فتحتوي الأخرى على نسخة كاملة. يوفر RAID 1 تكرار وحدتين بسعة وحدة واحدة فقط. ومع ذلك، يُعد هذا عمومًا تكرارًا للنسخ المدمج على مستوى AZ في EBS بالنسبة إلى وحدات EBS. توصي AWS باستخدام بُنى EBS متعددة المناطق التوافر (من خلال Multi-AZ RDS أو ASG عبر مناطق التوافر) بدلًا من RAID 1 على EBS، لأن EBS يكرر البيانات أصلًا داخل AZ. ولذلك نادرًا ما يُستخدم RAID 1 على EBS في البنى الحديثة.

# RAID 1 example (mirroring) — rarely needed with EBS
sudo mdadm --create /dev/md1 \
  --level=1 \
  --raid-devices=2 \
  /dev/xvdh /dev/xvdi

# RAID 1 performance:
# Read: up to 2x (both disks can serve reads)
# Write: same as a single volume (data written to both)
# Fault tolerance: survives single volume failure

AMIs ولقطات EBS

Amazon Machine Image (AMI) هو مخطط لإطلاق مثيلات EC2، ويستند إلى لقطة EBS واحدة أو أكثر — لقطة واحدة لكل وحدة تتضمنها AMI (وعادةً ما تكون واحدة لوحدة الجذر). عند إنشاء AMI مخصصة من مثيل قيد التشغيل، توقف AWS المثيل (أو تستخدم VSS في Windows)، وتأخذ لقطات لجميع وحدات EBS المرفقة، وتسجل التعيين في AMI. لا يؤدي إلغاء تسجيل AMI إلى حذف لقطاتها الداعمة تلقائيًا — يجب حذف اللقطات بشكل منفصل لإيقاف دفع تكلفتها.

# Create an AMI from a running EC2 instance
aws ec2 create-image \
  --instance-id i-0abc1234def567890 \
  --name 'MyApp-v2.0-2024-01-01' \
  --description 'Application server AMI with v2.0 release' \
  --no-reboot

# List snapshots backing an AMI
aws ec2 describe-images \
  --image-ids ami-0abc1234def567890 \
  --query 'Images[].BlockDeviceMappings[].Ebs.SnapshotId'

# Deregister AMI then delete its snapshots separately
aws ec2 deregister-image --image-id ami-0abc1234def567890
aws ec2 delete-snapshot --snapshot-id snap-0abc1234def567890

أفضل ممارسات اللقطات

أفضل ممارسات اللقطات لأحمال الإنتاج: جمّد نظام الملفات أو أوقف نشاطه مؤقتًا قبل أخذ لقطات لقواعد البيانات لضمان الاتساق (تجري معظم قواعد البيانات المُدارة، مثل RDS، ذلك تلقائيًا). أضف علامات إلى اللقطات تتضمن البيئة ومعرّف الوحدة والتاريخ لتسهيل إدارة دورة الحياة وتخصيص التكاليف. اختبر إجراءات الاستعادة بانتظام — فاللقطة التي لم تستعد منها من قبل ليست نسخة احتياطية موثوقة. خزّن نسخًا عبر المناطق للتعافي من الكوارث. استخدم AWS Backup لإدارة السياسات مركزيًا عبر EBS وRDS وDynamoDB والخدمات الأخرى.

# Freeze filesystem on Linux before snapshotting
# (Example for ext4 filesystem)
sudo fsfreeze -f /mnt/data  # Freeze writes
aws ec2 create-snapshot --volume-id vol-0abc1234 --description 'Consistent snapshot'
sudo fsfreeze -u /mnt/data  # Unfreeze

# AWS Backup policy for EBS volumes
aws backup create-backup-plan \
  --backup-plan '{
    "BackupPlanName": "EBSDaily",
    "Rules": [{
      "RuleName": "DailyRule",
      "TargetBackupVaultName": "Default",
      "ScheduleExpression": "cron(0 3 * * ? *)",
      "DeleteAfterDays": 30
    }]
  }'

سلة إعادة تدوير لقطات EBS

تحمي سلة إعادة تدوير لقطات EBS من الحذف العرضي للقطات وAMIs. عند تفعيلها باستخدام قاعدة احتفاظ، تُنقل اللقطات المحذوفة إلى سلة إعادة التدوير بدلًا من إتلافها نهائيًا. ويمكنك استعادتها خلال فترة الاحتفاظ (من يوم واحد إلى سنة واحدة). ويكتسب ذلك أهمية خاصة في سيناريوهات الامتثال التي تتطلب إمكانية الاستعادة من الحذف العرضي بواسطة مسؤول أو برنامج أتمتة منفلت، من دون الاستعادة من طبقة نسخ احتياطية أقدم.

# Create a Recycle Bin retention rule for EBS snapshots
aws rbin create-rule \
  --retention-period RetentionPeriodValue=30,RetentionPeriodUnit=DAYS \
  --resource-type EBS_SNAPSHOT \
  --description '30-day retention for all EBS snapshots'

# List snapshots currently in the Recycle Bin
aws rbin list-resources \
  --resource-type EBS_SNAPSHOT \
  --query 'Resources[].{SnapshotId:ResourceId,DeleteDate:DeleteScheduledAt}'

تحقق سريع

اختبر مدى استيعابك لمفاهيم AWS Solutions Architect (SAA-C03) الواردة في هذا الدرس.

مراجعة الدرس

تعلمت في هذا الدرس أن لقطات EBS تزايدية ومخزنة في S3، مع استخدام DLM لإدارة دورة الحياة تلقائيًا، وأن التشفير يتطلب سير عمل لنسخ اللقطة لتحويل الوحدات غير المشفرة، وأن RAID 0 يوزع البيانات عبر الوحدات لتجميع الأداء، بينما يعكس RAID 1 البيانات للتكرار (مع أن EBS يكرر البيانات أصلًا داخل AZ). بعد ذلك، سنستكشف EFS لتخزين الملفات المشتركة في Linux.

الأسئلة الشائعة

هل درس «لقطات EBS والتشفير وRAID» مجاني؟

نعم — نص درس «لقطات EBS والتشفير وRAID» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AWS Solutions Architect، انتقل إلى CoddyKit PRO. تتضمن دورة AWS Solutions Architect 4 دروس في المجموع.

ماذا ستتعلم في «لقطات EBS والتشفير وRAID»؟

أنشئ لقطات EBS وأتمت إنشاءها للنسخ الاحتياطي في نقطة زمنية محددة، وشفر وحدات التخزين باستخدام KMS، وافهم الفرق بين RAID 0 وRAID 1 على EC2 تتمرن على AWS Solutions Architect مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ AWS Solutions Architect؟

لا تُشترط خبرة سابقة. AWS Solutions Architect على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «لقطات EBS والتشفير وRAID»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس AWS Solutions Architect هذا؟

نعم. كل درس في AWS Solutions Architect يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أنواع وحدات تخزين EBS: gp3 وio2 وst1 وsc1
  2. لقطات EBS والتشفير وRAID
  3. EFS: تخزين ملفات مشترك لنظام Linux
  4. FSx: خادم ملفات Windows وLustre
← العودة إلى AWS Solutions Architect