انتقل إلى المحتوى الرئيسي

سياسات التوجيه Route 53

نظرة عامة​

يوفر Route 53 عدة سياسات توجيه لتوجيه الحركة بناءً على معايير مختلفة.

┌─────────────────────────────────────────────────────────────┐
│ POLITIQUES DE ROUTAGE │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────────────────┐ │
│ │ SIMPLE │ │ وجهة واحدة │ │
│ └─────────────────┘ └─────────────────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────────────────┐ │
│ │ WEIGHTED │ │ توزيع حسب الوزن │ │
│ └─────────────────┘ └─────────────────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────────────────┐ │
│ │ LATENCY │ │ أقل زمن استجابة │ │
│ └─────────────────┘ └─────────────────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────────────────┐ │
│ │ FAILOVER │ │ تحويل تلقائي │ │
│ └─────────────────┘ └─────────────────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────────────────┐ │
│ │ GEOLOCATION │ │ حسب منطقة المستخدم │ │
│ └─────────────────┘ └─────────────────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────────────────┐ │
│ │ GEOPROXIMITY │ │ حسب المسافة + التحيز │ │
│ └─────────────────┘ └─────────────────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────────────────┐ │
│ │ MULTIVALUE │ │ إجابات متعددة + الصحة │ │
│ └─────────────────┘ └─────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

1. Simple Routing​

التوجيه الأكثر بساطة: طلب واحد = إجابة واحدة.

┌─────────────────────────────────────────────────────────────┐
│ SIMPLE ROUTING │
├─────────────────────────────────────────────────────────────┤
│ │
│ مستخدم Route 53 │
│ │ │ │
│ │ "www.example.com?" │ │
│ ├─────────────────────────────►│ │
│ │ │ │
│ │ 192.0.2.44 │ │
│ │◄─────────────────────────────┤ │
│ │ │ │
│ │ (أو عدة IPs، ترتيب عشوائي) │
│ │ 192.0.2.44, 192.0.2.45 │
│ │ │ │
│ │
│ الخصائص : │
│ • لا يوجد فحوصات صحية │
│ • إذا كان هناك عدة IPs، يختار العميل │
│ • الأكثر بساطة، لكن لا يوجد تحويل تلقائي │
│ │
│ حالات الاستخدام : │
│ • موقع بسيط مع مورد واحد │
│ • تطوير/اختبار │
│ │
└─────────────────────────────────────────────────────────────┘

2. Weighted Routing​

توزيع الحركة بناءً على الأوزان المعينة.

┌─────────────────────────────────────────────────────────────┐
│ WEIGHTED ROUTING │
├─────────────────────────────────────────────────────────────┤
│ │
│ التكوين : │
│ • Record 1 : 192.0.2.44 (الوزن: 70) │
│ • Record 2 : 192.0.2.45 (الوزن: 20) │
│ • Record 3 : 192.0.2.46 (الوزن: 10) │
│ │
│ النتيجة : │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 100 طلب │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │▓▓▓▓▓▓▓▓▓▓▓▓▓▓│░░░░░░│████│ │ │ │
│ │ │ 70% │ 20% │ 10%│ │ │ │
│ │ │ .44 │ .45 │ .46│ │ │ │
│ │ └─────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ حالات الاستخدام : │
│ • اختبار A/B (90% النسخة A، 10% النسخة B) │
│ • ترحيل تدريجي (تحول تدريجي) │
│ • توزيع الحمل بين المناطق │
│ │
│ ملاحظة : الوزن 0 = لا حركة نحو هذه الوجهة │
│ │
└─────────────────────────────────────────────────────────────┘

تكوين CLI​

# Record 1 - Production (70%)
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890ABC \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "www.example.com",
"Type": "A",
"SetIdentifier": "production",
"Weight": 70,
"TTL": 60,
"ResourceRecords": [{"Value": "192.0.2.44"}]
}
}]
}'

# Record 2 - Canary (10%)
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890ABC \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "www.example.com",
"Type": "A",
"SetIdentifier": "canary",
"Weight": 10,
"TTL": 60,
"ResourceRecords": [{"Value": "192.0.2.45"}]
}
}]
}'

3. Latency-Based Routing​

يوجه إلى منطقة AWS ذات أقل زمن استجابة.

┌─────────────────────────────────────────────────────────────┐
│ LATENCY-BASED ROUTING │
├─────────────────────────────────────────────────────────────┤
│ │
│ يقيس Route 53 زمن الاستجابة ويوجه إلى المنطقة الأسرع │
│ للمستخدم. │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 🇨🇦 مستخدم كندا │ │
│ │ │ │ │
│ │ │ أي منطقة؟ │ │
│ │ ▼ │ │
│ │ ┌─────────────┐ │ │
│ │ │ Route 53 │ │ │
│ │ │ │ │ │
│ │ │ Latence : │ │ │
│ │ │ us-east: 20ms ← الأسرع! │ │
│ │ │ eu-west: 80ms │ │
│ │ │ ap-south: 200ms │ │
│ │ └──────┬──────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ Réponse : ALB us-east-1 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ حالات الاستخدام : │
│ • تطبيق متعدد المناطق │
│ • تحسين تجربة المستخدم عالمياً │
│ • تقليل زمن الاستجابة لجميع المستخدمين │
│ │
└─────────────────────────────────────────────────────────────┘

4. Failover Routing​

تحويل تلقائي إلى مورد احتياطي.

┌─────────────────────────────────────────────────────────────┐
│ FAILOVER ROUTING │
├─────────────────────────────────────────────────────────────┤
│ │
│ التكوين : │
│ • Primary : ALB الإنتاج (مع فحص الصحة) │
│ • Secondary : موقع ثابت S3 (صفحة صيانة) │
│ │
│ الحالة العادية (Primary صحي) │
│ ───────────────────────────── │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ مستخدم ──────► Route 53 ──────► ALB Prod │ │
│ │ │ ✓ صحي │ │
│ │ │ │ │
│ │ └──╳── S3 (مُتجاهل) │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ الحالة الفشل (Primary غير صحي) │
│ ───────────────────────────────── │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ مستخدم ──────► Route 53 ──╳── ALB Prod │ │
│ │ │ ✗ غير صحي │ │
│ │ │ │ │
│ │ └──────► S3 Maintenance │ │
│ │ "الموقع في │ │
│ │ الصيانة" │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ حالات الاستخدام : │
│ • استعادة الكوارث │
│ • صفحة صيانة تلقائية │
│ • تحويل إلى منطقة ثانوية │
│ │
└─────────────────────────────────────────────────────────────┘

فحوصات الصحة​

┌─────────────────────────────────────────────────────────────┐
│ HEALTH CHECKS ROUTE 53 │
├─────────────────────────────────────────────────────────────┤
│ │
│ أنواع فحوصات الصحة : │
│ │
│ 1. ENDPOINT │
│ ───────── │
│ يتحقق من نقطة نهاية HTTP/HTTPS/TCP │
│ • URL : https://example.com/health │
│ • Port : 443 │
│ • Intervalle : 30 secondes │
│ • Seuil : 3 échecs = غير صحي │
│ │
│ 2. CLOUDWATCH ALARM │
│ ───────────────── │
│ يعتمد على إنذار CloudWatch │
│ • إذا كان الإنذار في حالة ALARM → غير صحي │
│ • مفيد للمقاييس الداخلية │
│ │
│ 3. CALCULATED │
│ ────────── │
│ يجمع بين عدة فحوصات صحية │
│ • OR : صحي إذا كان على الأقل 1 صحي │
│ • AND : صحي إذا كانت جميعها صحية │
│ │
│ التكوين : │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Protocol: HTTPS │ │
│ │ Host: www.example.com │ │
│ │ Path: /health │ │
│ │ Port: 443 │ │
│ │ Request Interval: 30 seconds │ │
│ │ Failure Threshold: 3 │ │
│ │ String Matching: "OK" (اختياري) │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

5. Geolocation Routing​

التوجيه بناءً على الموقع الجغرافي للمستخدم.

┌─────────────────────────────────────────────────────────────┐
│ GEOLOCATION ROUTING │
├─────────────────────────────────────────────────────────────┤
│ │
│ يتم توجيه الحركة بناءً على بلد/قارة المستخدم، وليس │
│ بناءً على زمن الاستجابة. │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 🇫🇷 فرنسا → serveur-fr.example.com │ │
│ │ 🇩🇪 ألمانيا → serveur-de.example.com │ │
│ │ 🇬🇧 المملكة المتحدة → serveur-uk.example.com │ │
│ │ 🌍 أوروبا (آخر) → serveur-eu.example.com │ │
│ │ 🌎 افتراضي → serveur-us.example.com │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ حالات الاستخدام : │
│ • محتوى محلي (لغة، عملة) │
│ • قيود قانونية (GDPR، محتوى مقيد جغرافياً) │
│ • الامتثال التنظيمي │
│ • تقديم محتوى محدد حسب المنطقة │
│ │
│ ⚠️ مهم : │
│ دائماً قم بتكوين سجل "افتراضي" للمستخدمين غير المعينين! │
│ │
└─────────────────────────────────────────────────────────────┘

مقارنة السياسات​

السياسةالمعيارفحص الصحةحالات الاستخدام
Simpleلا شيء❌ لامواقع بسيطة
Weightedوزن %✅ نعماختبار A/B، الترحيل
Latencyالأداء✅ نعمتطبيقات عالمية
Failoverالتوفر✅ مطلوباستعادة الكوارث، الصيانة
Geolocationبلد/قارة✅ نعممحتوى محلي
Geoproximityالمسافة + التحيز✅ نعمتشكيل الحركة
Multivalueعدة IPs✅ نعمتوازن تحميل بسيط

ملخص​

السياسةمتى تستخدمها
Simpleنقطة نهاية واحدة، لا حاجة لتحويل تلقائي
Weightedتوزيع محكم، اختبار A/B
Latencyأفضل أداء عالمي
Failoverتوفر عالي، استعادة الكوارث
Geolocationمحتوى حسب البلد، الامتثال

القسم التالي : مختبر التحويل التلقائي