🎯 Adding a Storage Layer with Amazon S3 — إضافة طبقة تخزين باستخدام Amazon S3
التخزين هو أحد أهم مكونات أي بنية سحابية، وتقدم AWS مجموعة متكاملة من خدمات التخزين لتلبية احتياجات مختلفة. يقدم هذا المقال خدمة Amazon S3 (Simple Storage Service)، أشهر خدمات التخزين في AWS، موضحاً ميزاتها وأنواع التخزين المتاحة وكيفية دمجها في بنيتك لتخزين آمن وموثوق وقابل للتوسع.
1️⃣ Types of storage — أنواع التخزين (Types of storage)
التخزين الكتلي (block storage) والتخزين الملفاتي (file storage) والتخزين الكائني (object storage). لكل نوع خصائصه وحالات استخدامه المثلى.
- التخزين الكتلي (Block storage): تُخزن البيانات في كتل (blocks) ذات حجم ثابت، وتديرها نظم الملفات والتطبيقات. مناسب لأنظمة التشغيل وقواعد البيانات.
- التخزين الملفاتي (File storage): تُخزن البيانات في مجلدات وملفات مثل محرك شبكة مشترك. مناسب للمشاركة بين المستخدمين والأقسام.
- التخزين الكائني (Object storage): تُخزن الملفات ككائنات (objects)، لكل كائن بيانات وبيانات وصفية (metadata) ومفتاح (key). عند تعديل ملف، يُستبدل الكائن بالكامل — وهذا يختلف عن التخزين الكتلي حيث يمكن تعديل جزء من البيانات فقط.
2️⃣ Amazon S3 — خدمة أمازون S3 (Amazon S3)
يمكنها تخزين كميات ضخمة من البيانات غير المهيكلة (unstructured data) داخل حاويات (buckets) ذات أسماء فريدة عالمياً.
- الحجم الأقصى لملف واحد هو 5 TB، ويمكنك تخزين عدد غير محدود من الكائنات في الحاوية.
- كل كائن له رابط (URL) فريد عالمياً يمكن استخدامه للوصول المباشر.
- للكائن خمس خصائص: المفتاح (key) ومعرّف الإصدار (version ID) والقيمة (value) والبيانات الوصفية (metadata) والموارد الفرعية (sub-resources).
- قيمة الكائن لا تتغير بعد الرفع — أي تعديل يتطلب رفع نسخة جديدة بالكامل.
- اسم الحاوية يجب أن يكون فريداً عالمياً عبر كل حسابات AWS.
3️⃣ Amazon S3 components — مكونات أمازون S3 (Amazon S3 components)
الحاوية (bucket) وهي وعاء الكائنات، والكائن (object) وهو الملف المخزن، ومفتاح الكائن (object key) وهو المعرف الفريد داخل الحاوية.
- الحاوية (Bucket): تنظم أسماء الكائنات، وتحدد الحساب المسؤول عن التكاليف، وتتحكم في الوصول، وتُعد تقارير الاستخدام.
- الكائن (Object): يمكن أن يكون أي نوع ملف — نص، فيديو، صورة — ويتكون من بيانات وبيانات وصفية.
- مفتاح الكائن (Object key): الاسم الفريد للكائن داخل الحاوية، يشبه مسار الملف الكامل.
- كل حاوية موجودة في منطقة (Region) واحدة. الكائنات لا تترك هذه المنطقة ما لم تنقلها أنت.
4️⃣ Prefixes — استخدام البادئات (Prefixes) لتنظيم المجلدات
لكن يمكنك تنظيم الكائنات باستخدام البادئات (prefixes) — وهي بداية اسم الكائن المشتركة بين مجموعة من الكائنات — لإنشاء هيكل تنظيمي منطقي.
- الكائنات تُخزن في حاويات فقط، ولا يوجد هيكل مجلدات حقيقي داخل S3.
- البادئة (Prefix) هي بداية اسم الكائن المشتركة، مثلاً: photos/2022/ لكل صور سنة 2022.
- عند البحث، يمكنك تحديد البادئة لترى كائنات معينة فقط، مما يساعد في تنظيم الكائنات في مجموعات منطقية.
- هذه الطريقة تفصل بيانات كل مستخدم أو قسم عن الآخر دون الحاجة لمجلدات فيزيائية.
5️⃣ Amazon S3 benefits — فوائد أمازون S3 (Amazon S3 benefits)
مع سعة غير محدودة فعلياً وأداء عالٍ يتوسع تلقائياً، مما يجعلها مناسبة لأي حمل عمل.
- المتانة (Durability): توفر S3 Standard متانة 11 تسعة (99.999999999%)، مما يعني احتمال فقدان كائن واحد كل 10 ملايين سنة.
- التوافر (Availability): توفر وصولاً للبيانات بنسبة 99.99% لـ S3 Standard.
- السعة غير محدودة فعلياً، مع تحقيق آلاف المعاملات في الثانية وتوسع تلقائي مع زيادة الطلبات.
- S3 تخزن كائناتك على أجهزة متعددة في عدة مرافق داخل المنطقة، وتصمم لتحمل أعطال الأجهزة.
- تتحقق S3 بانتظام من سلامة بياناتك باستخدام المجاميع الاختبارية (checksums).
- يوجد ثلاثة أنواع أساسية للتخزين: الكتلي (block) والملفاتي (file) والكائني (object)، وS3 تنتمي للنوع الكائني.
- الحاويات (buckets) والكائنات (objects) والمفاتيح (keys) هي المكونات الأساسية لخدمة S3.
- تُستخدم البادئات (prefixes) لتنظيم الكائنات في مجموعات منطقية دون مجلدات حقيقية.
- توفر S3 متانة 11 تسعة وتوافر 99.99% وسعة غير محدودة وأداء عالٍ يتوسع تلقائياً.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Block storage | التخزين الكتلي | تخزين البيانات في كتل ثابتة الحجم. مناسب لأنظمة التشغيل وقواعد البيانات. |
| File storage | التخزين الملفاتي | تخزين البيانات في مجلدات وملفات. مناسب للمشاركة بين المستخدمين. |
| Object storage | التخزين الكائني | تخزين البيانات ككائنات مع بيانات وصفية. مناسب للوسائط والنسخ الاحتياطي. |
| Bucket | الحاوية | وعاء للكائنات في S3. له اسم فريد عالمياً ومرتبط بمنطقة AWS واحدة. |
| Object key | مفتاح الكائن | المعرف الفريد للكائن داخل الحاوية. يشبه مسار الملف الكامل. |
| Durability | المتانة | مقياس لاحتمال عدم فقدان البيانات. S3 Standard يوفر 11 تسعة. |
1️⃣ How customers use S3 — كيف يستخدم العملاء S3 (How customers use S3)
استيعاب ارتفاعات الطلب المفاجئة، استضافة المواقع الثابتة، التحليل المالي، والتعافي من الكوارث.
- ارتفاع الطلب (Spikes in demand): لاستضافة محتوى ويب يحتاج نطاقاً ترددياً كبيراً فجأة دون انهيار.
- الموقع الثابت (Static site): لاستضافة موقع HTML مع صور وفيديوهات دون تشغيل أي خادم.
- التحليل المالي (Financial analysis): لتخزين بيانات تحللها خدمات أخرى مثل QuickSight وEMR.
- التعافي من الكوارث (Disaster recovery): لدعم النسخ الاحتياطي واستعادة البيانات عند الحاجة.
2️⃣ Media hosting — حالة استخدام: استضافة الوسائط (Media hosting)
تخزين الفيديوهات والصور والملفات الصوتية وتوزيعها مباشرة عبر روابط URLs أو عبر شبكة CDN.
- كل كائن له رابط (URL) يمكن استخدامه لعرض المحتوى مباشرة للمستخدمين.
- يمكن أن تكون S3 مخزناً أصلياً لشبكة توصيل المحتوى (CDN) مثل CloudFront لتوزيع أسرع.
- لا تحتاج لتوفير خوادم للتخزين — الخدمة تتوسع تلقائياً مع نمو المحتوى.
- مرونة S3 تجعلها مناسبة للمواقع سريعة النمو التي لا يمكنها التنبؤ بحجم المحتوى.
3️⃣ Static website — حالة استخدام: استضافة موقع ثابت (Static website)
الموقع الثابت يحتوي على صفحات HTML وCSS وصور وأكواد من جانب العميل فقط، ولا يحتاج معالجة من الخادم.
- الموقع الثابت يحتوي على صفحات بمحتوى ثابت (HTML، CSS، صور) وقد يحتوي على أكواد من جانب العميل (client-side scripts).
- S3 لا تدعم البرمجة من جانب الخادم (server-side) لكنها ممتازة للمواقع الثابتة.
- هيئ الحاوية لاستضافة المواقع وأضف سياسة حاوية (bucket policy) تسمح بالوصول العام للكائنات.
- ارفع محتوى موقعك — لا تحتاج لتشغيل آلة افتراضية (virtual machine) أو خادم ويب.
4️⃣ Data store for computation — تخزين بيانات للحوسبة والتحليلات (Data store for computation and analytics)
من خلال تشغيل موارد حوسبة مؤقتة تقرأ البيانات من S3 وتعالجها ثم تكتب النتائج وتغلق لتوفير التكاليف.
- يُشغل Amazon EC2 Spot Fleet عندما يكون سعر الحالات الفورية (Spot Instances) منخفضاً.
- تُستخرج البيانات من حاوية S3 وتعالج عبر خوارزميات محددة.
- تُحمل البيانات المعالجة في حاوية S3 أخرى للنتائج.
- تُغلق موارد الحوسبة تلقائياً لتوفير التكاليف بعد اكتمال المعالجة.
- يمكن استخدام Amazon QuickSight لاستخراج رؤى من البيانات المعالجة.
5️⃣ Back up and archive — النسخ الاحتياطي والأرشفة (Back up and archive critical data)
بفضل متانتها العالية وتوسعها الكبير، مع إمكانية نقل البيانات تلقائياً إلى فئات تخزين منخفضة التكلفة للتخزين طويل الأجل.
- تُنسخ البيانات من مركز البيانات المحلي أو من أجهزة Amazon EC2 إلى حاويات S3.
- التكرار عبر المناطق (Cross-Region Replication): تُنسخ الكائنات تلقائياً إلى حاويات في مناطق أخرى كعملية غير متزامنة.
- يمكن نقل البيانات القديمة من S3 Standard إلى Amazon S3 Glacier للتخزين طويل الأجل بتكلفة أقل بكثير.
- سياسات دورة الحياة تنقل البيانات تلقائياً بين الفئات دون تدخل يدوي.
- S3 تُستخدم لاستضافة الوسائط والمواقع الثابتة والتحليلات والنسخ الاحتياطي.
- كل كائن له رابط URL يمكن استخدامه مباشرة أو عبر شبكة CDN.
- التوسع التلقائي يجعل S3 مثالية لتحمل ارتفاعات الطلب المفاجئة.
- سياسات دورة الحياة تنقل البيانات تلقائياً إلى فئات تخزين أرخص.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Media hosting | استضافة الوسائط | استخدام S3 لتخزين وتوزيع الفيديوهات والصور والملفات الصوتية. |
| Static website | موقع ثابت | موقع لا يحتاج معالجة من خادم. يمكن استضافته على S3 بتكلفة منخفضة. |
| Clickstream analytics | تحليل تدفق النقرات | تحليل بيانات تصفح المستخدمين لفهم سلوكهم في الموقع. |
| Cross-Region Replication | التكرار عبر المناطق | نسخ الكائنات تلقائياً من حاوية في منطقة إلى حاويات في مناطق أخرى. |
| Amazon QuickSight | أداة تحليلات الأعمال | خدمة من AWS لتحليل البيانات وإنشاء لوحات معلومات تفاعلية. |
1️⃣ Storing objects — تخزين الكائنات في S3 (Storing objects)
مع تشفير تلقائي من جانب الخادم (SSE-S3) افتراضياً، ويمكنك رفع عدد غير محدود من الكائنات.
- تحتاج أذونات كتابة (write permissions) على الحاوية أولاً.
- يمكنك رفع أي نوع ملف: صور، نسخ احتياطية، بيانات، أفلام.
- يُشفر كل كائن تلقائياً باستخدام SSE-S3 افتراضياً.
- عند تنزيل الكائن، يُفك التشفير تلقائياً دون أي إجراء من المطور.
2️⃣ Options for uploading — طرق رفع الكائنات إلى S3 (Options for uploading)
لوحة تحكم AWS (Console)، واجهة سطر الأوامر (CLI)، مكتبات التطوير (SDKs)، وواجهة REST API.
- Console: رفع بالسحب والإفلات، بحد أقصى 160 جيجابايت.
- AWS CLI: رفع وتنزيل من الطرفية مع دعم الرفع متعدد الأجزاء.
- AWS SDKs: رفع برمجياً من التطبيقات بلغات متعددة.
- REST API: رفع عبر طلب PUT للملفات من أي حجم.
3️⃣ Multipart upload — الرفع متعدد الأجزاء (Multipart upload)
تُرفع بالتوازي، مع إمكانية إعادة رفع الأجزاء الفاشلة فقط، وتجميعها تلقائياً في S3.
- إنتاجية أعلى: الأجزاء تُرفع بالتوازي لتسريع العملية.
- تعافي سريع: إذا فشل رفع جزء، يُعاد رفعه فقط دون التأثير على الأجزاء الأخرى.
- إيقاف واستئناف: يمكن البدء في الرفع قبل معرفة الحجم النهائي.
- بعد رفع كل الأجزاء، تجمع S3 الأجزاء تلقائياً لتكوين الكائن الكامل.
4️⃣ Transfer Acceleration — تسريع النقل S3 (Transfer Acceleration)
لتوجيه البيانات عبر شبكة AWS الداخلية بدلاً من الإنترنت العام، مما يسرع النقل لمسافات بعيدة.
- عندما يرفع عملاؤك من جميع أنحاء العالم إلى حاوية مركزية.
- عندما تنقل جيجابايت إلى تيرابايت بانتظام عبر القارات.
- عندما لا تستخدم كل النطاق الترددي المتاح لديك.
5️⃣ AWS Transfer Family — عائلة النقل من AWS (AWS Transfer Family)
لنقل الملفات من وإلى S3 وEFS دون الحاجة لتشغيل بنية تحتية خاصة للنقل.
- تدعم SFTP (الإصدار 3)، FTPS، FTP، وAS2.
- خدمة مُدارة تتوسع تلقائياً — لا تحتاج لتشغيل خوادم نقل.
- لا تحتاج لتعديل تطبيقاتك — الشركاء يستخدمون نفس برامج FTP/SFTP.
- لا توجد تكاليف مسبقة — تدفع فقط مقابل الاستخدام.
- أربع طرق لرفع البيانات: Console، CLI، SDKs، REST API.
- الرفع متعدد الأجزاء يُسرّع الملفات الكبيرة مع إمكانية استئناف الرفع.
- تسريع النقل يستخدم مواقع حافة CloudFront للنقل السريع لمسافات طويلة.
- عائلة النقل خدمة مُدارة تدعم SFTP/FTPS/FTP/AS2 دون بنية تحتية خاصة.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| SSE-S3 | تشفير من جانب الخادم بـ S3 | تشفير تلقائي للكائنات في S3 بمفاتيح يديرها S3 نفسه. |
| Multipart upload | الرفع متعدد الأجزاء | رفع كائن كبير على عدة أجزاء بالتوازي مع إمكانية استئناف الرفع. |
| Transfer Acceleration | تسريع النقل | ميزة S3 تستخدم CloudFront لتسريع نقل الملفات لمسافات طويلة. |
| SFTP | بروتوكول نقل الملفات الآمن | بروتوكول يستخدم SSH لتشفير نقل الملفات. شائع في الشركات. |
| Transfer Family | عائلة النقل | خدمة مُدارة من AWS لنقل الملفات عبر SFTP/FTPS/FTP/AS2. |
1️⃣ Object storage classes — فئات التخزين الكائني (Object storage classes)
من البيانات المتكررة الوصول إلى الأرشفة طويلة الأجل، مع اختلافات في التكلفة والتوافر.
- S3 Standard: للبيانات المتكررة الوصول. أداء عالٍ ومتانة 11 تسعة وتوافر 99.99%.
- S3 Intelligent-Tiering: تنقل البيانات تلقائياً بين المستويات حسب تكرار الوصول لتوفير التكلفة.
- S3 Standard-IA وS3 One Zone-IA: للبيانات نادرة الوصول. تكلفة تخزين أقل مع رسوم استرجاع.
- S3 Glacier (ثلاثة أنواع): Instant Retrieval وFlexible Retrieval وDeep Archive — للأرشفة طويلة الأجل بأقل تكلفة.
2️⃣ Storage classes breakdown — تفصيل فئات تخزين S3 (Storage classes breakdown)
لكنها تختلف في عدد مناطق التوفر والحد الأدنى للحجم والمدة ورسوم الاسترجاع.
- عدد مناطق التوافر: 3 أو أكثر لكل الفئات ما عدا S3 One Zone-IA (منطقة واحدة فقط).
- الحد الأدنى لحجم الكائن: 128 كيلوبايت لـ Standard-IA وOne Zone-IA وGlacier Instant Retrieval.
- الحد الأدنى لمدة التخزين: 30 يوماً لـ IA، 90 يوماً لـ Glacier، 180 يوماً لـ Deep Archive.
- رسوم استرجاع: تنطبق على كل الفئات ما عدا S3 Standard وS3 Intelligent-Tiering.
3️⃣ Configuring S3 Lifecycle — تكوين دورة حياة S3 (Configuring S3 Lifecycle)
تشمل نوعين من الإجراءات: النقل بين الفئات (Transition) والانتهاء والحذف (Expiration).
- النقل (Transition): تحدد متى تنتقل الكائنات إلى فئة تخزين أخرى. مثلاً: إلى S3 Standard-IA بعد 30 يوماً، أو إلى Glacier بعد سنة.
- الانتهاء (Expiration): تحدد متى تنتهي صلاحية الكائنات وتُحذف تلقائياً.
- بعد تعيين سياسة دورة الحياة، تنتقل بياناتك تلقائياً بين الفئات دون تغيير في تطبيقك.
4️⃣ S3 versioning — النسخ الإصدارية في S3 (S3 versioning)
تُفعل على مستوى الحاوية، وكل كائن يحصل على معرّف إصدار (version ID) فريد.
- تفعّل على مستوى الحاوية ولها ثلاث حالات: مفعّل (enabled)، معطل (disabled)، موقوف (suspended).
- بعد التفعيل، لا يمكن تعطيل النسخ الإصدارية بالكامل — يمكن فقط إيقافها مؤقتاً.
- كل رفع جديد ينشئ معرّف إصدار فريداً دون استبدال الإصدارات القديمة.
- يمكن استرجاع أي إصدار سابق باستخدام معرّف الإصدار الخاص به.
5️⃣ Versioning operations — عمليات النسخ الإصدارية (Versioning operations)
PUT يضيف إصداراً جديداً بدلاً من الاستبدال، DELETE يضع علامة حذف فقط، وGET يجلب الأحدث.
- PUT: لا يُستبدل الإصدار القديم — تُنشئ S3 معرّف إصدار جديد وتضيف الإصدار الأحدث.
- DELETE: كل الإصدارات تبقى — تضع S3 علامة حذف (delete marker) فقط تصبح الإصدار الحالي.
- GET: يجلب الإصدار الأحدث. إذا كان علامة حذف، يُرجع خطأ 404 Not Found.
- يمكن استرجاع أي إصدار قديم بتحديد version ID في الطلب.
- فئات تخزين متعددة من Standard إلى Glacier Deep Archive تختلف في التكلفة.
- سياسات دورة الحياة تنقل الكائنات تلقائياً بين الفئات أو تحذفها.
- النسخ الإصدارية تحمي من الاستبدال والحذف العرضي عبر version ID وdelete marker.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| S3 Standard | المعيار S3 | فئة تخزين للبيانات المتكررة الوصول. أداء عالٍ ومتانة 11 تسعة. |
| S3 Intelligent-Tiering | التدرج الذكي S3 | فئة تخزين تنقل البيانات تلقائياً بين المستويات حسب تكرار الوصول. |
| S3 Glacier | مخزن S3 الجليدي | فئات أرشفة منخفضة التكلفة جداً للتخزين طويل الأجل. |
| Lifecycle policy | سياسة دورة الحياة | قواعد تلقائية لنقل الكائنات بين فئات التخزين أو حذفها مع الوقت. |
| Versioning | النسخ الإصدارية | ميزة تحتفظ بنسخ متعددة من كل كائن في الحاوية للحماية من الفقدان. |
| Delete marker | علامة الحذف | إصدار خاص يظهر عند حذف كائن في حاوية مفعّل بها النسخ الإصدارية. |
1️⃣ CORS — مشاركة الموارد عبر الأصول (CORS)
Cross-Origin Resource Sharing (CORS) هي آلية أمان تسمح لمتصفح الويب بطلب موارد من نطاق (domain) مختلف عن النطاق الأصلي للموقع، وهي ضرورية عند استضافة موقع ثابت على Amazon S3 يحتاج لاستدعاء APIs أو موارد من خدمات أخرى.
- تستضيف موقعاً ثابتاً على حاوية S3 (مثلاً:
example.com). - يحتاج الموقع لتحميل صور أو بيانات من حاوية S3 أخرى أو من API خارجي.
- المتصفح يمنع هذا الطلب تلقائياً (سياسة same-origin) إلا إذا سمحت حاوية S3 بذلك عبر إعدادات CORS.
- تحدد قواعد CORS النطاقات المسموح لها (AllowedOrigin) والطرق المسموحة (AllowedMethod: GET, PUT, POST) والرؤوس المسموحة (AllowedHeader).
عندما يضغط الطالب على زر "تشغيل الفيديو"، يطلب الموقع الفيديو من حاوية S3 مختلفة مخصصة للوسائط.
بدون CORS، يمنع المتصفح الطلب وتظهر رسالة خطأ. مع تفعيل CORS على حاوية الوسائط، يعمل الفيديو بسلاسة.
2️⃣ Data Consistency Model — نموذج تناسق البيانات في S3
Amazon S3 يوفر read-after-write consistency (تناسق القراءة بعد الكتابة) لجميع طلبات PUT وDELETE للكائنات الجديدة، مما يعني أنك بمجرد رفع كائن جديد، يمكنك قراءته فوراً دون تأخير.
- تناسق قوي (Strong consistency): لطلبات إنشاء كائنات جديدة (PUT) وحذف الكائنات — متوفر في جميع مناطق AWS بدون أي تكلفة إضافية.
- تناسق نهائي (Eventual consistency): لتعديلات تكوين الحاويات (bucket configuration) مثل تغيير سياسة الحاوية أو تفعيل التسجيل — قد يستغرق بضع ثوانٍ للانتشار.
- لا حاجة لإعادة المحاولة: التطبيق يقرأ الكائن مباشرة بعد كتابته دون الحاجة لمنطق إعادة المحاولة (retry logic).
بفضل read-after-write consistency في S3، يظهر الرابط مباشرة بعد الرفع دون ظهور صورة مكسورة.
هذا يلغي الحاجة لكتابة كود معقد للتحقق من جاهزية الصورة.
- CORS ضرورية للمواقع الثابتة على S3 التي تحتاج موارد من نطاقات أخرى.
- S3 يوفر تناسقاً قوياً للقراءة بعد الكتابة لجميع الكائنات الجديدة.
- تعديلات تكوين الحاويات تخضع للتناسق النهائي وقد تستغرق بضع ثوانٍ.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| CORS | مشاركة الموارد عبر الأصول | آلية تسمح للمتصفح بطلب موارد من نطاق مختلف عن النطاق الأصلي. |
| Read-after-write consistency | تناسق القراءة بعد الكتابة | ضمان قراءة الكائن مباشرة بعد كتابته دون تأخير. |
| Same-origin policy | سياسة النطاق الموحد | قاعدة أمان في المتصفح تمنع الصفحات من الوصول لموارد نطاقات أخرى. |
| Strong consistency | التناسق القوي | جميع العملاء يرون أحدث نسخة من البيانات فوراً بعد التحديث. |
| Eventual consistency | التناسق النهائي | تنتشر التحديثات تدريجياً وقد يرى بعض العملاء بيانات قديمة مؤقتاً. |
1️⃣ Security — ركيزة الأمان (Security)
تطبيق مبدأ defense in depth (الدفاع متعدد الطبقات) على تخزين Amazon S3 من خلال تشفير البيانات وتقييد الوصول وتفعيل التسجيل والمراقبة.
- تفعيل التشفير التلقائي (default encryption) على الحاوية باستخدام SSE-S3 أو SSE-KMS.
- استخدام Bucket Policies لتقييد الوصول إلى الحاوية ومنع الوصول العام غير المقصود.
- تفعيل Block Public Access على مستوى الحاوية والحساب لمنع أي وصول عام.
- استخدام S3 Access Points لإنشاء نقاط وصول مخصصة لكل تطبيق بسياسات مستقلة.
- تفعيل S3 Object Lock لحماية البيانات من الحذف أو التعديل (نموذج WORM).
تفعّل التشفير التلقائي SSE-KMS مع مفتاح يدار عبر AWS KMS، وتستخدم Bucket Policy تسمح فقط لتطبيق معين بالقراءة، وتفعّل Object Lock في وضع Compliance لمنع حذف السجلات لمدة 7 سنوات.
النتيجة: نظام تخزين يلبي متطلبات الامتثال المالي الصارمة.
2️⃣ Reliability — ركيزة الموثوقية (Reliability)
Amazon S3 يصمم ليوفر متانة 99.999999999% (11 nine's) للكائنات عبر النسخ التلقائي داخل المنطقة، ويمكن تعزيز الموثوقية عبر النسخ المتبادل بين المناطق.
- تفعيل S3 Versioning للحماية من الحذف غير المقصود والكتابة فوق الكائنات.
- استخدام S3 Cross-Region Replication (CRR) لنسخ البيانات إلى منطقة أخرى للتعافي من الكوارث.
- استخدام S3 Same-Region Replication (SRR) لنسخ البيانات بين حسابات AWS مختلفة للعزل.
- تفعيل S3 Replication Time Control (RTC) لضمان نسخ 99.99% من الكائنات خلال 15 دقيقة.
- اختبار خطة استعادة البيانات (disaster recovery) دورياً.
عند تعطل المنطقة الأمريكية لاي سبب، يتحول التطبيق تلقائياً لقراءة الصور من المنطقة الأوروبية عبر Amazon Route 53، فلا ينقطع عرض المنتجات عن المستخدمين.
3️⃣ Performance Efficiency — ركيزة كفاءة الأداء (Performance Efficiency)
اختيار فئة التخزين المناسبة واستخدام استراتيجيات تحسين الوصول مثل S3 Transfer Acceleration وmultipart upload يضمنان أفضل أداء لتطبيقاتك.
- اختيار فئة التخزين المناسبة حسب نمط الوصول: S3 Standard للبيانات النشطة، Intelligent-Tiering للبيانات غير المتوقعة، Glacier للأرشفة.
- استخدام S3 Transfer Acceleration لتسريع رفع الملفات الكبيرة عبر شبكة AWS Edge Locations.
- استخدام multipart upload للملفات الأكبر من 100 ميجابايت لتحسين سرعة الرفع والمرونة.
- توزيع الطلبات على بادئات مفاتيح متعددة (key prefixes) لزيادة الإنتاجية التلقائية.
باستخدام S3 Transfer Acceleration وmultipart upload، ينخفض وقت الرفع من 4 ساعات إلى 45 دقيقة، مما يسرع سير العمل بين فريق التصوير وفريق المونتاج.
4️⃣ Cost Optimization — ركيزة تحسين التكلفة (Cost Optimization)
استخدام سياسات S3 Lifecycle لنقل البيانات تلقائياً بين فئات التخزين حسب عمرها، مما يقلل التكلفة مع الحفاظ على المتانة.
- تكوين سياسات دورة الحياة (Lifecycle Policies) لنقل الكائنات تلقائياً إلى فئات تخزين أقل تكلفة.
- استخدام S3 Intelligent-Tiering للبيانات ذات أنماط الوصول المتغيرة — يوفر تكلفة تلقائياً دون تأثير على الأداء.
- تفعيل S3 Analytics لتحليل أنماط الوصول واقتراح سياسات دورة حياة مناسبة.
- استخدام S3 Storage Lens للحصول على رؤية شاملة لاستخدام التخزين وتحديد فرص التوفير.
- حذف الإصدارات القديمة والكائنات المحذوفة غير المكتملة تلقائياً.
تُعدّ S3 Lifecycle Policy تنقل السجلات من S3 Standard → S3 Standard-IA بعد 30 يوماً → S3 Glacier Deep Archive بعد 90 يوماً.
النتيجة: توفير 75% من تكلفة التخزين دون فقدان أي بيانات.
- الأمان: تشفير + Bucket Policies + Block Public Access + Access Points.
- الموثوقية: Versioning + Cross-Region Replication + 11 nine's متانة.
- كفاءة الأداء: Transfer Acceleration + multipart upload + توزيع key prefixes.
- تحسين التكلفة: Lifecycle Policies + Intelligent-Tiering + Storage Lens.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Defense in depth | الدفاع متعدد الطبقات | استراتيجية أمنية تستخدم طبقات متعددة من الحماية المتداخلة. |
| WORM | الكتابة مرة والقراءة المتعددة | نموذج يمنع تعديل أو حذف البيانات بعد كتابتها. |
| 11 nine's durability | متانة 11 تسعة | نسبة متانة S3 التي تعني احتمال فقدان كائن واحد من كل 100 مليار سنوياً. |
| Transfer Acceleration | تسريع النقل | خدمة تستخدم Edge Locations لتسريع رفع الملفات إلى S3. |
| Storage Lens | عدسة التخزين | أداة تحليلات توفر رؤية شاملة لاستخدام S3 عبر المؤسسة. |
1️⃣ Default security — إعدادات الأمان الافتراضية لـ S3 (Default security)
تشمل حظر الوصول العام والتشفير التلقائي وتسجيل كل العمليات وإدارة الهوية والوصول.
- S3 Block Public Access: ميزة حظر الوصول العام معطلة افتراضياً على مستوى الحساب ويجب تفعيلها يدوياً.
- التشفير التلقائي: S3 تشفر كل الكائنات الجديدة تلقائياً بـ SSE-S3.
- تسجيل العمليات: كل الوصول إلى S3 يُسجل تلقائياً في AWS CloudTrail.
- إدارة الهوية: التحكم فيمن يصل إلى الحاويات عبر AWS IAM.
- تتبع التغييرات: AWS Config تتبع التغييرات في تكوينات الحاويات.
2️⃣ Encrypting objects — تشفير الكائنات في S3 (Encrypting objects)
من التشفير التلقائي بمفاتيح S3 إلى التشفير من جانب العميل، كل طريقة توفر مستوى مختلفاً من التحكم.
- SSE-S3: مفاتيح يديرها S3 نفسه. مشمول في السعر وأبسط الخيارات.
- SSE-KMS: مفاتيح يديرها AWS KMS. توفر تحكماً ومراقبة إضافيين وسجلاً لكل استخدام.
- SSE-C: مفاتيح تقدمها أنت. S3 تتولى التشفير وفك التشفير.
- تشفير من جانب العميل (Client-side encryption): تشفر البيانات قبل رفعها إلى S3.
3️⃣ Protection tools — أدوات حماية حاويات وكائنات S3 (Protection tools)
من حظر الوصول العام إلى اكتشاف البيانات الحساسة، تشكل طبقات حماية متكاملة.
- S3 Block Public Access: يمنع الوصول العام للحاويات بأربع إعدادات مختلفة.
- سياسات IAM وسياسات الحاوية (Bucket Policies): تتحكم بمن يمكنه الوصول على مستوى المستخدم أو الحاوية.
- AWS Trusted Advisor: يفحص الحاويات العامة ويحذّر منها.
- S3 Access Analyzer: يحلل سياسات الوصول ويكشف الوصول غير المقصود.
- AWS Macie: يكتشف البيانات الحساسة في S3 باستخدام تعلم الآلة.
4️⃣ Considerations when choosing a Region — اعتبارات اختيار المنطقة (Considerations when choosing a Region)
زمن الاستجابة، التكلفة، الامتثال التنظيمي، توفر الخدمات، والتعافي من الكوارث.
- زمن الاستجابة (Latency): اختر منطقة قريبة من المستخدمين لتقليل زمن الوصول.
- التكلفة (Cost): الأسعار تختلف بين المناطق — فرانكفورت أغلى من أوهايو.
- الامتثال التنظيمي (Regulatory compliance): بعض القوانين مثل GDPR تفرض تخزين البيانات داخل حدود جغرافية محددة.
- توفر الخدمات (Service availability): ليست كل خدمات AWS متاحة في كل المناطق.
- التعافي من الكوارث (Disaster recovery): للنسخ الاحتياطي، اختر منطقة بعيدة عن المنطقة الرئيسية.
5️⃣ S3 costs — تكاليف S3 (S3 costs)
سعر التخزين، سعر الطلبات، سعر نقل البيانات، سعر التكرار، ورسوم الإدارة والتحليلات.
- سعر التخزين (Storage pricing): يعتمد على فئة التخزين وحجم البيانات بالجيجابايت شهرياً.
- سعر الطلبات (Request pricing): رسوم على PUT/COPY/POST/LIST (أغلى) وGET (أرخص).
- سعر نقل البيانات (Data transfer): النقل داخل نفس المنطقة مجاني. النقل بين المناطق أو خارجها مدفوع.
- سعر التكرار (Replication): رسوم على التكرار عبر المناطق.
- استخدم AWS Pricing Calculator لتقدير التكاليف قبل البناء.
- إعدادات أمان افتراضية تشمل التشفير التلقائي وتسجيل العمليات وIAM.
- أربع طرق للتشفير: SSE-S3 وSSE-KMS وSSE-C وتشفير من جانب العميل.
- أدوات الحماية: Block Public Access وTrusted Advisor وAccess Analyzer وMacie.
- اختيار المنطقة يعتمد على زمن الاستجابة والتكلفة والامتثال وتوفر الخدمات.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| S3 Block Public Access | حظر الوصول العام S3 | إعدادات تمنع الوصول العام للحاويات والكائنات في S3. |
| SSE-KMS | تشفير من جانب الخادم بـ KMS | تشفير S3 بمفاتيح من AWS KMS للتحكم والمراقبة الإضافية. |
| AWS Macie | أداة Macie | خدمة تكتشف البيانات الحساسة في S3 باستخدام تعلم الآلة. |
| S3 Inventory | جرد S3 | تقرير دوري بحالة الكائنات في حاوية S3. |
| GDPR | اللائحة العامة لحماية البيانات | قانون أوروبي لحماية البيانات الشخصية يفرض قيوداً على التخزين. |
🚀 الخاتمة
في هذه الوحدة، تعلمنا أن Amazon S3 هي خدمة التخزين الكائني الرائدة التي يمكنها تخزين كميات غير محدودة من البيانات بمتانة 11 تسعة. استكشفنا أنواع التخزين الثلاثة: الكتلي والملفاتي والكائني. رأينا حالات الاستخدام من الوسائط والمواقع الثابتة إلى التحليلات والنسخ الاحتياطي. تعرفنا على طرق نقل البيانات من Console إلى Multipart Upload وTransfer Acceleration وTransfer Family. تعمقنا في فئات التخزين من S3 Standard إلى S3 Glacier Deep Archive، وتعلمنا كيف ننقل البيانات بينها باستخدام سياسات دورة الحياة. تعلمنا كيف نحمي البيانات عبر التشفير (SSE-S3 وSSE-KMS) وحظر الوصول العام وAWS Macie. وأخيراً، طبقنا مبادئ Well-Architected على طبقة التخزين وتعلمنا كيف نختار المنطقة المناسبة. S3 هي الأساس الذي تبنى عليه معظم بنى AWS الحديثة.
