🎯 Adding a Database Layer
تركز هذه الوحدة على أنواع قواعد البيانات والخدمات التي تقدمها Amazon Web Services (AWS). ستتعلم فيها كيفية اختيار قاعدة البيانات المناسبة لحملك التشغيلي وفهم الفروقات بين قواعد البيانات العلائقية وغير العلائقية. كما ستكتشف الخدمات المُدارة مثل Amazon RDS وAurora وDynamoDB وخدمات قواعد البيانات المخصصة للأغراض المتخصصة، بالإضافة إلى كيفية ترحيل البيانات باستخدام AWS DMS.
1️⃣ Database Considerations — اعتبارات اختيار قاعدة البيانات
قبل اختيار قاعدة بيانات مناسبة، يجب على معماري السحابة تقييم عدة عوامل حاسمة تشمل قابلية التوسع ومتطلبات التخزين وخصائص البيانات والمتانة والتكلفة. تساعد هذه الاعتبارات في ضمان اختيار الحل الأمثل الذي يلبي احتياجات العمل والتطبيق دون إهدار الموارد.
- قابلية التوسع (Scalability): هل تستطيع قاعدة البيانات التعامل مع حجم الإنتاجية المطلوب عند الإطلاق وهل يمكن توسيعها لاحقاً دون توقف؟
- متطلبات التخزين (Storage Requirements): هل تحتاج إلى تخزين غيغابايت أم تيرابايت أم بيتابايت من البيانات؟ كل بنية قاعدة تدعم سعة قصوى مختلفة.
- خصائص البيانات (Data Characteristics): ما هو نموذج البيانات (علائقي، منظم، شبه منظم، زماني)؟ كيف تحتاج للوصول إلى البيانات؟ هل تحتاج زمن استجابة منخفض؟
- المتانة والتوفر (Durability): ما هو مستوى المتانة والتوفر المطلوب؟ هل هناك التزامات تنظيمية أو قوانين خصوصية بيانات إقليمية يجب الامتثال لها؟
تحتاج قاعدة بيانات تتعامل مع ملايين المعاملات يومياً وتتوسع أفقياً دون توقف.
بعد دراسة الاعتبارات تختار DynamoDB لقدرته على التوسع التلقائي وزمن الاستجابة بالميلي ثانية.
هذا الاختيار يوفر تكاليف الترخيص والصيانة مقارنة بقاعدة علائقية تقليدية.
2️⃣ Relational and Non-Relational Databases — قواعد البيانات العلائقية وغير العلائقية
تخزن قواعد البيانات العلائقية البيانات في جداول ذات صفوف وأعمدة وتستخدم SQL للاستعلام عنها، وتتبع قواعد صارمة في تعريف المخطط (schema) وتدعم معاملات ACID التي تضامن الذرية والاتساق والعزل والمتانة. أما قواعد البيانات غير العلائقية فتُعرف أيضاً بـ NoSQL وهي مصممة خصيصاً لنماذج بيانات متنوعة مثل المفاتيح-القيمة والمستندات والرسوم البيانية والتخزين المؤقت، مع مخططات مرنة تسمح ببنية مختلفة لكل كائن.
- البنية: العلائقية — شكل جدولي من أعمدة وصفوف. غير العلائقية — نماذج بنية متنوعة (أزواج مفاتيح-قيمة، مستندات، رسوم بيانية).
- المخطط: العلائقية — قواعد صارمة للمخطط. غير العلائقية — مخططات مرنة.
- الفوائد: العلائقية — سهولة الاستخدام وسلامة البيانات وتقليل التخزين ولغة موحدة SQL. غير العلائقية — مرونة وقابلية توسع وأداء عالٍ.
- التحسين: العلائقية — محسّنة للبيانات المنظمة في جداول وتدعم الاستعلامات المعقدة عبر الانضمامات. غير العلائقية — محسّنة للوصول السريع للبيانات المنظمة وشبه المنظمة وغير المنظمة.
يستخدم قاعدة علائقية مثل Amazon RDS لضمان سلامة البيانات عبر خصائص ACID.
في المقابل تطبيق وسائط اجتماعية يحتاج لتخزين تعليقات المستخدمين وصورهم يستخدم قاعدة DynamoDB غير علائقية للمرونة والتوسع الهائل.
3️⃣ Amazon Database Options — خيارات قواعد بيانات AWS
تقدم AWS مجموعة شاملة من خيارات قواعد البيانات تشمل الخدمات العلائقية المُدارة عبر Amazon RDS الذي يدعم سبعة محركات قواعد بيانات منها Amazon Aurora، والخدمات غير العلائقية مثل Amazon DynamoDB للمفاتيح-القيمة وAmazon Neptune لقواعد الرسوم البيانية وAmazon ElastiCache للتخزين المؤقت.
- قواعد البيانات العلائقية: Amazon RDS مع خيارات Aurora المتوافقة مع MySQL وPostgreSQL وMariaDB وOracle وSQL Server.
- قواعد البيانات غير العلائقية: DynamoDB (مفاتيح-قيمة/مستندات)، Neptune (رسوم بيانية)، ElastiCache (تخزين مؤقت في الذاكرة).
تختار Amazon RDS for PostgreSQL لأنه مدعوم بالكامل ويدير عمليات الصيانة والنسخ الاحتياطي تلقائياً.
في المقابل تطبيق ألعاب يحتاج تخزين جلسات اللاعبين بزمن استجابة منخفض يختار DynamoDB لتوسعه الأفقي غير المحدود.
4️⃣ Less Responsibility with Managed AWS Database Services — مسؤولية أقل مع الخدمات المُدارة
كلما انتقلت من استضافة قاعدة البيانات محلياً إلى استخدام خدمة مُدارة على AWS تقل مسؤولياتك تدريجياً. عند الاستضافة المحلية أنت مسؤول عن كل شيء من الأجهزة إلى التبريد والطاقة والربط الشبكي. عند استخدام Amazon EC2 أنت تدير نظام التشغيل والتطبيق. أما مع الخدمات المُدارة مثل Amazon RDS فأنت مسؤول فقط عن تحسين استعلامات التطبيق.
بعد الترحيل إلى Amazon RDS أصبح AWS يتولى التصحيح والنسخ الاحتياطي والتوفر العالي تلقائياً.
الفريق الآن يركز على تحسين أداء الاستعلامات بدلاً من إدارة الخوادم.
5️⃣ Database Capacity Planning — تخطيط سعة قاعدة البيانات
هي عملية النظر في السعة الحالية والمستقبلية عند اختيار وتحديث موارد قاعدة البيانات، بهدف ضبط وتحسين الموارد بناءً على أنماط الاستخدام والتوقعات. تتضمن العملية تحليل السعة الحالية والتنبؤ بالمتطلبات المستقبلية وتحديد ما إذا كان التوسع الرأسي أو الأفقي أو مزيج منهما هو المناسب.
- التوسع الرأسي (Vertical Scaling): توسيع موارد الخادم الحالي مثل الذاكرة والمعالجة والتخزين. عملية معقدة وتستغرق وقتاً وقد تتطلب توقف قاعدة البيانات.
- التوسع الأفقي (Horizontal Scaling): زيادة عدد الخوادم التي تعمل عليها قاعدة البيانات مما يقلل الحمل على كل خادم. يتم عادة دون توقف.
تبدأ بنوع مثيل صغير من RDS ثم تراقب الاستخدام عبر CloudWatch.
عندما يقترب استخدام وحدة المعالجة المركزية من 80% تختار التوسع الرأسي إلى مثيل أكبر بنقرة زر واحدة.
هذا النهج المرن يوفر التكاليف في البداية ويتيح التوسع عند الحاجة.
- قبل اختيار قاعدة البيانات يجب تقييم قابلية التوسع ومتطلبات التخزين وخصائص البيانات والمتانة والتكلفة.
- قواعد البيانات العلائقية مناسبة للبيانات المنظمة ذات المخطط الصارم وتدعم ACID.
- قواعد البيانات غير العلائقية توفر مرونة في المخطط وقابلية توسع هائلة للبيانات شبه المنظمة وغير المنظمة.
- تقدم AWS مجموعة من قواعد البيانات العلائقية وغير العلائقية المُدارة لتلبية احتياجات مختلفة.
- الخدمات المُدارة تقلل مسؤوليات فريق IT بشكل كبير مق مقارنة بالاستضافة المحلية أو على EC2.
- التوسع الرأسي يزيد موارد الخادم الحالي بينما التوسع الأفقي يزيد عدد الخوادم.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Relational Database | قاعدة بيانات علائقية | نظام تخزين بيانات يعتمد على الجداول والعلاقات باستخدام SQL. |
| Non-Relational Database | قاعدة بيانات غير علائقية | نظام تخزين بيانات بمخططات مرنة مثل المفاتيح-القيمة والمستندات. |
| ACID | خصائص المعاملات | مجموعة خصائص تضامن سلامة المعاملات: الذرية والاتساق والعزل والمتانة. |
| Vertical Scaling | التوسع الرأسي | زيادة موارد الخادم الحالي (CPU/ذاكرة/تخزين) لرفع السعة. |
| Horizontal Scaling | التوسع الأفقي | إضافة خوادم جديدة لتوزيع الحمل وتحسين الأداء دون توقف. |
| Managed Service | خدمة مُدارة | خدمة سحابية تتولى مهام الإدارة والصيانة تلقائياً نيابة عنك. |
1️⃣ Amazon Relational Database Service — خدمة قواعد البيانات العلائقية من AWS
هي خدمة مُدارة بالكامل لقواعد البيانات العلائقية تتيح لك إعداد وتشغيل وتوسيع قواعد البيانات في السحابة بسهولة. تتولى Amazon RDS أتمتة المهام الروتينية مثل توفير الموارد والتحديثات والنسخ الاحتياطي والتعافي واكتشاف الأعطال وإصلاحها، مما يلغي الحاجة لإدارة البنية التحتية أو صيانة البرمجيات.
- Amazon Aurora المتوافق مع MySQL.
- Amazon Aurora المتوافق مع PostgreSQL.
- RDS for MySQL.
- RDS for MariaDB.
- RDS for PostgreSQL.
- RDS for Oracle.
- RDS for SQL Server.
بدلاً من تثبيت MySQL يدوياً على خادم وإدارة التصحيح والنسخ الاحتياطي تختار Amazon RDS for MySQL.
في دقائق تنشئ قاعدة بيانات جاهزة للإنتاج مع نسخ احتياطي تلقائي وتوسع مرن.
2️⃣ Benefits of Amazon RDS — فوائد Amazon RDS
يقدم Amazon RDS أربعة فوائد رئيسية: عبء إداري أقل حيث لا حاجة لتوفير البنية التحتية أو تثبيت البرمجيات، قابلية توسع عالية عبر تغيير حجم الحوسبة والذاكرة بنقرات قليلة، توفر ومتانة عالية من خلال النشر عبر Multi-AZ والنسخ المتماثلة للقراءة، وأمان وامتثال عبر عزل قاعدة البيانات في شبكة خاصة VPC مع تشفير البيانات.
تفعّل خيار Multi-AZ في Amazon RDS لينسخ البيانات تزامناً إلى منطقة توفر ثانية.
في حال فشل الأساسي يتحول النظام تلقائياً إلى النسخة الاحتياطية دون تدخل يدوي.
هذا يحقق متطلبات الامتثال ويقلل وقت التوقف إلى الصفر تقريباً.
3️⃣ Amazon RDS Database Architecture — بنية Amazon RDS
توفر Amazon RDS بيئات قواعد بيانات معزولة (DB instances) يمكن أن تحتوي على قواعد بيانات متعددة من إنشاء المستخدم. تستخدم Amazon EBS وحدات تخزين لقاعدة البيانات وسجلات المعاملات، ويمكن توسيع سعة التخزين المخصصة. كل مثيل قاعدة هو بيئة EC2 متخصصة تديرها AWS.
يختار محرك PostgreSQL ويربطه بتطبيقه عبر نقطة النهاية (endpoint).
خلال أسابيع يلاحظ نمو البيانات فيقرر زيادة التخزين إلى 200 غيغابايت عبر بضع نقرات في لوحة التحكم دون توقف.
4️⃣ Aurora — قاعدة Aurora السحابية
Aurora هو نظام إدارة قواعد بيانات علائقية (RDBMS) مبني خصيصاً للسحابة ومتوافق بالكامل مع MySQL وPostgreSQL، وتديره Amazon RDS. يتميز Aurora بسرعة تصل إلى 5 أضعاف MySQL القياسي و3 أضعاف PostgreSQL القياسي مع أمان وتوفر وموثوقية قواعد البيانات التجارية بعُشر التكلفة فقط.
- نظام تخزين موزع ومتحمل للأخطاء يتوسع تلقائياً حتى 64 تيرابايت لكل مثيل قاعدة.
- يدعم حتى 15 نسخة متماثلة للقراءة (read replicas) بزمن استجابة منخفض.
- نسخ احتياطي مستمر إلى Amazon S3 واستعادة إلى أي نقطة زمنية.
- تكرار البيانات عبر 3 مناطق توفر (Availability Zones).
تختار Amazon Aurora لقدرته على التعامل مع ملايين الاستعلامات في الثانية.
باستخدام 15 نسخة متماثلة للقراءة توزع أحمال القراءة عبر مناطق توفر مختلفة.
توفر 90% من تكلفة قواعد البيانات التجارية التقليدية وتحصل على أداء مضاعف.
5️⃣ Aurora Database Clusters — مجموعات Aurora
تتكون مجموعة Aurora من مثيل قاعدة أساسي واحد يدعم عمليات القراءة والكتابة وما يصل إلى 15 نسخة Aurora Replica تدعم القراءة فقط. تستخدم المجموعة وحدة تخزين افتراضية (cluster volume) تمتد عبر عدة مناطق توفر، كل منها يحتوي على نسخة من بيانات المجموعة، مما يضمن التوفر العالي والتبديل التلقائي عند فشل المثيل الأساسي.
ينشر مثيل Aurora أساسي للكتابة و5 نسخ متماثلة في مناطق توفر مختلفة للقراءة.
عند فشل المثيل الأساسي تختار Aurora تلقائياً نسخة متماثلة لتصبح الأساسية الجديدة دون فقدان البيانات.
6️⃣ Aurora Serverless — Aurora بدون خوادم
هي تهيئة توسع تلقائي عند الطلب لـ Aurora حيث تبدأ قاعدة البيانات وتتوقف وتوسع السعة صعوداً وهبوطاً تلقائياً بناءً على احتياجات التطبيق، دون الحاجة لإدارة أي مثيلات قاعدة.
- أحمال العمل المتغيرة (Variable Workloads): أنشطة غير متوقعة ومفاجئة — التوسع التلقائي لمواكبة الذروة والعودة عند انتهاء النشاط.
- التطبيقات الجديدة: غير متأكد من حجم المثيل المناسب — ضبط سعة دنيا وعليا والسماح لقاعدة البيانات بالتوسع حسب الحاجة.
- التطوير والاختبار: إنشاء مثيلات بسعة دنيا منخفضة وحد أقصى عالٍ دون قلق من الرسوم أثناء عدم الاستخدام.
- تخطيط السعة: تشغيل الحمل ومراقبة التوسع الفعلي لتحديد السعة المثلى دون عناء إداري.
تستخدم Aurora Serverless v2 مع سعة دنيا 2 ACU وسعة قصوى 32 ACU.
خلال حملة تسويقية يقفز الطلب 10 أضعاف فتتوسع قاعدة البيانات تلقائياً.
بعد انتهاء الحملة تعود السعة إلى المستوى الطبيعي دون أي تدخل يدوي أو دفع زائد.
7️⃣ Amazon RDS Use Case: Banking Transactions — حالة استخدام: المعاملات المصرفية
تعد Amazon RDS مثالية لمعالجة المعاملات عبر الإنترنت (Online Transaction Processing - OLTP) حيث تخزّن وتحدّث البيانات المعاملاتية بشكل موثوق وفعال بكميات كبيرة. على سبيل المثال عند قيام عميل بإيداع أو سحب مبلغ، يصل التطبيق المصرفي إلى قاعدة Aurora المستضافة على مثيلات EC2 لتسجيل المعاملة بمعرف فريد وتاريخ ووصف ونوع ومبلغ.
يقوم تطبيق الهاتف المصرفي بإرسال طلب إلى قاعدة Aurora.
تُسجل المعاملة بمعرف فريد في جدول المعاملات مع خصم من حساب العميل وإضافة للمستفيد.
تضمن خصائص ACID عدم فقدان أي معاملة حتى في حال انقطاع الاتصال.
8️⃣ Amazon RDS EC2 Instance Types and Sizing — أنواع مثيلات RDS وتحجيمها
توفر Amazon RDS مجموعة من أنواع المثيلات المحسّنة لتناسب حالات استخدام مختلفة، بما في ذلك الأغراض العامة (General Purpose) لأحمال العمل المعتمدة على المعالجة، والمحسّنة للذاكرة (Memory-Optimized) لأحمال العمل كثيفة الاستعلامات أو ذات الاتصالات العالية. عند الترقية حدد أولاً ما إذا كان الحمل كثيف الاستخدام للمعالجة أم الذاكرة.
| نوع المثيل | الذاكرة (GiB) | vCPU | الاستخدام المثالي |
|---|---|---|---|
| db.m6g.large | 8 | 2 | أغراض عامة - معالجة معتدلة |
| db.r6g.large | 16 | 2 | محسّن للذاكرة - استعلامات كثيفة |
| db.m6g.xlarge | 16 | 4 | ترقية CPU من m6g.large |
| db.r6g.xlarge | 32 | 4 | ترقية ذاكرة من r6g.large |
يفحص المسؤول المقاييس ويجد أن استخدام الذاكرة يقترب من 90% بينما استخدام CPU لا يتجاوز 40%.
يختار ترقية من db.m6g.large (8 غيغابايت ذاكرة) إلى db.r6g.large (16 غيغابايت ذاكرة).
هذه الترقية المستهدفة تحل مشكلة الأداء دون إنفاق إضافي على موارد غير مطلوبة.
9️⃣ Amazon RDS Security Best Practices — أفضل ممارسات أمان RDS
الأمان مسؤولية مشتركة بينك وبين AWS. AWS مسؤولة عن أمان السحابة (البنية التحتية) وأنت مسؤول عن الأمان في السحابة. تتضمن أفضل الممارسات: تشغيل المثيل في VPC خاص لعزل الشبكة، استخدام سياسات IAM لإدارة الصلاحيات، استخدام Security Groups للتحكم بعناوين IP المتصلة، استخدام تشفير SSL/TLS للاتصالات، وتشفير البيانات والمثيلات والنسخ الاحتياطي باستخدام AWS KMS.
تنشر قاعدة RDS في شبكة VPC خاصة وتفعّل تشفير البيانات في الراحة باستخدام AWS KMS.
تستخدم Security Groups للسماح فقط لخوادم التطبيق المحددة بالاتصال بقاعدة البيانات.
تُفعّل CloudTrail لتدقيق جميع عمليات الوصول إلى قاعدة البيانات.
- Amazon RDS خدمة مُدارة تنشر سبعة محركات قواعد بيانات علائقية وتتولى مهام الصيانة والنسخ الاحتياطي والتحديثات.
- Aurora محرك RDBMS سحابي أسرع 5 مرات من MySQL بعُشر التكلفة.
- Aurora Serverless يتوسع تلقائياً دون إدارة مثيلات — مثالي للأحمال المتغيرة والتطبيقات الجديدة.
- مجموعة Aurora تتكون من مثيل أساسي للكتابة وما يصل إلى 15 نسخة متماثلة للقراءة عبر مناطق توفر متعددة.
- اختر نوع المثيل بناءً على ما إذا كان حملك يحتاج معالجة (general purpose) أم ذاكرة (memory-optimized).
- أمان RDS يشمل العزل في VPC وسياسات IAM وSecurity Groups والتشفير باستخدام KMS.
- RDS مثالي لمعالجة المعاملات عبر الإنترنت (OLTP) مثل التطبيقات المصرفية والتجارة الإلكترونية.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Amazon RDS | خدمة قواعد البيانات العلائقية | خدمة مُدارة لنشر وتشغيل وتوسيع قواعد البيانات العلائقية في السحابة. |
| Aurora | أورورا | محرك قواعد علائقية سحابي متوافق مع MySQL وPostgreSQL بأداء عالٍ وتكلفة منخفضة. |
| Aurora Serverless | أورورا بدون خوادم | تهيئة توسع تلقائي لقاعدة Aurora تتكيف مع احتياجات التطبيق دون إدارة مثيلات. |
| Multi-AZ | نشر عبر مناطق توفر متعددة | خيار نشر ينسخ قاعدة البيانات تزامناً عبر مناطق توفر للتوفر العالي. |
| Read Replica | نسخة متماثلة للقراءة | نسخة للقراءة فقط من قاعدة البيانات لتوزيع أحمال القراءة وتحسين الأداء. |
| OLTP | معالجة المعاملات عبر الإنترنت | نظام يخزّن ويحدّث البيانات المعاملاتية بشكل موثوق بكميات كبيرة. |
| DB Instance | مثيل قاعدة بيانات | بيئة قاعدة بيانات معزولة يمكن أن تحتوي على قواعد بيانات متعددة. |
1️⃣ Amazon RDS Proxy — وكيل قاعدة البيانات
هو وكيل قاعدة بيانات مُدار بالكامل وعالي التوفر لـ Amazon RDS، يتوسط بين التطبيق وقاعدة البيانات لتحسين قابلية التوسع والمرونة والأمان. يعمل مع Aurora المتوافق مع MySQL وPostgreSQL ومع RDS for MariaDB وMySQL وPostgreSQL وSQL Server دون الحاجة لتوفير أي بنية تحتية إضافية.
- قابلية توسع أكبر: تجميع ومشاركة اتصالات قاعدة البيانات لتحسين توسع التطبيق.
- مرونة أكبر: تقليل زمن التبديل عند فشل قواعد Multi-AZ بنسبة تصل إلى 66%.
- أمان أكبر: فرض مصادقة IAM وتخزين بيانات الاعتماد في AWS Secrets Manager.
بدون RDS Proxy كل دالة تفتح اتصالاً منفصلاً مما يستنزف ذاكرة قاعدة البيانات.
باستخدام الوكيل يشارك آلاف اتصالات التطبيق في عدد قليل من الاتصالات الطويلة بقاعدة البيانات.
هذا يحسن الأداء بشكل كبير ويمنع أخطاء "تجاوز عدد الاتصالات المسموح".
2️⃣ Connection Pooling: Improved Scalability — تجميع الاتصالات لتحسين التوسع
يجلس RDS Proxy بين التطبيق وقاعدة البيانات ويكتشف الفجوات في العمليات حيث لا تحمل جميع الاتصالات معاملة نشطة، فيعيد استخدام الاتصال لخدمة اتصالات تطبيق أخرى. بهذه الآلية تتلقى قاعدة البيانات اتصالات أقل بكثير مما يسمح لها بالعمل بكفاءة دون استنزاف موارد الذاكرة والحوسبة.
- عند مواجهة قاعدة بيانات أخطاء "عدد اتصالات كبير جداً".
- عندما يفتح التطبيق ويغلق أعداداً كبيرة من اتصالات قاعدة البيانات دون آلية تجميع مدمجة.
- عند إبقاء عدد كبير من الاتصالات مفتوحة لفترات طويلة كما في تطبيقات SaaS والتجارة الإلكترونية.
آلاف المستخدمين يفتحون التطبيق في وقت واحد كل منهم يفتح اتصالاً بقاعدة البيانات.
بدون RDS Proxy تنهار قاعدة البيانات بسبب استنزاف الذاكرة من الاتصالات المفتوحة.
باستخدام الوكيل يتم تجميع الاتصالات وتستمر المنصة في العمل بسلاسة.
3️⃣ Seamless and Fast Failover: Improved Availability — تبديل سريع وسلس لتحسين التوفر
عند حدوث فشل يكتشف RDS Proxy الحدث فوراً، ويحافظ على الاتصالات غير النشطة ويقبل اتصالات جديدة، ويصطف المعاملات الواردة أثناء التبديل. بمجرد توفر المثيل الجديد يمرر المعاملات المعلقة إليه. هذا يقلل زمن التبديل بنسبة تصل إلى 66% ويجعل الفشل شفافاً للتطبيق.
يكتشف RDS Proxy الفشل فوراً ويحافظ على اتصالات المستخدمين الحالية.
أي معاملة جديدة تُرسل أثناء التبديل تُصطف في قائمة انتظار.
خلال ثوانٍ يتحول الوكيل إلى المثيل البديل وتستمر التطبيقات في العمل دون أن يلاحظ المستخدمون أي انقطاع.
4️⃣ Streamlined Authentication: Improved Application Security — مصادقة مبسطة لتحسين الأمان
يفرض RDS Proxy مصادقة IAM ويزيل الحاجة لتضمين كلمات المرور في كود التطبيق. يطلب التطبيق رمز مصادقة من IAM، ثم يرسل طلب قاعدة البيانات إلى الوكيل مع الرمز المصدق. يتصل الوكيل بـ Secrets Manager للحصول على بيانات الاعتماد ويمرر الطلب إلى قاعدة البيانات.
بدلاً من تخزين كلمة مرور قاعدة البيانات في متغير بيئة (environment variable) غير آمن.
يستخدم RDS Proxy مع IAM حيث تحصل دالة Lambda على رمز مؤقت من IAM لكل طلب.
هذا يلغي الحاجة لإدارة بيانات الاعتماد ويحسّن الوضع الأمني للتطبيق بشكل كبير.
5️⃣ Backing Up Data in Amazon RDS — النسخ الاحتياطي في RDS
يوفر Amazon RDS خيارين رئيسيين: النسخ الاحتياطي التلقائي (Automated Backups) الذي يأخذ لقطة يومية كاملة ويسجل سجلات المعاملات كل 5 دقائق للاستعادة إلى أي نقطة زمنية، ولقطات قاعدة البيانات (Database Snapshots) التي يبدأها المستخدم يدوياً وتُحتفظ بها حتى يتم حذفها صراحة.
| الميزة | النسخ الاحتياطي التلقائي | لقطات قاعدة البيانات |
|---|---|---|
| حالة الاستخدام | الاستعادة إلى نقطة زمنية محددة | النسخ الاحتياطي في حالة معروفة |
| التكرار | يومياً (سجلات المعاملات كل 5 دقائق) | حسب رغبة المستخدم |
| فترة الاحتفاظ | افتراضي 7 أيام حتى 35 يوماً | حتى حذفها يدوياً |
| المشاركة | لا يمكن المشاركة | يمكن مشاركتها مع حسابات أخرى |
يستخدم ميزة استعادة النقطة الزمنية (point-in-time recovery) من النسخ الاحتياطي التلقائي.
يختار الوقت قبل الحذف بدقائق وتستعيد RDS قاعدة البيانات إلى تلك الحالة بالضبط.
تستغرق العملية دقائق بدلاً من ساعات من استرجاع النسخ الاحتياطي اليدوي.
6️⃣ Amazon RDS Cross-Region Backups — النسخ الاحتياطي عبر المناطق
لزيادة قدرات التعافي من الكوارث يمكنك تهيئة مثيل RDS لنسخ اللقطات وسجلات المعاملات تلقائياً إلى منطقة AWS وجهة من اختيارك. هذا يتيح لك أيضاً إنشاء نسخة متماثلة للقراءة في منطقة مختلفة لتحسين التعافي من الكوارث وتقريب القراءة من المستخدمين وتسهيل الترحيل بين المناطق.
تهيئ نسخ احتياطي عبر المناطق من eu-west-1 إلى us-east-1.
في حال فشل المنطقة الأوروبية بالكامل يمكن استعادة قاعدة البيانات من النسخ الاحتياطي في أمريكا.
هذه الاستراتيجية تحقق هدف وقت الاسترداد (RPO) بدقائق دون تعقيدات إضافية.
- RDS Proxy وكيل قاعدة مدار يقع بين التطبيق وقاعدة البيانات ويحسّن التوسع والمرونة والأمان.
- تجميع الاتصالات يقلل عدد الاتصالات التي تصل إلى قاعدة البيانات ويحسّن كفاءة استخدام الموارد.
- يقلل RDS Proxy زمن التبديل عند فشل قواعد Multi-AZ بنسبة تصل إلى 66%.
- يفرض الوكيل مصادقة IAM ويزيل الحاجة لتخزين كلمات المرور في كود التطبيق.
- يوفر RDS نوعين من النسخ الاحتياطي: التلقائي (استعادة لنقطة زمنية) ويدوي (لقطات).
- النسخ الاحتياطي عبر المناطق يتيح التعافي من الكوارث ونسخ البيانات إلى منطقة AWS أخرى.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| RDS Proxy | وكيل RDS | خدمة وسيطة مدارة بين التطبيق وقاعدة البيانات لتحسين الأداء والأمان. |
| Connection Pooling | تجميع الاتصالات | آلية إعادة استخدام اتصالات قاعدة البيانات لتقليل الضغط على الموارد. |
| Failover | التبديل عند الفشل | عملية تحويل العمليات تلقائياً إلى المثيل البديل عند تعطل الأساسي. |
| Automated Backup | النسخ الاحتياطي التلقائي | نسخ احتياطي يومي مع تسجيل المعاملات كل 5 دقائق للاستعادة لأي نقطة زمنية. |
| Point-in-Time Recovery | استعادة النقطة الزمنية | إمكانية استعادة قاعدة البيانات إلى أي لحظة خلال فترة الاحتفاظ بالنسخ الاحتياطي. |
| Cross-Region Backup | نسخ احتياطي عبر المناطق | نسخ اللقطات وسجلات المعاملات إلى منطقة AWS أخرى للتعافي من الكوارث. |
1️⃣ DynamoDB — قاعدة DynamoDB غير العلائقية
DynamoDB هي قاعدة بيانات NoSQL مُدارة بالكامل وبدون خوادم تدعم نماذج البيانات من نوع المفاتيح-القيمة والمستندات. تتميز بزمن استجابة ثابت في نطاق الميلي ثانية الواحدة وتتوسع تلقائياً لتعديل السعة دون أي إدارة. كما تؤمن البيانات بالتشفير وتنسخها احتياطياً باستمرار للحماية.
- مخطط مرن — كل عنصر يمكن أن يحتوي على سمات مختلفة دون إعادة تعريف الجدول.
- أداء متسق بزمن استجابة بالميلي ثانية الواحدة.
- توسع تلقائي للجداول مع الحفاظ على الأداء دون إدارة.
- تشفير تلقائي لجميع بيانات العملاء في حالة الراحة بشكل افتراضي.
كل مستخدم له سمات مختلفة (الاسم، الصورة، الاهتمامات، الأصدقاء) ولا يوجد مخطط ثابت.
يختار المطورون DynamoDB لمرونته في التعامل مع البيانات غير المنتظمة وتوسعه التلقائي.
زمن الاستجابة لا يتجاوز 10 ميلي ثانية حتى مع مئات الملايين من المستخدمين.
2️⃣ DynamoDB Use Cases — حالات استخدام DynamoDB
يناسب DynamoDB ثلاثة سيناريوهات رئيسية: تطبيقات البرمجيات التي تحتاج اتصالات عالية لملايين المستخدمين وملايين الطلبات في الثانية، تخزين بيانات الوسائط التي تحتاج إنتاجية عالية مع زمن استجابة منخفض وتكرار عبر مناطق متعددة، ومنصات الألعاب التي تحتاج بيانات اللاعبين وجلساتهم ولوحات المتصدرين لملايين المستخدمين المتزامنين.
تحتاج تخزين بيانات شخصية كل لاعب وتحديث لوحة المتصدرين فورياً مع ملايين اللاعبين.
تستخدم DynamoDB لتخزين ملفات اللاعبين وجلساتهم وتاريخهم.
مع قدرة DynamoDB على معالجة ملايين الطلبات في الثانية تعمل اللعبة بسلاسة حتى في أوقات الذروة.
3️⃣ DynamoDB Features — ميزات DynamoDB المتقدمة
يقدم DynamoDB مجموعة من الميزات القوية: المؤشرات الثانوية (Global وLocal Secondary Indexes) للاستعلام بمرونة عبر مفاتيح بديلة، DynamoDB Streams لتسجيل تغييرات العناصر في الوقت الفعلي للمعمارية المبنية على الأحداث، والجداول العالمية (Global Tables) لتكرار البيانات عبر مناطق AWS متعددة مع أداء قراءة وكتابة محلي.
- تشفير جميع بيانات العملاء في حالة الراحة بشكل افتراضي باستخدام AWS KMS.
- استعادة النقطة الزمنية (PITR) تحمي من عمليات الحذف أو الكتابة الخاطئة حتى 35 يوماً.
- التحكم الدقيق في الوصول (fine-grained access control) عبر سياسات IAM.
يستخدم DynamoDB Streams لتشغيل دالة Lambda فور كتابة بيانات جديدة.
الدالة تحلل البيانات في الوقت الفعلي وترسل تنبيهات عند تجاوز الحدود الطبيعية.
هذه المعمارية بدون خوادم تتعامل مع تدفق البيانات دون الحاجة لإدارة خوادم وسيطة.
4️⃣ Amazon DynamoDB Data Structure — بنية بيانات DynamoDB
يتكون DynamoDB من جدول (table) يحتوي على صفر أو أكثر من العناصر (items)، وكل عنصر هو مجموعة من السمات (attributes). يجب أن يحتوي كل عنصر على مفتاح قسم (partition key) ويمكن أن يحتوي اختيارياً على مفتاح فرز (sort key)، ومجموعهما يشكلان المفتاح الأساسي المركب (composite primary key) الذي يُعرّف العنصر بشكل فريد.
المفتاح الأساسي هو معرف الجهاز (Device ID) كمفتاح قسم والطابع الزمني (Timestamp) كمفتاح فرز.
هذا يسمح بالاستعلام السريع: "أعطني جميع قراءات الجهاز 1 بين الساعة 3 و4".
السمات الإضافية مثل درجة الحرارة وحالة الخطأ تخزّن كأزواج مفتاح-قيمة.
5️⃣ DynamoDB Global Secondary Index (GSI) — المؤشر الثانوي العام
المؤشر الثانوي العام هو نسخة للقراءة فقط من الجدول الأساسي تتيح إعادة تنظيم البيانات حول مفاتيح قسم وفرز مختلفة. يمكن أن يختلف كل من مفتاح القسم ومفتاح الفرز عن الجدول الأساسي. يمكن إنشاء وإزالة GSI في أي وقت بحد أقصى 20 مؤشراً لكل جدول، مع سعة منفصلة لكل مؤشر وقراءة متسقة نهائياً (eventual consistency).
تريد الاستعلام: "أعطني جميع الأجهزة التي سجلت درجة حرارة 49 خلال آخر ساعة".
بدون GSI عليك مسح الجدول كاملاً. مع GSI تجعل درجة الحرارة مفتاح قسم والمؤشر يعيد النتائج فوراً.
هذا يحول استعلاماً مكلفاً من مسح كامل إلى بحث مباشر وفعال.
6️⃣ DynamoDB Local Secondary Index (LSI) — المؤشر الثانوي المحلي
على عكس GSI، يحتفظ LSI بنفس مفتاح القسم كالجدول الأساسي لكنه يسمح بمفتاح فرز مختلف. يجب إنشاء LSI مع الجدول ولا يمكن إضافته أو إزالته لاحقاً. أقصى عدد هو 5 مؤشرات محلية لكل جدول مع حدود في حجم البيانات، ويدعم الاتساق القوي (strong consistency) عند الاستعلام.
تنشئ LSI بنفس مفتاح قسم (معرف الجهاز) ومفتاح فرز بديل (حالة الخطأ).
هذا يسمح بالاستعلام عن أخطاء جهاز معين بسرعة وباستخدام الاتساق القوي.
الفرق أن LSI يستهلك سعة قراءة من الجدول الأساسي ولا يتطلب سعة منفصلة.
7️⃣ Multi-Region Replication: DynamoDB Global Tables — الجداول العالمية متعددة المناطق
الجداول العالمية هي مجموعة من الجداول المتماثلة عبر مناطق AWS متعددة، مملوكة لحساب واحد. توفر حلاً مُداراً بالكامل وبدون خوادم لنشر قاعدة بيانات متعددة المناطق ومتعددة الكتابة (multi-active)، مما يتيح أداء قراءة وكتابة محلياً سريعاً مع تكرار تلقائي للبيانات وحل تعارضات التحديث.
ينشئ جدولاً عالمياً DynamoDB في 3 مناطق: us-west-1 وeu-south-1 وcn-north-1.
عند تحديث مستخدم في أوروبا لملفه الشخصي ينتشر التغيير تلقائياً للمنطقتين الأخريين.
حتى لو تعطلت إحدى المناطق يمكن للمستخدمين الوصول لبياناتهم من المناطق الأخرى دون انقطاع.
- DynamoDB قاعدة NoSQL مُدارة بالكامل تدعم المفاتيح-القيمة والمستندات بمخطط مرن.
- تتميز بزمن استجابة ثابت بالميلي ثانية وتوسع تلقائي دون إدارة.
- المؤشرات الثانوية (GSI وLSI) تتيح أنماط استعلام مرنة على نفس البيانات.
- DynamoDB Streams يمكّن المعمارية المبنية على الأحداث بتسجيل تغييرات البيانات في الوقت الفعلي.
- الجداول العالمية توفر تكرار multi-active عبر مناطق AWS للوصول المحلي السريع والتعافي من الكوارث.
- التشفير التلقائي وPITR والتحكم الدقيق بالوصول يضمنان أمان البيانات.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| DynamoDB | داينامو دي بي | قاعدة NoSQL مُدارة بالكامل للمفاتيح-القيمة والمستندات بتوسع تلقائي. |
| Partition Key | مفتاح القسم | المفتاح الأساسي الذي يحدد التوزيع الفيزيائي للبيانات في DynamoDB. |
| Sort Key | مفتاح الفرز | مفتاح ثانوي يحدد ترتيب العناصر ضمن نفس مفتاح القسم. |
| GSI | المؤشر الثانوي العام | نسخة للقراءة فقط بمفاتيح قسم وفرز مختلفة عن الجدول الأساسي. |
| LSI | المؤشر الثانوي المحلي | مؤشر بنفس مفتاح القسم ومفتاح فرز مختلف مع دعم الاتساق القوي. |
| Global Table | جدول عالمي | مجموعة جداول متماثلة عبر مناطق متعددة للوصول المحلي والتكرار. |
| DynamoDB Streams | تدفقات DynamoDB | تسجيل زمني متسلسل لتغييرات العناصر في الجدول في الوقت الفعلي. |
1️⃣ Amazon Redshift — مستودع البيانات السحابي
Amazon Redshift هو خدمة مستودع بيانات سحابي سريع ومُدار بالكامل وواسع النطاق بتقنية الأعمدة (columnar storage). صمم لتحليل البيانات الضخمة باستخدام SQL عبر مستودعات البيانات وقواعد البيانات التشغيلية وdata lakes. ينفذ استعلامات معقدة على تيرابايتات وبيتابايتات من البيانات بسرعة فائقة باستخدام معالجة موزعة.
- تخزين عمودي (columnar) لضغط أفضل وأداء استعلام أسرع.
- تكامل مع Amazon S3 لتحليل البيانات مباشرة عبر Redshift Spectrum.
- توسع يصل إلى بيتابايتات مع إنتاجية استعلام تصل إلى 3 أضعاف مستودعات البيانات التقليدية.
- أسعار تبدأ من 0.25 دولار للساعة مع خيار التوسع المرن.
تستخدم Amazon Redshift كمستودع بيانات مركزي لتحليل البيانات من المتاجر الإلكترونية والفيزيائية.
تستعلم عن "أكثر 10 منتجات مبيعاً في كل موسم" وتظهر النتائج في ثوانٍ بدلاً من ساعات.
هذه التحليلات تساعد الشركة على تحسين مخزونها وزيادة الإيرادات بنسبة 15%.
2️⃣ Amazon DocumentDB — قاعدة بيانات المستندات
Amazon DocumentDB هو خدمة قاعدة بيانات مستندات سحابية سريعة وقابلة للتوسع ومُدارة بالكامل ومتوافقة مع MongoDB. مناسبة للبيانات الديناميكية على نطاق واسع التي تحتاج تمثيلها بتنسيق JSON. توفر تكاملاً طبيعياً مع AWS DMS لترحيل قواعد MongoDB غير العلائقية دون توقف.
- جمع وتخزين المحتوى المتنوع من مصادر متعددة مثل الصور والتعليقات والفيديوهات.
- البيانات الضخمة في الوقت الفعلي — تخزين وإدارة البيانات التشغيلية وتغذية محرك ذكاء الأعمال للتحليل.
- إدارة المحتوى الذي ينشئه المستخدمون بمخطط مرن يتطور مع الوقت.
كل مقالة لها بنية مختلفة: بعضها يحتوي فيديوهات وبعضها جداول بيانات.
تختار DocumentDB لقدرته على تخزين مستندات JSON بمخطط مرن دون إعادة تعريف الجدول.
ترحل قاعدة MongoDB الحالية إلى DocumentDB باستخدام AWS DMS دون أي توقف للتطبيق.
3️⃣ Amazon Keyspaces — قاعدة بيانات الأعمدة الواسعة
هي خدمة قاعدة بيانات أعمدة واسعة (wide-column) مُدارة وقابلة للتوسع ومتوافقة مع Apache Cassandra. تخزّن البيانات في أعمدة مرنة تسمح بتطور البيانات بمرور الوقت وتقسيمها عبر أنظمة قواعد بيانات موزعة. مثالية لأحمال العمل كثيفة الكتابة أو المتوازنة القراءة/الكتابة.
- صيانة المعدات الصناعية.
- مراقبة التداول المالي.
- تحسين المسارات والخدمات اللوجستية.
- إدارة الأساطيل.
الحجم الهائل للبيانات (> 170 مليون نقطة بيانات يومياً) يتطلب قاعدة بيانات تكتب بسرعة فائقة.
تستخدم Amazon Keyspaces لقدرته على معالجة ملايين عمليات الكتابة في الثانية مع زمن استجابة بالميلي ثانية.
على عكس قواعد key-value التقليدية يتعامل wide-column بكفاءة مع أحمال الكتابة الثقيلة.
4️⃣ MemoryDB — قاعدة البيانات في الذاكرة
هي خدمة قاعدة بيانات في الذاكرة (in-memory) متوافقة مع Redis مفتوح المصدر. تخزن مجموعة البيانات بأكملها في الذاكرة وتستخدم سجل معاملات موزعاً لتوفير سرعة الذاكرة مع متانة البيانات واتساقها وإمكانية استعادتها. يمكن استخدامها كقاعدة بيانات أساسية للتطبيقات عالية الأداء دون الحاجة لإدارة مخبأ وقاعدة بيانات منفصلين.
- ملفات العملاء في قطاع التجزئة.
- لوحات المتصدرين في الألعاب.
- معاملات المستخدمين المصرفية.
- التخزين المؤقت (caching) للتطبيقات عالية الطلب.
يختار MemoryDB لأنه يخزن البيانات مباشرة في الذاكرة مما يعطي زمن استجابة بالميكرو ثانية.
على عكس Redis العادي يوفر MemoryDB متانة البيانات حتى عند انقطاع التيار.
هذا يضمن عدم فقدان نتائج اللاعبين حتى في حالات الفشل غير المتوقعة.
5️⃣ Neptune — قاعدة بيانات الرسوم البيانية
هو محرك قاعدة بيانات رسوم بيانية (graph database) عالي الأداء يخزّن البيانات والعلاقات بينها بأهمية متساوية. يستخدم هيكل العُقد والحواف (nodes and edges) لإنشاء والتنقل بين العلاقات بسرعة. يدعم لغات استعلام الرسوم البيانية Apache TinkerPop Gremlin وW3C SPARQL وopenCypher.
- محركات التوصية (Recommendation engines).
- كشف الاحتيال (Fraud detection).
- الرسوم البيانية المعرفية (Knowledge graphs).
- اكتشاف الأدوية (Drug discovery).
- الشبكات الاجتماعية (Social networking).
تستخدم Neptune لتخزين ملفات المستخدمين وعلاقات الصداقة بينهم كهيكل رسوم بيانية.
يمكنها الإجابة على سؤال: "من هم أصدقاء أصدقاء صديق هذا المستخدم؟" بسرعة عبر التنقل في الحواف.
في قاعدة علائقية كان هذا يتطلب انضمامات (JOIN) معقدة وبطيئة على جداول ضخمة.
6️⃣ Timestream — قاعدة البيانات الزمنية
هي خدمة قاعدة بيانات زمنية (timeseries) بدون خوادم سريعة وقابلة للتوسع ومُدارة بالكامل. تخزّن وتعالج البيانات المتسلسلة زمنياً لقياس الأحداث التي تتغير بمرور الوقت. توفر دوالاً زمنية مدمجة للتمهيد والتقريب والاستيفاء وتحليلات متقدمة عبر SQL مع تخزين متعدد الطبقات (ذاكرة ومخازن مغناطيسية) وتكرار تلقائي عبر مناطق التوفر.
- تحليل بيانات IoT لتحديد الاتجاهات والأنماط.
- مراقبة المقاييس التشغيلية لصحة التطبيقات واستخدامها.
- تحليل حركة مرور الويب في الوقت الفعلي لتحسين الأداء.
تستخدم Timestream لتخزين ومعالجة تيرابايتات من البيانات الزمنية.
تستعلم عن "متوسط سعر السهم X خلال آخر 30 يوماً مع فواصل زمنية كل ساعة".
بفضل دوال timeseries المدمجة في SQL تحصل على النتائج فوراً دون كتابة كود معقد.
7️⃣ Amazon QLDB — قاعدة بيانات دفتر الأستاذ
هي قاعدة بيانات دفتر أستاذ (ledger database) مُدارة بالكامل توفر سجل معاملات شفاف وغير قابل للتغيير وقابل للتحقق التشفيري. تتيح تتبع تاريخ دقيق لكل تغيير في بيانات التطبيق مع ضمان سلامة البيانات المدمجة. يمكن الاستعلام عنها باستخدام PartiQL وهي لغة شبيهة بـ SQL.
- تسجيل جميع المعاملات المالية مثل الإيداع والسحب مع تاريخ كامل.
- تتبع كل شحنة من المصنع إلى المتجر مع سجل لكل دفعة.
- تتبع المطالبات التأمينية مع التحقق التشفيري لسلامة البيانات.
تستخدم Amazon QLDB لتخزين كل تغيير يحدث على المطالبة كسجل غير قابل للتعديل.
عند تدقيق هيئة تنظيمية يمكن إثبات أن البيانات لم تُغيّر عبر التحقق التشفيري.
هذا يوفر مئات الساعات من العمل اليدوي في إعداد تقارير التدقيق السنوية.
كذلك AWS تقدم مجموعة من قواعد البيانات كل منها مصمم خصيصاً لنوع معين من أعباء العمل: Redshift للتحليلات الضخمة وDocumentDB للمستندات وKeyspaces للبيانات الواسعة وMemoryDB للسرعة الفائقة وNeptune للعلاقات المعقدة وTimestream للبيانات الزمنية وQLDB للسجلات غير القابلة للتغيير.
- Amazon Redshift: مستودع بيانات سحابي سريع بتقنية الأعمدة لتحليلات البيتابايت.
- Amazon DocumentDB: قاعدة مستندات متوافقة مع MongoDB للبيانات الديناميكية JSON.
- Amazon Keyspaces: قاعدة أعمدة واسعة متوافقة مع Cassandra لأحمال الكتابة الثقيلة.
- MemoryDB: قاعدة في الذاكرة متوافقة مع Redis بسرعة فائقة ومتانة بيانات.
- Neptune: قاعدة رسوم بيانية عالية الأداء للبيانات المترابطة مع علاقات معقدة.
- Timestream: قاعدة زمنية بدون خوادم لتحليل البيانات المتسلسلة زمنياً.
- Amazon QLDB: قاعدة دفتر أستاذ بسجل معاملات غير قابل للتغيير وقابل للتحقق التشفيري.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Redshift | ريد شيفت | مستودع بيانات سحابي بتقنية الأعمدة لتحليل البيانات الضخمة بسرعة. |
| DocumentDB | دوكيومنت دي بي | قاعدة مستندات متوافقة مع MongoDB لتخزين واستعلام مستندات JSON. |
| Keyspaces | كي سبيسز | قاعدة أعمدة واسعة متوافقة مع Cassandra لأحمال الكتابة والقراءة المتوازنة. |
| MemoryDB | ميموري دي بي | قاعدة Redis في الذاكرة مع متانة بيانات وسرعة ميكروثانية. |
| Neptune | نبتون | قاعدة رسوم بيانية لتخزين واستعلام البيانات المترابطة والعلاقات المعقدة. |
| Timestream | تايم ستريم | قاعدة زمنية بدون خوادم لتحليل البيانات المتسلسلة زمنياً عبر SQL. |
| QLDB | كيو إل دي بي | قاعدة دفتر أستاذ بسجل معاملات غير قابل للتغيير وقابل للتحقق التشفيري. |
1️⃣ AWS DMS — خدمة ترحيل قواعد البيانات
هي خدمة ترحيل وتكرار مُدارة تساعدك على نقل أعباء عمل قواعد البيانات والتحليلات الحالية من أي مصدر إلى AWS أو داخلها. تدعم معظم قواعد البيانات التجارية ومفتوحة المصدر الشائعة. يمكنها تكرار البيانات حسب الطلب أو وفق جدول زمني لنسخ التغييرات من المصدر، وتبقى قاعدة البيانات المصدر عاملة بالكامل أثناء الترحيل مما يقلل وقت التوقف.
- يدعم الترحيل المتجانس (homogeneous) — نفس محرك قاعدة البيانات مثل PostgreSQL → RDS for PostgreSQL.
- يدعم الترحيل غير المتجانس (heterogeneous) — محرك قاعدة بيانات مختلف مثل Oracle → Aurora.
- يدعم مصادر Oracle وSQL Server وMySQL وMariaDB وPostgreSQL وDb2 LUW وSAP وMongoDB وAurora.
- يدعم أهداف Oracle وSQL Server وPostgreSQL وMySQL وRedshift وSAP ASE وS3 وDynamoDB.
تستخدم AWS DMS لإنشاء مهمة ترحيل مباشر مع بقاء قاعدة البيانات المحلية عاملة.
ينسخ DMS البيانات أولاً مرة واحدة ثم يستمر في تكرار التغييرات الجديدة.
عند لحظة التبديل يوجه التطبيق إلى قاعدة RDS الجديدة ويكون وقت التوقف دقائق فقط.
2️⃣ AWS DMS Homogeneous Migration — الترحيل المتجانس
في الترحيل المتجانس يكون محرك قاعدة البيانات هو نفسه في المصدر والهدف. على سبيل المثال ترحيل PostgreSQL محلي إلى Amazon RDS for PostgreSQL. في هذا النوع يستخدم DMS أدوات قاعدة البيانات الأصلية (native database tools) لتوفير ترحيل عالي الأداء، ويكون الترحيل بدون خوادم حيث يتوسع تلقائياً حسب الحاجة.
- ملف المثيل (Instance profile): يحدد إعدادات الشبكة والأمان للبيئة المُدارة حيث يعمل مشروع الترحيل.
- مزود البيانات (Data provider): يحدد نقطة نهاية المصدر والهدف.
- مشروع التكرار (Replication project): ينفذ الترحيل بين المزودين المتوافقين.
تنشئ مثيل ترحيل في AWS DMS مع ملف مثيل يحدد إعدادات الشبكة.
يتصل DMS بقاعدة المصدر ويقرأ البيانات وينسخها باستخدام أدوات PostgreSQL الأصلية.
يكتمل الترحيل دون تغيير أي كود تطبيق لأن المحرك واحد.
3️⃣ Tools for Heterogeneous Database Migrations — أدوات الترحيل غير المتجانس
للترحيل بين محركات قواعد بيانات مختلفة توفر AWS ثلاث أدوات: AWS DMS Fleet Advisor لأتمتة جرد وتقييم خوادم قواعد البيانات المحلية والتوصية بمسارات الترحيل المحتملة، AWS Schema Conversion Tool (AWS SCT) لتطبيق مستقل يحوّل المخطط المصدر ورمز SQL إلى تنسيق متوافق مع قاعدة الهدف، وAWS DMS Schema Conversion خدمة مدارة مركزية داخل سير عمل DMS.
تستخدم AWS SCT لتحويل PL/SQL إلى كود PostgreSQL تلقائياً.
أي كائنات لا يمكن تحويلها تلقائياً تُوسم بتعليمات للتحويل اليدوي.
تستخدم AWS DMS بعدها لترحيل البيانات الفعلية بينما تبقى قاعدة Oracle عاملة.
4️⃣ AWS DMS Heterogeneous Migration with AWS SCT — الترحيل غير المتجانس
الخطوة الأولى: تحويل — يستخدم AWS SCT كتطبيق مستقل أو خدمة DMS Schema Conversion لتحويل جميع كائنات المخطط والكود إلى محرك الهدف. الخطوة الثانية: ترحيل المخطط والكود — تنشئ مهمة ترحيل DMS عبر مثيل التكرار (replication instance) ونقاط النهاية والمهام اللازمة في المنطقة المستهدفة.
تستخدم AWS SCT لتحويل 500 كائن قاعدة (جداول، إجراءات مخزنة، مشغلات) إلى MySQL.
ينتج التقرير أن 95% من الكود تحول تلقائياً و5% يحتاج تعديلاً يدوياً مع تعليمات واضحة.
بعد التعديلات تنشئ مهمة DMS لترحيل 2 تيرابايت من البيانات في غضون 3 أيام.
5️⃣ AWS DMS Replication into a Data Lake — التكرار إلى بحيرة البيانات
حالة استخدام شائعة هي تكرار البيانات من قاعدة بيانات إلى Amazon S3 كبحيرة بيانات للتحليلات. على سبيل المثال بيانات نظام معلومات الطلاب في قاعدة محلية تحتاج للتحليل. يتصل DMS بنقطة نهاية المصدر وينشئ مهمة تكرار تنسخ البيانات إلى مجموعة S3 الخام، حيث يمكن لخدمات التحليل والتصور الوصول إليها لاستخلاص الرؤى.
تستخدم AWS DMS لتكرار بيانات نظام معلومات الطلاب من قاعدة محلية إلى Amazon S3.
تستخدم Amazon QuickSight لتصور البيانات واستخراج أنماط مثل "معدل نجاح المقررات حسب التخصص".
هذه التحليلات كانت تتطلب ساعات من العمل اليدوي لجمع البيانات من أنظمة متفرقة.
- AWS DMS خدمة ترحيل وتكرار مُدارة تنقل قواعد البيانات إلى AWS بأمان وسرعة مع بقاء المصدر عاملاً.
- يدعم DMS الترحيل المتجانس (نفس المحرك) وغير المتجانس (محرك مختلف).
- AWS SCT وDMS Schema Conversion أدوات تحويل المخطط والكود لقواعد البيانات.
- AWS DMS Fleet Advisor يكتشف ويقيّم خوادم قواعد البيانات المحلية تلقائياً.
- يمكن استخدام DMS لتكرار البيانات من قاعدة إلى Amazon S3 كبحيرة بيانات للتحليلات.
- الترحيل غير المتجانس يتطلب خطوتين: تحويل المخطط عبر SCT ثم ترحيل البيانات عبر DMS.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| AWS DMS | خدمة ترحيل قواعد البيانات | خدمة مُدارة لترحيل وتكرار قواعد البيانات من وإلى AWS. |
| Homogeneous Migration | ترحيل متجانس | ترحيل بين قاعدتي بيانات بنفس محرك قاعدة البيانات. |
| Heterogeneous Migration | ترحيل غير متجانس | ترحيل بين قاعدتي بيانات بمحركات مختلفة. |
| AWS SCT | أداة تحويل المخطط | أداة لتحويل مخطط وكود قاعدة المصدر إلى تنسيق متوافق مع الهدف. |
| Fleet Advisor | مستشار الأسطول | أداة اكتشاف وجرد وتقييم تلقائي لخوادم قواعد البيانات المحلية. |
| Replication Instance | مثيل التكرار | مثيل EC2 مُدار يستضيف مهام تكرار DMS. |
| Data Lake | بحيرة بيانات | مستودع مركزي يخزّن البيانات بأشكالها المختلفة للتحليل والاستعلام. |
1️⃣ AWS Well-Architected Framework Database Pillars — ركائز الإطار المتقن لقواعد البيانات
يتكون الإطار من ست ركائز تتضمن كل منها أفضل الممارسات والأسئلة التي يجب مراعاتها عند تصميم الحلول السحابية. بصفتك معماري سحابة تضيف طبقة قاعدة بيانات تحتاج إلى تقييم خيارات قواعد البيانات المتاحة قبل اختيار حل إدارة البيانات لتحسين الأداء، وتأمين البنية التحتية بفعالية لضمان متانة البيانات وحمايتها من التهديدات.
يحتاج قاعدة بيانات للطلبات (علائقية مع ACID) وأخرى لتوصيات المنتجات (غير علائقية).
يختار Aurora للطلبات وDynamoDB للتوصيات مع تشفير كلتيهما باستخدام KMS.
هذا النهج يحسّن الأداء ويضمن الأمان في نفس الوقت.
2️⃣ Best Practice Approach: Architecture Selection — أفضل الممارسات: اختيار البنية
يُعد اختيار بنية قاعدة البيانات ممارسة أساسية ضمن ركيزة كفاءة الأداء (Performance Efficiency). الحل الأمثل يختلف بناءً على متطلبات التوفر والاتساق وتحمل التقسيم وزمن الاستجابة والمتانة وقابلية التوسع وقدرة الاستعلام. ثلاث ممارسات مهمة: فهم خصائص البيانات، تقييم الخيارات المتاحة، واختيار تخزين البيانات بناءً على أنماط الوصول.
- تقييم تأثير المفاضلات: تحديد أي الخيارات تؤثر على العملاء وكفاءة الحمل — مثلاً استخدام مخزن مفاتيح-قيمة يزيد الأداء لكن اتساقه النهائي (eventual consistency) قد يؤثر على تجربة المستخدم.
- نهج مدعوم بالبيانات: استخدام أنماط الوصول ومتطلبات التطبيق لاختيار الخدمات والتقنيات المثلى — توثيق خصائص البيانات لتسهيل اختيار الحلول والتكوينات البديلة.
- تضمين التكلفة في القرارات: مراعاة آثار التكلفة لتحسين استخدام الموارد وكفاءة الأداء — اختبار الأحمال لتحديد مقاييس الأداء والاختناقات.
توثّق خصائص البيانات المتوقعة: حجم البيانات 500 غيغابايت ومعدل نمو 100 ميغابايت يومياً مع 80% قراءة و20% كتابة.
تجري اختبارات أداء على Aurora وDynamoDB مع نفس الحمل لتحديد الأقل تكلفة والأعلى أداء.
بناءً على النتائج تختار DynamoDB مع DAX للتخزين المؤقت لتلبية متطلبات زمن الاستجابة بأقل تكلفة.
3️⃣ Best Practice Approach: Data Protection — حماية البيانات في حالة الراحة
تعد حماية البيانات المخزنة جزءاً أساسياً من ركيزة الأمان. التشفير يحافظ على سرية البيانات الحساسة في حال الوصول غير المصرح به أو الكشف العرضي. ممارستان مهمتان: تنفيذ إدارة آمنة للمفاتيح (secure key management) عبر AWS KMS، وفرض تشفير البيانات في حالة الراحة لضمان أن الطريقة الوحيدة لتخزين البيانات هي عبر التشفير.
- تستخدم Amazon RDS وDynamoDB خدمة AWS KMS لتأمين البيانات.
- DynamoDB يشفّر جميع بيانات المستخدمين في حالة الراحة في الجداول والمؤشرات والتدفقات والنسخ الاحتياطي افتراضياً.
- Amazon RDS يشفّر قواعد البيانات باستخدام مفاتيح KMS — جميع السجلات والنسخ الاحتياطية واللقطات مشفرة.
تفعّل تشفير AES-256 عبر AWS KMS على قاعدة RDS لديها.
كل البيانات في الراحة مشفرة وكل النسخ الاحتياطية واللقطات مشفرة أيضاً.
حتى إذا حصل مخترق على ملف قاعدة البيانات لا يمكنه قراءتها بدون مفتاح KMS.
4️⃣ Best Practice Approach: Cost-Effective Resources — الموارد الفعالة من حيث التكلفة
باختيار أفضل نوع وحجم وعدد من الموارد لقاعدة البيانات تلبي المتطلبات التقنية بأقل تكلفة. التحجيم المناسب يأخذ في الاعتبار جميع موارد الحمل وسمات كل مورد فردي والجهد المبذول في عملية التحجيم. يجب اختيار حجم أو نوع المورد بناءً على بيانات الحمل وخصائصه: حوسبة، ذاكرة، إنتاجية، أو كثافة كتابة.
بدلاً من اختيار مثيل كبير دائماً (over-provisioning) تختار Aurora Serverless v2.
تضبط الحد الأدنى 2 ACU والحد الأقصى 16 ACU وتدفع فقط مقابل ما تستخدمه.
هذا يخفض فاتورة قاعدة البيانات بنسبة 40% مقارنة بالمثيلات المخصصة.
- ركيزة كفاءة الأداء: اختر قاعدة البيانات بناءً على خصائص البيانات وأنماط الوصول.
- ركيزة الأمان: نفذ إدارة آمنة للمفاتيح عبر AWS KMS وافرض تشفير البيانات في الراحة.
- ركيزة تحسين التكلفة: اختر نوع وحجم وعدد الموارد بناءً على بيانات الحمل الفعلية.
- قيّم المفاضلات بين الخيارات المختلفة قبل اختيار قاعدة البيانات.
- استخدم اختبارات الأداء والمراقبة المستمرة لتحسين التكوينات.
- يمكن لـ Aurora Serverless وخيارات التوسع التلقائي أن تخفض التكاليف بشكل كبير.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Performance Efficiency | كفاءة الأداء | ركيزة تركز على استخدام الموارد الحاسوبية بكفاءة لتلبية المتطلبات. |
| Data at Rest | البيانات في حالة الراحة | البيانات المخزنة على وسائط تخزين دائمة مثل الأقراص. |
| AWS KMS | خدمة إدارة المفاتيح | خدمة مدارة لإنشاء وتخزين وإدارة مفاتيح التشفير. |
| Right-Sizing | التحجيم المناسب | عملية اختيار نوع وحجم المورد المثالي بناءً على بيانات الحمل الفعلية. |
| Encryption at Rest | التشفير في حالة الراحة | تشفير البيانات عند تخزينها على وسائط التخزين لحمايتها من الوصول غير المصرح به. |
| Data-Driven Approach | النهج المدعوم بالبيانات | استخدام بيانات فعلية عن الحمل وأنماط الوصول لاتخاذ القرارات المعمارية. |
🚀 الخاتمة
في هذه الوحدة استعرضنا طبقة قاعدة البيانات في AWS بدءاً من اعتبارات اختيار قاعدة البيانات المناسبة والفرق بين القواعد العلائقية وغير العلائقية وصولاً إلى الخدمات المُدارة مثل Amazon RDS وAurora وAurora Serverless مع ميزاتها المتقدمة من التوسع والأمان والنسخ الاحتياطي عبر المناطق. تعمقنا في Amazon DynamoDB بهيكلها من الجداول والعناصر والسمات والمؤشرات الثانوية والجداول العالمية متعددة المناطق، ثم انتقلنا إلى قواعد البيانات المخصصة للأغراض السبعة من Redshift للتحليلات إلى QLDB للسجلات غير القابلة للتغيير. تعرفنا على كيفية ترحيل البيانات بسلاسة باستخدام AWS DMS مع أدوات تحويل المخطط مثل AWS SCT، واختتمنا بتطبيق ركائز AWS Well-Architected Framework على طبقة قاعدة البيانات لضمان تصميم آمن وفعال ومنخفض التكلفة.
