0Pricing
AWS Solutions Architect · درس

النشط-النشط والنشط-الخامل متعدد المناطق

وجّه حركة المرور إلى عدة Regions في الوقت نفسه باستخدام توجيه زمن الاستجابة في Route 53، أو حوّلها عند الفشل إلى نسخة احتياطية دافئة باستخدام فحوصات الصحة

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

لماذا بنية المناطق المتعددة؟

تحمي Multi-AZ من أعطال منطقة توافر واحدة، لكن منطقة AWS بأكملها قد تصبح غير متاحة أثناء الكوارث واسعة النطاق أو الانقطاعات الكبرى أو بسبب المتطلبات التنظيمية. تعالج البنى متعددة المناطق ذلك من خلال تشغيل أحمال العمل في منطقتين جغرافيتين منفصلتين أو أكثر. ويوجد نمطان رئيسيان: النشط-الاحتياطي (تقدم منطقة واحدة حركة المرور بينما تنتظر الأخرى في وضع الاستعداد) والنشط-النشط (تقدم المنطقتان حركة المرور في الوقت نفسه).

النشط-الاحتياطي: نمط الاستعداد الدافئ

في إعداد متعدد المناطق من نمط النشط-الاحتياطي، تتولى المنطقة الأساسية معالجة جميع حركة مرور الإنتاج. وتُشغّل المنطقة الثانوية نسخة مصغرة لكنها وظيفية، وتظل دافئة وجاهزة. تُنسخ البيانات باستمرار من المنطقة الأساسية إلى الثانوية. عند تعطل المنطقة الأساسية، تُرقّى المنطقة الثانوية لتصبح نشطة باستخدام توجيه تجاوز الفشل في Route 53. يوفر هذا النمط تكلفة أقل من النمط النشط-النشط، لكنه يتميز بقيمة RTO أعلى (الوقت اللازم لترقية المنطقة الاحتياطية وتوسيع نطاقها).

# Route 53 failover routing configuration
# Primary record: us-east-1 ALB (primary)
# Secondary record: us-west-2 ALB (failover)

aws route53 change-resource-record-sets \
  --hosted-zone-id Z123 \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "app.example.com",
        "Type": "A",
        "Failover": "PRIMARY",
        "HealthCheckId": "hc-primary"
      }
    }]
  }'

النشط-النشط: حركة المرور في كلتا المنطقتين

في إعداد النشط-النشط، تقدم كلتا المنطقتين حركة مرور الإنتاج في الوقت نفسه. يوزع Route 53، باستخدام التوجيه القائم على زمن الاستجابة أو التوجيه الموزون، المستخدمين على المنطقة الأقرب أو الأنسب. عند تعطل إحدى المنطقتين، تكتشف فحوصات الحالة في Route 53 العطل، وتوجه جميع حركة المرور إلى المنطقة السليمة. يوفر النمط النشط-النشط أفضل RTO (شبه صفري)، ويقلل زمن الاستجابة للمستخدمين الموزعين عالميًا، ويحسن معدل المعالجة من خلال توزيع الحمل عبر المناطق.

# Route 53 latency-based routing for active-active
aws route53 change-resource-record-sets \
  --hosted-zone-id Z123 \
  --change-batch '{
    "Changes": [
      {
        "Action": "CREATE",
        "ResourceRecordSet": {
          "Name": "app.example.com",
          "Type": "A",
          "Region": "us-east-1",
          "SetIdentifier": "us-east-1",
          "HealthCheckId": "hc-use1",
          "AliasTarget": {"DNSName": "alb-use1.amazonaws.com"}
        }
      }
    ]
  }'

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

يتمثل أصعب جانب في البنية متعددة المناطق في الحفاظ على اتساق البيانات بين المناطق. ومن الأدوات الأساسية: ينسخ S3 Cross-Region Replication (CRR) كائنات S3 بشكل غير متزامن إلى حاوية في منطقة أخرى. ويوفر DynamoDB Global Tables نسخًا متماثلًا متعدد المسؤولين ومتعدد المناطق مع اتساق نهائي. أما Aurora Global Database، فينسخ البيانات من منطقة أساسية واحدة إلى ما يصل إلى خمس مناطق ثانوية مع تأخر يقل عن ثانية واحدة. وتختلف ضمانات الاتساق وخصائص التأخر باختلاف آلية النسخ.

# Enable S3 Cross-Region Replication
aws s3api put-bucket-replication \
  --bucket source-bucket-us-east-1 \
  --replication-configuration '{
    "Role": "arn:aws:iam::123:role/replication-role",
    "Rules": [{
      "Status": "Enabled",
      "Destination": {
        "Bucket": "arn:aws:s3:::dest-bucket-us-west-2"
      }
    }]
  }'

DynamoDB Global Tables للنمط النشط-النشط

يتيح DynamoDB Global Tables نسخًا متماثلًا حقيقيًا نشط-نشط، ومتعدد المناطق، ومتعدد المسؤولين. يمكن لتطبيقك الكتابة إلى DynamoDB في أي منطقة، وتُنسخ التغييرات إلى جميع المناطق الأخرى خلال ثانية واحدة عادةً. وتستخدم معالجة التعارضات قاعدة الفوز بالكتابة الأحدث استنادًا إلى الطوابع الزمنية. ويجعل ذلك Global Tables مناسبًا للتطبيقات الموزعة عالميًا، مثل لوحات صدارة الألعاب وملفات تعريف المستخدمين ومخازن الجلسات، حيث تُعد عمليات القراءة والكتابة المحلية منخفضة زمن الاستجابة أمرًا بالغ الأهمية.

# Create DynamoDB Global Table
aws dynamodb create-global-table \
  --global-table-name UserProfiles \
  --replication-group \
    RegionName=us-east-1 \
    RegionName=eu-west-1 \
    RegionName=ap-southeast-1

# Applications in each region write to local DynamoDB
# Replication is automatic and bi-directional

Aurora Global Database

تمتد Aurora Global Database عبر مناطق AWS متعددة، مع منطقة أساسية واحدة تتولى عمليات الكتابة، وما يصل إلى خمس مناطق ثانوية تتولى عمليات القراءة مع تأخر في النسخ يقل عن ثانية واحدة. ولأغراض التعافي من الكوارث، يمكنك ترقية منطقة ثانوية لتصبح المنطقة الأساسية خلال أقل من دقيقة، مما يجعلها مناسبة للنمط النشط-الاحتياطي مع RTO صارم. ويمكن للمناطق الثانوية أيضًا تقديم حركة قراءة منخفضة زمن الاستجابة، مما يجعل هذا النمط هجينًا: نشط-نشط للقراءة ونشط-احتياطي للكتابة.

# Create Aurora Global Database
aws rds create-global-cluster \
  --global-cluster-identifier my-global-db \
  --engine aurora-postgresql \
  --engine-version 14.5

# Add secondary region
aws rds create-db-cluster \
  --db-cluster-identifier secondary-cluster \
  --global-cluster-identifier my-global-db \
  --engine aurora-postgresql \
  --region eu-west-1

فحوصات الحالة في Route 53 لتجاوز الفشل

يعتمد تجاوز الفشل متعدد المناطق على فحوصات الحالة في Route 53 لاكتشاف أعطال المناطق. ويمكن لفحوصات الحالة مراقبة نقطة نهاية (HTTP/HTTPS/TCP)، أو تنبيه CloudWatch، أو أن تكون محسوبة من فحوصات حالة أخرى. يستطلع Route 53 نقاط النهاية باستمرار من مواقع متعددة حول العالم. عند فشل أحد الفحوصات، يتوقف Route 53 تلقائيًا عن إرجاع سجلات تلك المنطقة، ويعيد توجيه حركة المرور إلى المناطق السليمة خلال مدة DNS TTL.

# Create Route 53 health check
aws route53 create-health-check \
  --caller-reference unique-ref-001 \
  --health-check-config '{
    "Type": "HTTPS",
    "FullyQualifiedDomainName": "app.us-east-1.example.com",
    "Port": 443,
    "ResourcePath": "/health",
    "RequestInterval": 30,
    "FailureThreshold": 3
  }'

Global Accelerator للنمط النشط-النشط

يوفر AWS Global Accelerator عنواني IP ثابتين من نوع Anycast، ويوجه حركة المرور عبر شبكة AWS العالمية إلى نقطة النهاية المثلى. وعلى خلاف تجاوز الفشل عبر DNS في Route 53 (الذي يعتمد على TTL)، يكتشف Global Accelerator أعطال نقاط النهاية خلال 1-3 ثوانٍ ويعيد توجيه حركة المرور فورًا، وهو أسرع بكثير من انتشار DNS. استخدم Global Accelerator عندما تحتاج إلى تجاوز فشل في أقل من ثانية، أو عناوين IP ثابتة لاستخدامها في قوائم السماح، أو عندما يكون التوجيه المعتمد على DNS TTL بطيئًا جدًا مقارنةً بمتطلبات RTO لديك.

# Create Global Accelerator
aws globalaccelerator create-accelerator \
  --name my-accelerator \
  --ip-address-type IPV4

# Add endpoints in multiple regions
aws globalaccelerator create-endpoint-group \
  --listener-arn arn:aws:globalaccelerator::123:accelerator/xxx/listener/yyy \
  --endpoint-group-region us-east-1 \
  --endpoint-configurations EndpointId=alb-us-east-1-arn,Weight=100

حل التعارضات في النمط النشط-النشط

تواجه البنى متعددة المناطق من نمط النشط-النشط تحديًا أساسيًا هو تعارضات الكتابة. فإذا حدّثت منطقتان السجل نفسه في الوقت نفسه، فأي تحديث يفوز؟ يستخدم DynamoDB Global Tables قاعدة الفوز بالكتابة الأحدث. وتشمل استراتيجيات حل التعارضات على مستوى التطبيق: مصدر الأحداث (سجلات تُضاف إليها الأحداث فقط مع دمج CRDT)، وإدارة الإصدارات (رفض عمليات الكتابة ذات أرقام الإصدارات القديمة)، أو الكتابة المقسمة (تمتلك كل منطقة جزءًا من البيانات ولا تكتب إلا إلى الجزء الخاص بها). صمّم نموذج بياناتك لتقليل تعارضات الكتابة عبر المناطق.

# DynamoDB conditional write to prevent conflicts
aws dynamodb update-item \
  --table-name Orders \
  --key '{"orderId":{"S":"ord-123"}}' \
  --update-expression 'SET #s = :newStatus' \
  --condition-expression '#v = :expectedVersion' \
  --expression-attribute-names '{"#s":"status","#v":"version"}' \
  --expression-attribute-values '{":newStatus":{"S":"shipped"},":expectedVersion":{"N":"1"}}'

التكاليف والتعقيد التشغيلي

تزيد البنى متعددة المناطق التكلفة والتعقيد بدرجة كبيرة. إذ تدفع مقابل الموارد في مناطق متعددة، وتكاليف نسخ البيانات (نقل البيانات عبر المناطق)، وتكاليف فحوصات الحالة، وغالبًا ما تحتاج إلى أدوات تشغيلية مكررة في كل منطقة. يُعد النشط-الاحتياطي أكثر فعالية من حيث التكلفة، لأن المنطقة الاحتياطية تعمل بسعة منخفضة. أما النشط-النشط، فهو الأعلى تكلفة، لكنه يوفر أفضل تجربة للمستخدم وأفضل RTO. احرص دائمًا على موازنة التكلفة مقابل قيمة المرونة الإقليمية الإضافية للأعمال.

# Key costs in multi-region architecture:
# - EC2/RDS in each region: full compute costs
# - Cross-region data transfer: ~$0.02/GB
# - Route 53 health checks: ~$0.50/check/month
# - Global Accelerator: $0.025/hour + data transfer
# - DynamoDB Global Table replication: per-write charges per region
# - Aurora Global Database: storage replicated to all regions

اختيار نمط المناطق المتعددة المناسب

اختر نمط المناطق المتعددة بناءً على متطلبات العمل: إذا كان RTO > ساعة واحدة وكانت التكلفة هي الأولوية، فاستخدم النسخ الاحتياطي والاستعادة في منطقة أخرى. وإذا كان RTO بالدقائق، فاستخدم النشط-الاحتياطي مع الاستعداد الدافئ. أما إذا كان RTO < دقيقة واحدة وكان المستخدمون موزعين عالميًا، فاستخدم النشط-النشط. ضع المتطلبات التنظيمية في الحسبان، إذ تشترط بعض القطاعات بقاء البيانات في مناطق محددة، مما قد يحد من خيارات النسخ لديك. وثّق قرار البنية مع توضيح المفاضلات صراحةً.

# Decision matrix:
# RTO > 1 hour, RPO > 1 hour:  Backup & Restore
# RTO ~minutes, RPO ~minutes:   Active-Passive (Warm Standby)
# RTO < 1 minute, RPO ~0:       Active-Active

# Key services for each:
# Backup & Restore: AWS Backup + S3 CRR
# Active-Passive:   Aurora Global DB + Route 53 failover
# Active-Active:    DynamoDB Global Tables + Global Accelerator

تحقق سريع

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

مراجعة الدرس

تعلمت في هذا الدرس أن النمط النشط-الاحتياطي يشغّل منطقة احتياطية يتم تفعيلها عند حدوث عطل، وأن النمط النشط-النشط يقدم حركة المرور من مناطق متعددة في الوقت نفسه، وأن DynamoDB Global Tables وAurora Global Database خدمتان أساسيتان لنسخ البيانات عبر مناطق متعددة. تتولى فحوصات الحالة في Route 53 وGlobal Accelerator قرارات توجيه حركة المرور. سنستكشف بعد ذلك فحوصات الحالة وقواطع الدائرة ومنطق إعادة المحاولة.

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

هل درس «النشط-النشط والنشط-الخامل متعدد المناطق» مجاني؟

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

ماذا ستتعلم في «النشط-النشط والنشط-الخامل متعدد المناطق»؟

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

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

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

كم من الوقت يستغرق درس «النشط-النشط والنشط-الخامل متعدد المناطق»؟

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

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

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

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

  1. التوافر العالي في مقابل تحمّل الأعطال: التعريفات والمفاضلات
  2. أنماط Multi-AZ للخدمات ذات الحالة
  3. النشط-النشط والنشط-الخامل متعدد المناطق
  4. فحوصات الصحة وقواطع الدائرة ومنطق إعادة المحاولة
← العودة إلى AWS Solutions Architect