Amazon RDS
هي وسيلة سهلة لإعداد خدمة قاعدة البيانات المُدارة (AWS-managed) من AWS. تدعم Amazon RDS نوعين من ميزات النسخ المتماثل:
1) عمليات النشر المتعددة من مناطق إلى أخرى (Multi-AZ Deployments).
2) قراءة النسخ المتماثلة (Read Replicas).
في Multi-AZ ، يخزن RDS نسخة متماثلة لـ standby database في منطقة أخرى.
هنا يتم تطبيق تحديثات قاعدة البيانات بشكل متزامن على النقطة الرئيسية والنقطة المتماثلة.
إذا حدث فشل فسيقوم RDS تلقائيًا بتحويل العمليات إلى نقطة النسخ المتماثلة الاحتياطية (standby replica) دون أي مقاطعة في عمليات قاعدة البيانات.
في حالة Read Replicas هناك أيضًا نسخة متماثلة standby database ولكن لا يمكن الوصول إلى هذه النسخة المتماثلة مباشرةً قبل أي فشل.
بالنسبة لأحمال عمل قاعدة البيانات المليئة بالقراءة يمكن للمرء إنشاء عدة نسخ متماثلة لطبعة قاعدة بيانات المصدر داخل منطقة AWS نفسها أو في منطقة AWS مختلفة.
يتم نقل تحديثات قاعدة البيانات الأساسية أو الرئيسية بشكل غير متزامن إلى Read Replicas.
إلى جانب توفير قابلية التوسع ، يمكن أيضًا استخدام Read Replicas للتعافي من الكوارث.
على سبيل المثال في حالة فشل primary DB instance ، يمكن المطالبة بـ Read Replicas كـ standalone instance والعمل نيابة عن primary DB instance.
سنشرح هنا كيفية إنشاء Read Replicas من MySql RDS database instance.
ملاحظات هامة متعلقة بـ Read Replica
- من أفضل الممارسات إعداد Read Replicas بنفس الطريقة التي يتم بها إعداد master DB instance.
- محركات قواعد البيانات المدعومة الوحيدة لـ Read Replica:
MariaDB و Microsoft SQL Server و MySQL و Oracle و PostgreSQL.
- نوع التخزين الافتراضي لـ Read Replica هو نفس نوع مثيل قاعدة البيانات المصدر. يمكن أيضًا تغيير نوع التخزين أثناء إنشاء النسخة المتماثلة المقروءة.
- يرجى ملاحظة أنه أثناء تغيير حجم التخزين المخصص لنسخة Read Replicas ، لا يمكنك زيادتها بقيمة أقل من 10 بالمائة.
- لا تدعم Amazon RDS الـ Circular replication.
- النسخ المتماثلة لمحركات DB المختلفة لها اختلافات عديدة.
- يجب تعيين النسخ الاحتياطية التلقائية على source DB instance.
يمكن القيام بذلك عن طريق تعيين قيمة فترة الاحتفاظ بالنسخ الاحتياطي أكبر من "0".
إنشاء Read Replicas من RDS management console.
قبل المضي قدمًا في Read Replicas ، ابدأ تشغيل DB instance الخاص بك.
توجه الآن إلى RDS management console هنا يمكننا أن نرى DB instance الخاص بنا "database-1" الذي يعتمد على MySQL DB قيد التشغيل:
ملاحظة: لإنشاء read replica، يمكننا استخدام AWS console و AWS CLI وRDS API.
إعدادادت قاعدة البيانات الأساسية لدينا كما يلي:
DB instance identifier: ‘database-1’
Database engine: MySql
Database version: 8.0.28
Master username: ‘Your-username’
Master password: ‘Your-password’
DB instance class: db.t2.micro (Free-tier)
Storage size: 20 GiB
Public Access: ‘No’
Automated backups: ‘Enabled’
باستخدام إعدادات قاعدة البيانات السابقة ، سنبدأ خطوات الـ read replica
من RDS management console ، حدد DB instance المطلوبة.
انقر الآن على القائمة المنسدلة "Action" الموجودة أعلاه واختر الخيار "Create read replica":
في الصفحة التالية ، تم تحديد بعض الإعدادات مسبقًا بناءً على نهج أفضل الممارسات. نحن هنا نتمسك بأفضل الممارسات ، لكننا أحرار في تغييرها.
من "Replica source" ، اختر source DB instance.
اكتب الاسم الذي تريده في هذا المثال استخدمنا 'DBreplica'.
اختر أيضًا منطقة لبدء read replica.
لقد حددنا نفس المنطقة لـ read replica مثل تلك الخاصة بـ DB instance.
نحن نترك الإعدادات المحددة مسبقًا لـ DB instance class وتفاصيل التخزين.
تم تمكين خيار auto-scaling للتخزين بالفعل ضمن قسم Storage .
من Multi-AZ deployment يمكننا إنشاء دعم احتياطي أو وضع الاستعداد للنسخة replica عن طريق تحديد "yes".
في الوقت الحالي سنتخطى هذا الخيار:
read replica غير متاحة للجميع لأننا اخترنا خيار "Not publicly accessible". كما تعتمد مصادقة قاعدة البيانات على "Password authentication".
نظرًا لأننا لم نقم بتمكين خيار التشفير لـ source DB instance فقد تخطاه هنا أيضًا. وبنفس الطريقة ، يتم ترك خيار المراقبة والتسجيل والحذف دون المساس.
داخل خيار الإعداد الإضافي لقاعدة البيانات ، يمكن تغيير قيمة المنفذ إلى قيمة أخرى غير القيمة الافتراضية.
لنسخ العلامات (tags ) إلى snapshots حدد مربع الاختيار "Copy tags to snapshots".
يمكن تمكين مصادقة IAM DB لإدارة قاعدة البيانات عبر مستخدم IAM.
هناك شيء اختياري آخر يمكنك القيام به وهو تمكين التحديثات الطفيفة لقاعدة البيانات.
الآن انقر فوق الزر "Create read replica" لبدء عملية إنشاء النسخة المتماثلة.
إذا كنت تفضل استخدام طريقة AWS CLI ، فيمكنك إنشاء read replica باستخدام الأمر "create-db-example-read-replica" مع خيارات cli المطلوبة:
$ aws rds create-db-instance-read-replica --db-instance-identifier DBreplica --source-db-instance-identifier database-1 --max-allocated-storage 1000