سياسات التوجيه 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 | محتوى حسب البلد، الامتثال |
القسم التالي : مختبر التحويل التلقائي