نشط-نشط متعدد المواقع مع Global Tables وRoute 53
شغّل السعة الإنتاجية الكاملة في منطقتين أو أكثر في الوقت نفسه باستخدام DynamoDB Global Tables وAurora Global Database وتوجيه زمن الاستجابة في Route 53
نشط-نشط متعدد المواقع مع Global Tables وRoute 53 درس مجاني في Cloud & IT Cert Prep على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cloud & IT Cert Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
تعريف البنية النشطة-النشطة متعددة المواقع
تُعد البنية النشطة-النشطة متعددة المواقع أعلى مستويات التعافي من الكوارث، إذ يعمل تطبيقكم بكامل طاقته الإنتاجية في منطقتين أو أكثر من مناطق AWS في الوقت نفسه. وعلى خلاف البنية النشطة-السلبية التي تنتظر فيها بيئة احتياطية لتتولى العمل، تخدم المنطقتان في البنية النشطة-النشطة حركة المستخدمين الفعلية طوال الوقت. وعند فشل إحدى المنطقتين، تستوعب المنطقة الأخرى 100% من حركة المرور فورًا من دون تأخير ناتج عن التحويل عند الفشل. كما يقلل هذا النمط زمن الاستجابة للمستخدمين الموزعين عالميًا، من خلال خدمتهم من أقرب منطقة إليهم.
# Active-Active traffic split (normal operation):
# us-east-1: serving ~50% of users (North America)
# eu-west-1: serving ~50% of users (Europe)
# Active-Active traffic split (us-east-1 failure):
# us-east-1: 0% (health check failed)
# eu-west-1: 100% (ASG scales up automatically)
# RTO: near-zero (DNS TTL propagation only)
# RPO: near-zero (with DynamoDB Global Tables)بنية DynamoDB Global Tables
تُعد DynamoDB Global Tables العمود الفقري للبيئات النشطة-النشطة. وتتيح Global Tables النسخ المتماثل متعدد الإتاحة الرئيسية ومتعدد المناطق؛ إذ يمكن للتطبيقات في أي منطقة القراءة والكتابة في جدول DynamoDB محلي، وتُنسخ التغييرات إلى جميع المناطق الأخرى خلال ثانية واحدة تقريبًا. وتفعّلون Global Tables بتحديد المناطق التي يجب أن يوجد فيها الجدول. وتتولى AWS تلقائيًا النسخ المتماثل وحل التعارضات (بحسب أولوية آخر كاتب) والتحويل عند الفشل.
# Create DynamoDB table and add global regions
aws dynamodb create-table \
--table-name UserSessions \
--attribute-definitions AttributeName=userId,AttributeType=S \
--key-schema AttributeName=userId,KeyType=HASH \
--billing-mode PAY_PER_REQUEST \
--region us-east-1
# Add replica regions for Global Table
aws dynamodb update-table \
--table-name UserSessions \
--replica-updates '[{"Create":{"RegionName":"eu-west-1"}},{"Create":{"RegionName":"ap-southeast-1"}}]' \
--region us-east-1Aurora Global Database للقراءات النشطة والكتابات الأساسية
يوفر Aurora Global Database قراءات نشطة-نشطة، لكنه يوفر كتابات نشطة-سلبية. وتخدم جميع المناطق الثانوية عمليات القراءة مع تأخر في النسخ يقل عن ثانية واحدة، بينما تقبل المنطقة الأساسية وحدها عمليات الكتابة. وهذا مناسب للتطبيقات التي تركز على القراءة وتحتاج إلى قراءات منخفضة زمن الاستجابة عالميًا، مع وجود منطقة أساسية واضحة للكتابة. أثناء حدوث فشل إقليمي في المنطقة الأساسية، يمكنكم ترقية منطقة ثانوية إلى أساسية خلال أقل من دقيقة، مما يحقق RTO منخفضًا لطبقة الكتابة. قارنوا ذلك بـ DynamoDB Global Tables، التي تدعم الكتابة النشطة-النشطة في جميع المناطق.
# Aurora Global Database read configuration
# Primary region (us-east-1): reads + writes
# Secondary region (eu-west-1): reads only
# ~100ms replication lag, serves EU users low-latency reads
# Application reads from local Aurora endpoint
# Application writes to primary region Aurora endpoint
# Java connection string with region routing:
# readEndpoint=eu-west-1.cluster-ro-xxx.aurora.amazonaws.com
# writeEndpoint=us-east-1.cluster-xxx.aurora.amazonaws.comتوجيه Route 53 للبنية النشطة-النشطة
يُعد Route 53 موجه حركة المرور في البنى النشطة-النشطة متعددة المواقع. استخدموا التوجيه المستند إلى زمن الاستجابة لإرسال كل مستخدم إلى المنطقة التي تتمتع بأقل زمن استجابة شبكي من موقعه. وأرفقوا فحوصات الحالة بكل سجل إقليمي؛ فعندما تفشل منطقة في فحص حالتها، يزيلها Route 53 تلقائيًا من استجابات DNS، ويرسل حركة المرور بالكامل إلى المناطق الصحية المتبقية. اضبطوا TTL لنظام DNS على 60 ثانية أو أقل لتقليل الوقت اللازم لتحويل المستخدمين إلى المنطقة الصحية.
# Route 53 latency routing with health checks
aws route53 change-resource-record-sets \
--hosted-zone-id ZXXX \
--change-batch '{
"Changes": [
{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "api.example.com",
"Type": "A",
"Region": "us-east-1",
"SetIdentifier": "us-east-1",
"HealthCheckId": "hc-us-east-1",
"AliasTarget": {"DNSName": "alb-us-east-1.amazonaws.com", "EvaluateTargetHealth": false}
}
}
]
}'Auto Scaling لاستيعاب حركة المرور
عند فشل إحدى المناطق في إعداد نشط-نشط، يجب أن تتعامل المنطقة الباقية مع ضعف حركة المرور المعتادة لديها (أو أكثر). ويجب أن تكون لدى Auto Scaling Group سعة قصوى كافية وسياسات توسعة تستجيب بسرعة. اضبطوا التوسعة المستندة إلى تتبع الهدف اعتمادًا على عدد طلبات ALB لكل هدف، بحيث تضيف ASG مثيلات تلقائيًا مع تضاعف حركة المرور. وفكروا أيضًا في التهيئة المسبقة للسعة: أثناء تدريبات التحويل عند الفشل، راقبوا سرعة توسعة ASG وتأكدوا من قدرتها على بلوغ السعة المطلوبة ضمن هدف RTO لديكم.
# ASG target tracking for request count
aws autoscaling put-scaling-policy \
--auto-scaling-group-name app-asg-eu-west-1 \
--policy-name scale-on-requests \
--policy-type TargetTrackingScaling \
--target-tracking-configuration '{
"TargetValue": 1000,
"PredefinedMetricSpecification": {
"PredefinedMetricType": "ALBRequestCountPerTarget",
"ResourceLabel": "app/my-alb/xxx/targetgroup/my-tg/yyy"
},
"ScaleInCooldown": 60,
"ScaleOutCooldown": 30
}'إدارة الجلسات في البنية النشطة-النشطة
في بنية أحادية المنطقة، يمكن تخزين جلسات المستخدمين محليًا على خوادم التطبيقات. أما في البنية النشطة-النشطة متعددة المناطق، فقد ينتقل المستخدمون بين المناطق في الطلبات اللاحقة، مما يؤدي إلى تعطل الجلسات الموجودة على الخادم. وتشمل الحلول: 1) الجلسات عديمة الحالة — تخزين بيانات الجلسة في JWT أو ملف تعريف ارتباط موقّع يمكن لأي خادم في أي منطقة التحقق من صحته. 2) استخدام DynamoDB Global Tables للجلسات — تخزين الجلسات مركزيًا مع وصول بزمن مقداره ميلي ثانية من أي منطقة. 3) استخدام ElastiCache مع Global Datastore — نسخ Redis عبر المناطق لتخزين الجلسات.
# DynamoDB Global Table for session storage
# Session item structure:
{
'sessionId': 'sess-abc123',
'userId': 'usr-456',
'data': {'cart': [...], 'preferences': {}},
'expiresAt': 1750000000,
'lastUpdatedRegion': 'us-east-1'
}
# Application reads from local region DynamoDB
# Writes replicate to all regions within ~1 second
# No sticky sessions needed on the ALBتعارضات الكتابة وحلها
يتمثل أكبر تحدٍ في البنية النشطة-النشطة ذات الكتابة متعددة الإتاحة الرئيسية في تعارضات الكتابة. فإذا حدّث مستخدمان في منطقتين مختلفتين السجل نفسه في الوقت ذاته، فأي تحديث يفوز؟ تستخدم DynamoDB Global Tables قاعدة أولوية آخر كاتب استنادًا إلى الطابع الزمني للكتابة. وينجح ذلك في معظم حالات الاستخدام، لكنه قد يؤدي إلى فقدان بيانات عند وجود تحديثات متنافسة، مثل زيادة مستخدمين اثنين لقيمة عداد في الوقت نفسه. صمّموا نموذج البيانات لتجنب الكتابات المتزامنة على العنصر نفسه من مناطق مختلفة، باستخدام الكتابات الشرطية أو بتقسيم ملكية البيانات حسب المنطقة.
# Avoid conflicts with conditional writes
aws dynamodb update-item \
--table-name UserProfiles \
--key '{"userId":{"S":"usr-123"}}' \
--update-expression 'SET profileVersion = profileVersion + :inc, username = :name' \
--condition-expression 'profileVersion = :expectedVersion' \
--expression-attribute-values '{
":inc":{"N":"1"},
":name":{"S":"newname"},
":expectedVersion":{"N":"5"}
}'
# If another region already updated version, this fails gracefullyنسخ S3 المتماثل في البنية النشطة-النشطة
بالنسبة إلى تخزين الكائنات في بنية نشطة-نشطة، استخدموا النسخ المتماثل عبر المناطق في S3 مع النسخ المتماثل ثنائي الاتجاه (وهو متاح في الحِزم التي تم تفعيل تعيين الإصدارات فيها). وعلى خلاف CRR أحادي الاتجاه، يحافظ النسخ المتماثل ثنائي الاتجاه على مزامنة حِزَم المنطقتين؛ إذ تُنسخ الكائنات المكتوبة في أي منطقة تلقائيًا إلى المنطقة الأخرى. وهذا ضروري للتطبيقات التي تكتب الملفات التي يحمّلها المستخدمون في حِزمة S3 المحلية لمنطقتها، لكنها تحتاج إلى إتاحة هذه الملفات عالميًا. فعّلوا Replication Time Control (RTC) في S3 لضمان نسخ 99.99% من الكائنات خلال 15 دقيقة.
# Bidirectional S3 replication
# Bucket A (us-east-1) replicates to Bucket B (eu-west-1)
# Bucket B (eu-west-1) replicates to Bucket A (us-east-1)
# Enable S3 RTC for guaranteed replication time
aws s3api put-bucket-replication \
--bucket us-east-1-uploads \
--replication-configuration '{
"Rules": [{
"Status": "Enabled",
"ReplicationTime": {"Status": "Enabled", "Time": {"Minutes": 15}},
"Metrics": {"Status": "Enabled", "EventThreshold": {"Minutes": 15}},
"Destination": {"Bucket": "arn:aws:s3:::eu-west-1-uploads"}
}]
}'CloudFront مع مصادر متعددة المناطق
استخدموا CloudFront مع مجموعات المصادر لإنشاء شبكة CDN نشطة-نشطة مع تحويل تلقائي عند الفشل. اضبطوا مصدرًا أساسيًا (ALB في us-east-1) ومصدرًا ثانويًا (ALB في eu-west-1). وينفذ CloudFront التحويل تلقائيًا إلى المصدر الثانوي عندما يعيد المصدر الأساسي أخطاء 5xx. وبالنسبة إلى الأصول الثابتة المقدمة من S3، اضبطوا مجموعات مصادر تشير إلى حِزَم S3 في مناطق متعددة مع نسخ متماثل ثنائي الاتجاه. ويضيف ذلك طبقة مرونة على مستوى CDN فوق توجيه Route 53 النشط-النشط.
# CloudFront origin group for multi-region failover
aws cloudfront create-distribution \
--distribution-config '{
"Origins": {
"Quantity": 2,
"Items": [
{"Id": "us-east-1", "DomainName": "alb-us-east-1.amazonaws.com"},
{"Id": "eu-west-1", "DomainName": "alb-eu-west-1.amazonaws.com"}
]
},
"OriginGroups": {
"Items": [{
"Id": "multi-region-group",
"FailoverCriteria": {"StatusCodes": {"Items": [500,502,503,504]}},
"Members": {"Items": [{"OriginId": "us-east-1"},{"OriginId": "eu-west-1"}]}
}]
}
}'مراقبة الحالة في البنية النشطة-النشطة
تتطلب البنى النشطة-النشطة مراقبة قوية لضمان سلامة المنطقتين وتوزيع حركة المرور كما هو متوقع. وتشمل المقاييس الأساسية: Route 53 HealthCheckPercentageHealthy لكل منطقة، وDynamoDB ReplicationLatency لقياس تأخر Global Tables، وALB RequestCount لكل منطقة للتحقق من توزيع حركة المرور، ولوحات CloudWatch عبر الحسابات والمناطق للحصول على عرض موحّد. اضبطوا التنبيهات عندما يتجاوز تأخر النسخ حد RPO لديكم أو عندما يصبح توزيع حركة المرور غير متوازن بدرجة كبيرة.
# CloudWatch alarm for DynamoDB Global Table replication lag
aws cloudwatch put-metric-alarm \
--alarm-name 'GlobalTable-ReplicationLag-eu-west-1' \
--metric-name ReplicationLatency \
--namespace AWS/DynamoDB \
--dimensions Name=TableName,Value=UserSessions Name=ReceivingRegion,Value=eu-west-1 \
--period 60 \
--evaluation-periods 3 \
--threshold 5000 \
--comparison-operator GreaterThanThreshold \
--alarm-actions arn:aws:sns:us-east-1:123:ops-alertsمتى تكون البنية النشطة-النشطة هي الخيار المناسب
تكون البنية النشطة-النشطة مناسبة عندما: يكون المستخدمون موزعين عالميًا ويصبح زمن الاستجابة إلى منطقة واحدة غير مقبول. يجب أن يكون RTO قريبًا من الصفر — فلا يستطيع العمل تحمل انقطاع حتى لبضع دقائق. يتطلب معدل الكتابة المرتفع توزيع عمليات الكتابة بين المناطق. تفرض المتطلبات التنظيمية معالجة البيانات داخل الدولة. وتكون التكلفة أعلى بكثير من مستويات التعافي من الكوارث الأخرى، لذا لا تختاروا البنية النشطة-النشطة إلا عندما تبرر متطلبات العمل والجدوى الاقتصادية ذلك بوضوح. وبالنسبة إلى العديد من أعباء العمل، يكون Warm Standby كافيًا وأقل تكلفة بكثير.
# Active-Active justification checklist:
# [ ] Users in 2+ continents with latency SLAs
# [ ] RTO requirement < 5 minutes
# [ ] Revenue impact of downtime justifies 2x+ cost
# [ ] Data must remain within specific regions (regulations)
# [ ] Write throughput exceeds single-region capacity
# If fewer than 2-3 boxes checked:
# Consider Warm Standby instead (lower cost, adequate RTO)تحقق سريع
اختبروا مدى فهمكم لمفاهيم AWS Solutions Architect (SAA-C03) التي تناولها هذا الدرس.
مراجعة الدرس
تعلمتم في هذا الدرس أن: DynamoDB Global Tables تتيح الكتابة متعددة الإتاحة الرئيسية عبر المناطق لتحقيق بنية نشطة-نشطة فعلية، وأن التوجيه المستند إلى زمن الاستجابة في Route 53 مع فحوصات الحالة يوجّه المستخدمين إلى أقرب منطقة صحية، وأن إدارة الجلسات يجب أن تكون عديمة الحالة أو أن تستخدم تخزينًا منسوخًا عالميًا في البنية النشطة-النشطة. توفر البنية النشطة-النشطة RTO وRPO قريبين من الصفر، لكنها أعلى تكلفة بدرجة كبيرة. بعد ذلك، سنستكشف ركيزتي التميز التشغيلي والأمان في Well-Architected Framework.
تعلم Cloud & IT Cert Prep مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 150
- الدروس
- 600
الأسئلة الشائعة
هل درس «نشط-نشط متعدد المواقع مع Global Tables وRoute 53» مجاني؟
نعم — نص درس «نشط-نشط متعدد المواقع مع Global Tables وRoute 53» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cloud & IT Cert Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
ماذا ستتعلم في «نشط-نشط متعدد المواقع مع Global Tables وRoute 53»؟
شغّل السعة الإنتاجية الكاملة في منطقتين أو أكثر في الوقت نفسه باستخدام DynamoDB Global Tables وAurora Global Database وتوجيه زمن الاستجابة في Route 53 تتمرن على Cloud & IT Cert Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cloud & IT Cert Prep؟
لا تُشترط خبرة سابقة. Cloud & IT Cert Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «نشط-نشط متعدد المواقع مع Global Tables وRoute 53»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cloud & IT Cert Prep هذا؟
نعم. كل درس في Cloud & IT Cert Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- RTO وRPO وطبقات التعافي من الكوارث
- النسخ الاحتياطي والاستعادة
- Pilot Light والنسخة الاحتياطية الدافئة
- نشط-نشط متعدد المواقع مع Global Tables وRoute 53