🎯 Adding a Storage Layer with Amazon S3 — إضافة طبقة تخزين باستخدام Amazon S3
تُعد هذه الوحدة دليلك الشامل إلى Amazon Simple Storage Service (Amazon S3)، خدمة التخزين الكائني الرائدة من AWS. ستتعرف من خلالها على مفهوم التخزين الكائني ومكونات Amazon S3 الأساسية، وكيفية نقل البيانات من وإلى الخدمة، وإدارة المحتوى بكفاءة باستخدام فئات التخزين ودورات الحياة والتحكم في الإصدارات. تمنحك هذه الوحدة الأدوات اللازمة لتصميم طبقة تخزين قوية وآمنة وفعالة من حيث التكلفة باستخدام AWS Well-Architected Framework.
1️⃣ Types of Storage — أنواع التخزين
يوجد ثلاثة أنواع أساسية للتخزين: التخزين على مستوى الكتل (Block storage) والتخزين على مستوى الملفات (File storage) والتخزين الكائني (Object storage). كل نوع له استخداماته الخاصة، ومن المرجح أنك ستعمل مع الأنواع الثلاثة جميعها. في التخزين الكائني، تُخزَّن الملفات ككائنات بناءً على سماتها وبياناتها الوصفية، وكل كائن يتكون من البيانات والبيانات الوصفية ومفتاح فريد يُعرف باسم Object key. عند تحديث الملفات في التخزين الكائني، يتم تحديث الكائن بالكامل بدلاً من تحديث جزء منه كما في التخزين على مستوى الكتل.
| وجه المقارنة | Block Storage | File Storage | Object Storage |
|---|---|---|---|
| طريقة التخزين | كتل ثابتة الحجم | هيكل هرمي | كائنات بسمات وبيانات وصفية |
| التحديث | يُحدّث جزءاً من الملف | يُحدّث الملف كاملاً | يُحدّث الكائن كاملاً |
| مثال AWS | Amazon EBS | Amazon EFS | Amazon S3 |
2️⃣ Amazon S3 Overview — نظرة عامة على Amazon S3
Amazon S3 هي خدمة تخزين كائني تتيح لك تخزين كميات غير محدودة من البيانات غير المنظمة. تُخزَّن ملفات البيانات ككائنات داخل حاوية تُسمى bucket، ويجب أن يكون اسم كل bucket فريداً عالمياً عبر جميع مناطق AWS وعبر جميع حسابات العملاء. يتراوح حجم الكائنات من 0 بايت إلى 5 تيرابايت كحد أقصى، ويمتلك كل كائن عنوان URL فريداً عالمياً (universal namespace). يتكون كل كائن من خمس خصائص ثابتة: المفتاح (key)، ومعرّف الإصدار (version ID)، والقيمة (value)، والبيانات الوصفية (metadata)، والموارد الفرعية (sub-resources).
3️⃣ Amazon S3 Components — مكونات Amazon S3
Bucket هو حاوية للكائنات تُستخدم لتنظيم مساحة أسماء Amazon S3 على أعلى مستوى، وتحديد الحساب المسؤول عن رسوم التخزين ونقل البيانات، والتحكم في الوصول. Object هو الكيان الأساسي الذي يُخزَّن في Amazon S3 ويتكون من بيانات الكائن وبيانات وصفية تصفه. Object key هو المعرف الفريد لكل كائن داخل bucket، ولكل كائن مفتاح واحد فقط. كل bucket مرتبط بمنطقة AWS (Regional)، ولا تغادر الكائنات المنطقة ما لم تنقلها صراحةً.
4️⃣ Prefixes to Imply Folder Structure — استخدام البادئات لإنشاء هيكل مجلدات
يدعم Amazon S3 مفهوم المجلدات لتنظيم الكائنات من خلال البادئات المشتركة (prefixes) في أسماء الكائنات. عند إنشاء مجلد، تنشئ واجهة Amazon S3 كائناً باسم يتبعه شرطة مائلة (/) وتعرضه كمجلد. عند الاستعلام عن bucket، يحدّد البادئ النتائج لتعرض فقط الكائنات التي تبدأ بذلك البادئ. على سبيل المثال، لاسترجاع صور عام 2022، يمكنك تحديد البادئ photos/2022.
استعلام GET بالبادئ photos/2022 يعيد فقط صور عام 2022.
هذا التنظيم يتيح لك هيكلة بياناتك دون إنشاء مجلدات حقيقية.
5️⃣ Amazon S3 Benefits — فوائد Amazon S3
يتميز Amazon S3 بثلاث فوائد رئيسية: المتانة (durability) بنسبة 99.999999999% (11 تسعة)، مما يعني أن فقدان كائن واحد كل 10 ملايين سنة في المتوسط عند تخزين 10,000 كائن. كما يوفر توفراً (availability) بنسبة 99.99% (4 تسعات) مع سعة تخزين غير محدودة تقريباً. أما الأداء العالي (high performance) فيتيح آلاف المعاملات في الثانية مع توسع تلقائي لمعدلات الطلبات العالية.
- المتانة: يخزّن الكائنات بشكل متكرر على أجهزة متعددة عبر مرافق متعددة في المنطقة المختارة.
- التوفر: يوفر وصولاً سريعاً إلى البيانات مع سعة تخزين غير محدودة وقابلة للتوسع.
- الأداء العالي: آلاف المعاملات في الثانية مع توسع تلقائي للطلبات العالية.
- الأمان: طرق متعددة للتحكم في الوصول مع إمكانية تشفير البيانات.
- أنواع التخزين ثلاثة: تخزين الكتل (block storage) وتخزين الملفات (file storage) والتخزين الكائني (object storage).
- Amazon S3 هو خدمة تخزين كائني تخزّن كميات غير محدودة من البيانات غير المنظمة.
- Bucket هو حاوية للكائنات، وobject هو الكيان الأساسي المخزّن بمفتاح فريد.
- البادئات (prefixes) تُستخدم لتنظيم الكائنات في هيكل يشبه المجلدات.
- فوائد S3 الرئيسية: متانة 11 تسعة وتوفر 4 تسعات وأداء عالٍ مع توسع تلقائي.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Object storage | التخزين الكائني | نوع تخزين تُحفظ فيه الملفات ككائنات مع بيانات وصفية ومفاتيح فريدة. |
| Amazon S3 | خدمة التخزين البسيط من أمازون | خدمة تخزين كائني سحابية تخزّن كميات غير محدودة من البيانات. |
| Bucket | الحاوية | حاوية للكائنات في Amazon S3 ذات اسم فريد عالمياً. |
| Object key | مفتاح الكائن | المعرف الفريد لكل كائن داخل bucket. |
| Prefix | البادئ | سلسة أحرف في بداية اسم الكائن لتنظيمها في هيكل يشبه المجلدات. |
| Durability | المتانة | قياس لمتوسط الخسارة السنوية المتوقعة للكائنات، 11 تسعة في S3. |
| Availability | التوفر | القدرة على الوصول إلى البيانات بسرعة عند الحاجة، 4 تسعات في S3 Standard. |
| Metadata | البيانات الوصفية | مجموعة أزواج اسم-قيمة تصف الكائن وتُحدد خصائصه. |
1️⃣ How Customers Use Amazon S3 — كيف يستخدم العملاء Amazon S3
يُستخدم Amazon S3 في أربع حالات استخدام رئيسية: استضافة المحتوى الذي يحتاج إلى نطاق ترددي لمواجهة الارتفاعات الهائلة في الطلب، واستضافة المواقع الثابتة التي تتكون من ملفات HTML وصور وفيديوهات، وتخزين البيانات للتحليل المالي، ودعم حلول النسخ الاحتياطي والتعافي من الكوارث.
2️⃣ Use Case: Media Hosting — استضافة الوسائط
يُستخدم Amazon S3 لتخزين وتوزيع الفيديوهات والصور والملفات الموسيقية والوسائط الأخرى. يمكن توصيل المحتوى مباشرةً من Amazon S3 لأن لكل كائن عنوان HTTP URL فريد. يمكن لـ Amazon S3 أن يعمل كمخزن مصدر (origin store) لشبكة توصيل المحتوى (CDN) مثل Amazon CloudFront. مرونة S3 تجعله مثالياً لاستضافة محتوى ويب يحتاج إلى نطاق ترددي لمواجهة الارتفاعات الهائلة في الطلب.
بدلاً من شراء خوادم تخزين ضخمة، تستخدم S3 الذي يتوسع تلقائياً مع زيادة عدد المستخدمين.
تستخدم CloudFront كـ CDN أمام S3 لتوصيل الفيديوهات بأقل زمن وصول للمشاهدين حول العالم.
3️⃣ Use Case: Host Static Websites — استضافة المواقع الثابتة
يمكنك استخدام Amazon S3 لاستضافة موقع ثابت (static website) حيث تحتوي صفحات الويب على محتوى ثابت وقد تتضمن نصوصاً برمجية من جانب العميل (client-side scripts). للاستضافة، قم بتكوين bucket لاستضافة المواقع، وأرفق سياسة bucket policy تسمح بالوصول إلى الكائنات، ثم ارفع محتوى موقعك إلى الـ bucket. لا تحتاج إلى تشغيل آلة افتراضية أو خادم ويب، مما يوفر حلاً منخفض التكلفة مع أداء عالٍ وقابلية توسع وتوفر مذهلة.
4️⃣ Use Case: Data Store for Computation and Analytics — تخزين البيانات للحوسبة والتحليل
يُستخدم Amazon S3 كمخزن بيانات للحوسبة أو التحليلات واسعة النطاق مثل تحليل المعاملات المالية وتحليلات النقرات (clickstream analytics) وتحويل الوسائط. يبدأ السيناريو بتشغيل مجموعة حوسبة (compute cluster) مثل Amazon EC2 Spot Fleet أو Amazon EMR، ثم استخراج البيانات الأولية من S3 ومعالجتها، وتحميل النتائج المعالجة إلى bucket آخر، ثم إنهاء موارد الحوسبة لتوفير التكاليف.
تُخزَّن البيانات الأولية في Amazon S3، ثم يُشغل Amazon EMR لمعالجتها.
بعد الانتهاء، تُحمَّل النتائج إلى bucket آخر ويُستخدم Amazon QuickSight لاستخراج الرؤى.
بهذه الطريقة تدفع الشركة فقط مقابل وقت المعالجة وليس لخوادم تعمل 24/7.
5️⃣ Use Case: Back Up and Archive Critical Data — النسخ الاحتي favourial وأرشفة البيانات
نظراً لطبيعته شديدة المتانة والقابلة للتوسع، يُعد Amazon S3 أداة ممتازة للنسخ الاحتياطي والأرشفة. يمكن نسخ البيانات احتياطياً من مركز بيانات محلي (on-premises) ومن عدد كبير من مثيلات Amazon EC2. يمكنك أيضاً تكوين النسخ المتماثل عبر المناطق (Cross-Region Replication) لتحقيق مستويات أعلى من المتانة، حيث تُنسخ الكائنات تلقائياً إلى buckets في مناطق أخرى بشكل غير متزامن.
تضع مستنداتك المهمة في الصندوق الرئيسي، ويتم نسخها تلقائياً إلى الفروع الأخرى.
إذا احترق الفرع الرئيسي، لا تزال مستنداتك آمنة في الفروع الأخرى.
هكذا يعمل النسخ المتماثل عبر المناطق في Amazon S3.
- يُستخدم Amazon S3 لاستضافة الوسائط والمواقع الثابتة وتخزين بيانات التحليلات والنسخ الاحتياطي.
- يمكن توصيل المحتوى مباشرةً من S3 عبر HTTP أو عبر CloudFront CDN.
- المواقع الثابتة على S3 لا تحتاج إلى خوادم وتوفر حلاً منخفض التكلفة.
- S3 مثالي لتحليلات البيانات واسعة النطاق بفضل التوسع الأفقي.
- النسخ المتماثل عبر المناطق (CRR) يضيف طبقة متانة إضافية للنسخ الاحتياطي.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Static website | موقع ثابت | موقع محتواه لا يتغير، يمكن استضافته على S3 بتكلفة منخفضة. |
| CDN | شبكة توصيل المحتوى | شبكة من الخوادم الموزعة لتوصيل المحتوى بسرعة من أقرب موقع للمستخدم. |
| CloudFront | كلاود فْرونت | خدمة CDN من AWS توفر توصيل المحتوى بأقل زمن وصول. |
| Cross-Region Replication | النسخ المتماثل عبر المناطق | نسخ تلقائي غير متزامن للكائنات بين مناطق AWS مختلفة. |
| Origin store | المخزن المصدر | الموقع الأصلي للبيانات الذي تسحب منه CDN المحتوى. |
| Clickstream analytics | تحليلات النقرات | تحليل سلوك المستخدمين عبر تتبع نقراتهم على التطبيقات والمواقع. |
1️⃣ Storing Objects in Amazon S3 — تخزين الكائنات في Amazon S3
عند رفع ملف إلى Amazon S3، يُخزَّن ككائن S3. لا يوجد حد لعدد الكائنات في الـ bucket. تحتاج إلى صلاحيات كتابة للـ bucket قبل رفع الملفات. يمكنك رفع أي نوع ملفات بما في ذلك الصور والنسخ الاحتياطية والبيانات والأفلام. عند رفع كائن، يُشفَّر تلقائياً باستخدام التشفير من جانب الخادم بمفاتيح Amazon S3 المدارة (SSE-S3) بشكل افتراضي. عند تنزيل كائن، يتم فك تشفيره.
2️⃣ Options for Uploading Objects — خيارات رفع الكائنات
توفر AWS أربع طرق رئيسية لرفع الكائنات: AWS Management Console بطريقة معالجات مع إمكانية السحب والإفلات (حد أقصى 160 جيجابايت)، وAWS CLI من سطر الأوامر، وAWS SDKs للرفع برمجياً، وAmazon S3 REST API عبر إرسال طلب PUT. للملفات الأكبر من 160 جيجابايت، استخدم AWS CLI أو SDKs أو REST API مع ميزة الرفع متعدد الأجزاء (multipart upload) الذي يتيح رفع كائن واحد يصل إلى 5 تيرابايت.
- AWS Management Console: طريقة رسومية، سحب وإفلات، حد أقصى 160 جيجابايت.
- AWS CLI: رفع وتنزيل من سطر الأوامر أو من سكريبت.
- AWS SDKs: مكتبات برمجية للرفع برمجياً بلغات متعددة.
- S3 REST API: طلب PUT لرفع البيانات في عملية واحدة.
3️⃣ Multipart Upload — الرفع متعدد الأجزاء
يتيح الرفع متعدد الأجزاء رفع كائن واحد كمجموعة من الأجزاء، كل جزء هو مقطع متصل من بيانات الكائن. يمكن رفع هذه الأجزاء بشكل مستقل وبأي ترتيب. إذا فشل نقل أي جزء، يمكنك إعادة نقله دون التأثير على الأجزاء الأخرى. بعد رفع جميع الأجزاء، يقوم Amazon S3 بتجميعها وإنشاء الكائن.
- تحسين الإنتاجية (throughput) عبر رفع الأجزاء بالتوازي.
- التعافي السريع من مشاكل الشبكة بفضل صغر حجم الأجزاء.
- إمكانية إيقاف واستئناف رفع الكائنات.
- بدء الرفع قبل معرفة الحجم النهائي للكائن.
4️⃣ S3 Transfer Acceleration — تسريع النقل في S3
S3 Transfer Acceleration هي ميزة على مستوى الـ bucket توفر نقلاً سريعاً وآمناً للملفات عبر المسافات الطويلة بين العميل والـ bucket. تستخدم الميزة مواقع الحافة الموزعة عالمياً في CloudFront حيث تصل البيانات إلى موقع حافة ثم تُوجَّه إلى Amazon S3 عبر شبكة محسّنة. تحسّن سرعة النقل بنسبة 50-500% في المتوسط لنقل الكائنات الكبيرة عبر القارات.
5️⃣ AWS Transfer Family — عائلة نقل AWS
AWS Transfer Family هي خدمة نقل آمنة ومُدارة بالكامل تنقل الملفات من وإلى Amazon S3 أو Amazon EFS عبر البروتوكولات: SFTP وFTPS وFTP وAS2. لا تحتاج لتعديل تطبيقاتك أو تشغيل أي بنية تحتية لنقل الملفات، وتدفع فقط مقابل استخدام الخدمة دون تكاليف مسبقة.
بدلاً من إدارة خادم SFTP داخلي، تستخدم AWS Transfer Family لاستقبال الملفات مباشرة في Amazon S3.
تستخدم بعدها AWS Lambda لمعالجة الملفات وتحليلها آلياً.
هذا يوفر عليها تكاليف الصيانة ويضمن قابلية التوسع.
- ارفع الكائنات عبر AWS Management Console أو AWS CLI أو SDKs أو REST API.
- استخدم الرفع متعدد الأجزاء (multipart upload) للكائنات التي تبلغ 100 ميجابايت أو أكثر.
- S3 Transfer Acceleration يسرّع نقل الملفات عبر المسافات الطويلة بنسبة 50-500%.
- AWS Transfer Family يوفر نقلاً آمناً عبر بروتوكولات SFTP وFTPS وFTP وAS2.
- الكائنات تُشفَّر تلقائياً بالتشفير من جانب الخادم (SSE-S3) بشكل افتراضي.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Multipart upload | الرفع متعدد الأجزاء | رفع كائن كمجموعة أجزاء متوازية لتحسين الإنتاجية والتعافي من الأخطاء. |
| S3 Transfer Acceleration | تسريع النقل في S3 | ميزة تستخدم مواقع CloudFront الحافة لتسريع نقل الملفات عبر المسافات الطويلة. |
| AWS CLI | واجهة سطر أوامر AWS | أداة سطر أوامر لإدارة خدمات AWS عبر الأوامر النصية والسكريبتات. |
| AWS SDK | حزمة تطوير برمجيات AWS | مكتبات برمجية بلغات مختلفة للتفاعل برمجياً مع خدمات AWS. |
| Transfer Family | عائلة النقل | خدمة مدارة بالكامل لنقل الملفات عبر بروتوكولات SFTP وFTPS وFTP وAS2. |
| SSE-S3 | التشفير من جانب الخادم بمفاتيح S3 | تشفير تلقائي للكائنات عند التخزين وفك التشفير عند التنزيل باستخدام مفاتيح S3. |
1️⃣ Object Storage Classes — فئات التخزين الكائني
يوفر Amazon S3 فئات تخزين مختلفة تتناسب مع متطلبات العملاء المختلفة: الفئة العامة (S3 Standard) للبيانات عالية التكرار، والفئة الذكية (S3 Intelligent-Tiering) التي تنقل البيانات تلقائياً بين الطبقات، وفئات الوصول غير المتكرر (S3 Standard-IA وS3 One Zone-IA)، وفئات الأرشفة (S3 Glacier Instant Retrieval وS3 Glacier Flexible Retrieval وS3 Glacier Deep Archive)، وفئة S3 on Outposts للبيئات المحلية.
| فئة التخزين | مناطق التوفر | الحد الأدنى للتخزين | أفضل استخدام |
|---|---|---|---|
| S3 Standard | ≥3 | بدون | بيانات عالية التكرار، تطبيقات سحابية |
| S3 Intelligent-Tiering | ≥3 | بدون | بيانات غير معروفة نمط الوصول |
| S3 Standard-IA | ≥3 | 128 كيلوبايت / 30 يوماً | بيانات نادرة الوصول، صور قديمة |
| S3 One Zone-IA | 1 | 128 كيلوبايت / 30 يوماً | بيانات غير حرّة قابلة لإعادة الإنشاء |
| S3 Glacier Instant Retrieval | ≥3 | 128 كيلوبايت / 90 يوماً | بيانات أرشيفية تحتاج استرجاع فوري |
| S3 Glacier Flexible Retrieval | ≥3 | 90 يوماً | نسخ احتياطي، تعافي من كوارث |
| S3 Glacier Deep Archive | ≥3 | 180 يوماً | احتفاظ طويل الأمد 7-10 سنوات |
2️⃣ Configuring an Amazon S3 Lifecycle — تكوين دورة حياة Amazon S3
تكوين دورة حياة Amazon S3 هو مجموعة من القواعد التي تحدد الإجراءات التي يطبقها Amazon S3 على مجموعة من الكائنات. هناك نوعان من الإجراءات: إجراءات الانتقال (Transition actions) التي تنقل الكائنات إلى فئة تخزين أخرى، وإجراءات انتهاء الصلاحية (Expiration actions) التي تحدد متى تنتهي صلاحية الكائنات ويحذفها S3 تلقائياً. بعد تعيين سياسة دورة الحياة، تنتقل بياناتك تلقائياً إلى فئة تخزين مختلفة دون أي تغييرات على تطبيقك. هذا التدوير المنتظم للبيانات يقلل التكلفة الإجمالية لأنك تدفع أقل للبيانات الأقل أهمية بمرور الوقت.
تكون السجلات مطلوبة بشكل متكرر لمدة 30 يوماً (فئة Standard).
بعد 30 يوماً تنتقل إلى Standard-IA (وصول نادر).
بعد 365 يوماً تنتقل إلى Glacier Flexible Retrieval للأرشفة.
بعد 7 سنوات تُحذف تلقائياً.
كل هذا يحدث تلقائياً عبر سياسة دورة حياة واحدة.
3️⃣ Amazon S3 Versioning — التحكم في الإصدارات
S3 Versioning تحمي الكائنات من الكتابة فوقها أو حذفها عرضياً. عند تمكين الإصدارات، كل رفع لكائن بنفس المفتاح ينشئ إصداراً جديداً مع الاحتفاظ بالإصدار القديم. عند الحذف، يُضاف علامة حذف (delete marker) لكن الكائن يبقى قابلاً للاسترجاع بمعرّف الإصدار. يمكن أن يكون الـ bucket في إحدى ثلاث حالات: الإصدارات مفعّلة (Enabled)، أو معطّلة (Disabled) وهو الوضع الافتراضي، أو معلّقة (Suspended). بمجرد تفعيل الإصدارات لا يمكن تعطيلها بل فقط تعليقها.
| الإجراء | Versioning Enabled | Versioning Disabled |
|---|---|---|
| رفع كائن بنفس المفتاح | ينشئ إصداراً جديداً ويحتفظ بالقديم | يكتب فوق الكائن الأصلي ولا يمكن استرجاعه |
| حذف كائن | يضيف علامة حذف، والكائن قابل للاسترجاع | يحذف الكائن نهائياً |
| استرجاع | يمكن استرجاع أي إصدار بمعرّفه | غير ممكن بعد الحذف |
4️⃣ CORS Support — دعم مشاركة الموارد عبر الأصول
Cross-Origin Resource Sharing (CORS) تُحدد طريقة لتطبيقات الويب من جهة العميل والمحمّلة في نطاق واحد للتفاعل مع الموارد في نطاق مختلف. تتيح CORS بناء تطبيقات ويب غنية من جانب العميل باستخدام Amazon S3 والسماح بالوصول عبر الأصول بشكل انتقائي. لتكوين الـ bucket للسماح بطلبات عبر الأصول، تنشئ تكوين CORS وهو مستند XML بقواعد تحدد الأصول المسموح لها والعمليات المسموحة.
صفحة ويب في نطاق آخر تحاول استخدام هذا الخط.
قبل تحميل الصفحة، يجري المتصفح فحص CORS للتأكد من أن النطاق مسموح له الوصول إلى موارد S3.
تكوين CORS المناسب يسمح بذلك.
5️⃣ Amazon S3 Data Consistency Model — نموذج تناسق البيانات
Amazon S3 يوفر تناسقاً قوياً للقراءة بعد الكتابة (strong read-after-write consistency) لجميع الكائنات الجديدة والحالية في جميع المناطق. هذا يعني أنه بعد نجاح عملية PUT، ستعيد أي عملية GET أو LIST البيانات التي كُتبت للتو. يبسط التناسق القوي ترحيل أحمال العمل التحليلية المحلية إلى السحابة لأنه يلغي الحاجة إلى إضافة كود مخصص للحفاظ على تناسق الكائنات عبر ملايين أو مليارات الكائنات.
- فئات التخزين تتراوح من S3 Standard عالي الأداء إلى S3 Glacier Deep Archive منخفض التكلفة.
- سياسات دورة الحياة (Lifecycle policies) تنقل البيانات تلقائياً بين الفئات أو تحذفها.
- Versioning يحمي الكائنات من الحذف أو الكتابة فوقها عن طريق الاحتفاظ بالإصدارات القديمة.
- CORS تسمح لتطبيقات الويب في نطاقات مختلفة بالوصول إلى موارد S3.
- Amazon S3 يوفر تناسقاً قوياً للقراءة بعد الكتابة لجميع الكائنات.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| S3 Standard | المعيارية S3 | فئة تخزين عالية التوفر والأداء للبيانات كثيرة الوصول. |
| S3 Intelligent-Tiering | التدرج الذكي S3 | فئة تخزين تنقل البيانات تلقائياً بين الطبقات بناءً على نمط الوصول لتوفير التكاليف. |
| Lifecycle policy | سياسة دورة الحياة | قواعد تحدد متى تنتقل الكائنات بين فئات التخزين أو تُحذف. |
| Versioning | التحكم في الإصدارات | ميزة تحتفظ بإصدارات متعددة من الكائن لحمايته من الحذف أو الاستبدال. |
| Delete marker | علامة الحذف | عنصر نائب يُضاف عند حذف كائن في bucket مفعّل عليه الإصدارات. |
| CORS | مشاركة الموارد عبر الأصول | آلية أمنية تسمح لتطبيقات الويب في نطاق بالوصول لموارد نطاق آخر. |
| Strong consistency | التناسق القوي | ضمان قراءة أحدث البيانات فوراً بعد كتابتها دون تأخير. |
| S3 Glacier Deep Archive | الأرشيف العميق S3 Glacier | أقل فئة تخزين تكلفة للاحتفاظ طويل الأمد 7-10 سنوات. |
1️⃣ Amazon S3 Default Security Configurations — تكوينات الأمان الافتراضية لـ Amazon S3
S3 buckets والكائنات المخزّنة فيها خاصة ومحمية بشكل افتراضي. جميع الـ buckets مشفّرة بشكل افتراضي باستخدام التشفير من جانب الخادم بمفاتيح Amazon S3 المدارة (SSE-S3). الجهات الوحيدة التي يمكنها الوصول إلى bucket جديد غير معدّل هي مسؤول الحساب ومستخدم الجذر AWS account root user.
2️⃣ Encrypting Objects in Amazon S3 — تشفير الكائنات
هناك نوعان رئيسيان للتشفير: التشفير من جانب الخادم (Server-side encryption) حيث يشفّر Amazon S3 الكائنات قبل حفظها على القرص ويفك تشفيرها عند التنزيل، والتشفير من جانب العميل (Client-side encryption) حيث تشفّر البيانات من جانب العميل قبل رفعها إلى Amazon S3 وتدير أنت عملية التشفير والمفاتيح. بالإضافة إلى SSE-S3 الافتراضي، يمكنك استخدام SSE-KMS مع AWS KMS أو DSSE-KMS للتشفير المزدوج، أو SSE-C بمفاتيح يقدمها العميل.
3️⃣ Tools for Protecting Buckets and Objects — أدوات حماية الـ Buckets والكائنات
توفر AWS أدوات متعددة للتحكم في الوصول: ميزة Block Public Access التي تلغي أي سياسات أو أذونات تسمح بالوصول العام، وسياسات IAM لتحديد المستخدمين والأدوار المسموح لها، وسياسات الـ bucket (Bucket policies) للتحكم بالوصول إلى buckets وكائنات محددة، وقوائم التحكم في الوصول (ACLs)، ونقاط الوصول S3 access points، وعناوين Preassigned URLs للوصول المحدد زمنياً، وAWS Trusted Advisor لفحص أذونات الـ bucket.
- Block Public Access: تجعل الـ bucket غير قابل للوصول العام، متجاوزة أي سياسات أخرى.
- IAM policies: تُحدد المستخدمين أو الأدوار المسموح لها بالوصول إلى buckets وكائنات محددة.
- Bucket policies: تُستخدم عندما لا يمكن للمستخدم المصادقة عبر IAM، وتدعم عبر الحسابات.
- Preassigned URLs: تمنح وصولاً محدّد زمنياً للآخرين عبر عناوين URL مؤقتة.
- S3 access points: تُهيئ الوصول بأسماء وأذونات خاصة بكل تطبيق.
4️⃣ Considerations When Choosing a Region — اعتبارات اختيار المنطقة
هناك أربعة اعتبارات رئيسية: قوانين خصوصية البيانات والامتثال التنظيمي (Data privacy laws)، وقرب المستخدمين من البيانات (Proximity) لتقليل زمن الوصول، وتوفر الخدمات والميزات في المنطقة (Service availability)، وفعالية التكلفة (Cost-effectiveness) حيث تختلف التكاليف حسب المنطقة.
لا يمكنها تخزين بيانات العملاء خارج الاتحاد الأوروبي.
تختار منطقة eu-west-1 (إيرلندا) لتخزين بيانات S3.
زبائنها في أوروبا يحصلون على زمن وصول منخفض وتبقى الشركة متوافقة قانونياً.
5️⃣ Amazon S3 Inventory and Costs — جرد Amazon S3 والتكاليف
Amazon S3 Inventory يساعدك في تدقيق حالة النسخ المتماثل والتشفير للكائنات. يوفر تقارير يومية أو أسبوعية تدرج كائناتك وبياناتها الوصفية بصيغ CSV أو ORC أو Parquet. بالنسبة للتكاليف، تدفع فقط مقابل ما تستخدمه: غيغابايت الكائنات المخزّنة شهرياً وطلبات PUT وCOPY وPOST وLIST. لا توجد رسوم على أول 100 غيغابايت من نقل البيانات إلى الإنترنت شهرياً، ولا على نقل البيانات من S3 إلى CloudFront أو بين خدمات AWS في نفس المنطقة.
6️⃣ Activity: Designing with Amazon S3 — نشاط: التصميم باستخدام Amazon S3
يريد صاحب المقهى إنشاء موقع ثابت ولكن الآن يريد إتاحة المستندات (تعليمات الطهي، معلومات الموردين، كشوف الرواتب، التدريب على الامتثال) للموظفين فقط. الحل: إنشاء مجلد لكل نوع محتوى، ثم إنشاء سياسات IAM (جماعية أو فردية) للسماح أو منع وصول المستخدمين بناءً على مستواهم الوظيفي في المقهى.
بينما يحتاج خالد كمصمم فقط إلى ملفات التدريب والتعليمات.
يُنشئ حساب bucket بمجلدات منفصلة وسياسات IAM تسمح لكل موظف بالوصول إلى ما يحتاجه فقط.
هذا يطبق مبدأ الحد الأدنى من الامتياز (principle of least privilege).
- الـ buckets خاصة ومشفّرة بشكل افتراضي (SSE-S3).
- خيارات التشفير: من جانب الخادم (SSE-S3 وSSE-KMS) أو من جانب العميل.
- أدوات الحماية تشمل Block Public Access وسياسات IAM والـ Bucket policies.
- اعتبارات اختيار المنطقة: الخصوصية، القرب، توفر الخدمات، التكلفة.
- Amazon S3 Inventory يدقّق التخزين ويساعد في تحسين التكاليف.
- تطبيق مبدأ الحد الأدنى من الامتياز عبر المجلدات وسياسات IAM.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Block Public Access | منع الوصول العام | ميزة تلغي أي سياسات تسمح بالوصول العام للـ bucket لحماية البيانات. |
| Bucket policy | سياسة الحاوية | سياسة موارد تُحدد الصلاحيات على مستوى bucket أو كائن. |
| SSE-KMS | تشفير من جانب الخادم بمفاتيح KMS | تشفير باستخدام AWS Key Management Service لإدارة المفاتيح. |
| Client-side encryption | التشفير من جانب العميل | تشفير البيانات قبل رفعها إلى S3 مع إدارة العميل لعملية التشفير. |
| Preassigned URL | عنوان URL مسبق الصلاحية | عنوان URL مؤقت يمنح حق الوصول إلى كائن S3 لفترة محددة. |
| S3 Inventory | جرد S3 | تقرير دوري يدرج الكائنات والبيانات الوصفية لتدقيق التخزين وتحليل الاستخدام. |
| Principle of least privilege | مبدأ الحد الأدنى من الامتياز | منح المستخدمين فقط الأذونات اللازمة لأداء مهامهم دون زيادة. |
1️⃣ Data Protection — حماية البيانات
في إطار AWS Well-Architected Framework، تُعد حماية البيانات ممارسة أساسية تحت ركيزة الأمان (Security pillar). هناك ممارستان رئيسيتان: فرض التشفير عند التخزين (Enforce encryption at rest) وفرض التحكم في الوصول (Enforce access control). يدعم Amazon S3 هذه الممارسات من خلال: تشفير الـ buckets والكائنات افتراضياً، وجعلها خاصة بشكل افتراضي مع صلاحية الوصول صراحةً، واستخدام versioning لحماية البيانات من الحذف العرضي، وميزة Block Public Access لمنع الوصول العام غير المقصود.
2️⃣ Architecture Selection — اختيار البنية
فهم الخدمات السحابية المتاحة ومراعاة التكلفة عند اختيار التخزين هما ممارستان مهمتان تحت ركيزة كفاءة الأداء (Performance Efficiency pillar). يوفر Amazon S3 فئات تخزين متعددة تناسب أنماط الوصول المختلفة. S3 Intelligent-Tiering ينقل الكائنات تلقائياً إلى الطبقة الأكثر فعالية من حيث التكلفة بناءً على أنماط الوصول. كما تتضمن خيارات تحسين الأداء مثل S3 Transfer Acceleration والرفع متعدد الأجزاء (multipart upload).
3️⃣ Cost-Effective Resources — الموارد الفعّالة من حيث التكلفة
اختيار الموارد والتكوينات المناسبة لأحمال العمل هو مفتاح توفير التكاليف تحت ركيزة تحسين التكلفة (Cost Optimization pillar). تتغير أحمال العمل بمرور الوقت، وبعض الخدمات والميزات تكون أكثر فعالية من حيث التكلفة عند مستويات استخدام مختلفة. يدعم Amazon S3 ذلك من خلال فئات التخزين المتعددة وقواعد دورة الحياة التي تنقل البيانات تلقائياً إلى فئة أقل تكلفة، وS3 Intelligent-Tiering الذي يضبط التخزين تلقائياً، وAmazon S3 Inventory لتدقيق الاستخدام واتخاذ قرارات مبنية على البيانات.
4️⃣ Failure Management — إدارة الأعطال
إدارة الأعطال هي ممارسة مهمة تحت ركيزة الموثوقية (Reliability pillar). يقتبس Werner Vogels، المدير التقني لـ Amazon.com: "الأعطال أمر محتوم، وكل شيء سيفشل في النهاية بمرور الوقت." صُمم Amazon S3 لتحمل الأعطال: متانة 11 تسعة لضمان عدم فقدان البيانات، وتوفر 4 تسعات للوصول الموثوق، وتخزين متكرر عبر مناطق توفر متعددة، والتحقق المنتظم من سلامة البيانات باستخدام المجاميع الاختبارية (checksums).
حتى إذا اخترقت إحدى الحجرات وبدأت بالغرق، تبقى الحجرات الأخرى سليمة وتبقي السفينة طافية.
هكذا صُمم Amazon S3 بطبقات متعددة من التكرار والحماية لتحمل أي عطل في أحد المكونات.
- الأمان: تشفير افتراضي (SSE-S3)، وصلاحية وصول صريحة، وBlock Public Access.
- كفاءة الأداء: فئات تخزين متعددة تناسب أنماط الوصول المختلفة وخيارات لتحسين الأداء.
- تحسين التكلفة: قواعد دورة الحياة، Intelligent-Tiering، وجرد S3 لتحليل الاستخدام.
- الموثوقية: متانة 11 تسعة، توفر 4 تسعات، تخزين متكرر عبر مناطق التوفر، مجاميع اختبارية.
- Amazon S3 يُستخدم أيضاً للنسخ الاحتياطي لتحسين إدارة الأعطال.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Well-Architected Framework | إطار الهندسة المتقنة | إطار من AWS يقيّم البنى السحابية عبر ستة ركائز لضمان أفضل الممارسات. |
| Security pillar | ركيزة الأمان | ركيزة تركز على حماية المعلومات والأنظمة مع تقديم قيمة الأعمال. |
| Reliability pillar | ركيزة الموثوقية | ركيزة تركز على قدرة النظام على التعافي من الأعطال وتلبية الطلب. |
| Cost Optimization pillar | ركيزة تحسين التكلفة | ركيزة تركز على تحقيق أقصى قيمة بأقل تكلفة ممكنة. |
| Performance Efficiency pillar | ركيزة كفاءة الأداء | ركيزة تركز على استخدام الموارد الحاسوبية بكفاءة لتلبية المتطلبات. |
| Checksum | المجموع الاختباري | قيمة تُستخدم للتحقق من سلامة البيانات بعد النقل أو التخزين. |
| Fault isolation | عزل الأعطال | تصميم يمنع انتشار العطل من مكون إلى آخر في النظام. |
1️⃣ The Evolving Café Architecture: Version 1 — تطور بنية المقهى: الإصدار الأول
الإصدار الأول (V1) هو أول تطبيق عملي في سلسلة تطبيقات المقهى السبعة. الهدف منه إنشاء موقع ثابت للمقهى يُبرز صور المتجر ويوفر معلومات العمل مثل الموقع وساعات العمل ورقم الهاتف. يستضاف الموقع على Amazon S3 بتكلفة منخفضة دون الحاجة إلى تشغيل أي خوادم. سلمى طلبت من خالد إنشاء الموقع، وخلال هذا النشاط ستلعب أنت دور خالد.
- إنشاء S3 bucket لاستضافة الموقع الثابت ورفع المحتوى إليه.
- إنشاء سياسة bucket policy لمنح صلاحية القراءة العامة.
- تفعيل الإصدارات (versioning) على الـ bucket.
- تعيين سياسات دورة حياة (lifecycle policies).
- تفعيل النسخ المتماثل عبر المناطق (cross-Region replication).
بدلاً من الدفع لشركة استضافة، يقوم خالد برفع الموقع على Amazon S3.
يُفعّل الإصدارات لحماية الموقع من الحذف العرضي ويُعدّل سياسة bucket للسماح للزوار بمشاهدة الموقع.
التكلفة تقريباً معدومة والموقع يعمل بموثوقية عالية.
2️⃣ Sample Exam Question — سؤال امتحان نموذجي
| الخيار | التقييم |
|---|---|
| A: تخزين البيانات في bucket في منطقتين مختلفتين | يوفر حماية محدودة ضد انقطاع منطقة لكنه لا يمنع الحذف أو الكتابة فوق الملفات. |
| B: تفعيل الإصدارات (versioning) على الـ bucket | ✅ يوفر حماية من الحذف أو الكتابة فوق الملفات بالاحتفاظ بالإصدارات القديمة. |
| C: نقل البيانات إلى S3 Infrequent Access | يساعد في تقليل التكاليف للملفات نادرة الوصول وليس في منع الحذف. |
| D: استخدام Amazon S3 Inventory | يساعد في فهم النشاط على الكائنات لكنه لا يمنع الحذف. |
🚀 الخاتمة
في هذه الوحدة تعمقنا في Amazon Simple Storage Service (Amazon S3)، خدمة التخزين الكائني الرائدة من AWS. تعرفنا على أنواع التخزين الثلاثة (كتل، ملفات، كائنات) ومكونات S3 الأساسية من buckets وobjects ومفاتيح الكائنات والبيانات الوصفية. استعرضنا حالات الاستخدام الرئيسية من استضافة الوسائط والمواقع الثابتة إلى تخزين بيانات التحليلات والنسخ الاحتياطي، وطرق نقل البيانات المتعددة بما في ذلك الرفع متعدد الأجزاء وS3 Transfer Acceleration وAWS Transfer Family. تناولنا بالتفصيل فئات التخزين المختلفة ودورات الحياة والتحكم في الإصدارات وCORS وتناسق البيانات، بالإضافة إلى أفضل ممارسات الأمان والتصميم مثل التشفير الافتراضي وسياسات التحكم في الوصول واعتبارات اختيار المنطقة. وأخيراً طبقنا مبادئ AWS Well-Architected Framework على طبقة التخزين من خلال ركائز الأمان وكفاءة الأداء وتحسين التكلفة والموثوقية، مع تطبيق عملي لإنشاء موقع ثابت للمقهى على Amazon S3.
