We are still cooking the magic in the way!
Route 53 واستراتيجيات DNS
Route 53 واستراتيجيات DNS
Amazon Route 53 هو خدمة DNS الموثوقة من AWS وطبقة إدارة حركة المرور العالمية. على خلاف محوّل DNS البسيط، يتيح لك Route 53 تضمين ذكاء التوجيه مباشرةً في استجابات DNS — تحويل حركة المرور بناءً على الزمن الكامن والموقع الجغرافي لمصدر الطلب وصحة نقطة النهاية أو أوزان اعتباطية. على نطاق الشركات الكبرى، يُمثّل Route 53 خط الدفاع الأول للتوافر: يُبعد حركة المرور عن نقاط النهاية غير السليمة قبل أن تصل أي حزمة بيانات واحدة إلى بنيتك التحتية. يُعدّ فهم معماريته وسياسات التوجيه الخاصة به أمرًا أساسيًا لأي مهندس يُصمّم نظامًا إنتاجيًا على AWS.
المناطق المستضافة (Hosted Zones): حدود مساحة أسماء DNS
المنطقة المستضافة هي حاوية Route 53 لسجلات DNS الخاصة بنطاق ما. وهي تتوافق مباشرةً مع منطقة DNS بالمعنى المحدد في RFC. يوجد نوعان:
- منطقة مستضافة عامة — تُقدّم استجابات DNS لأي محوّل على الإنترنت العام. عند تسجيل نطاق (أو تفويض نطاق موجود إلى Route 53)، تُنشئ منطقة مستضافة عامة ويُوفّر Route 53 أربعة سجلات خوادم أسماء (NS) عبر شبكته Anycast لتحقيق التوافر العالي.
- منطقة مستضافة خاصة — مرئية فقط داخل واحدة أو أكثر من Amazon VPCs المرتبطة بها. تُستخدم لاكتشاف الخدمات الداخلية:
payments.internal،db-primary.prod.internal. يتلقى المحوّلون خارج VPCs المرتبطة استجابة NXDOMAIN. يمكنك ربط نفس المنطقة الخاصة بـVPCs في حسابات AWS مختلفة لاكتشاف الخدمات عبر الحسابات.
prod.internal واحدة أقل تكلفةً وأسهل إدارةً من عشرات المناطق لكل خدمة.
سجلات Alias: سجل A الأصيل في AWS
قبل التعمق في سياسات التوجيه، افهم سجلات Alias — امتداد Route 53 الاحتكاري لـDNS القياسي. يُشير سجل Alias إلى مورد AWS (ALB، توزيع CloudFront، نقطة نهاية موقع S3، سجل Route 53 آخر في نفس المنطقة) ويتصرف كسجل A على مستوى DNS لكن مع ميزتين رئيسيتين:
- لا CNAME عند قمة المنطقة — تحظر مواصفات DNS سجلات CNAME عند قمة المنطقة (
example.com). تتجاوز سجلات Alias هذا القيد، مما يتيح لك توجيهexample.comمباشرةً إلى ALB أو توزيع CloudFront. - استعلامات مجانية — استعلامات DNS على سجلات Alias التي تحوّل إلى موارد AWS مجانية. وهذا توفير ملحوظ عند أحجام الاستعلامات العالية.
استخدم دائمًا سجلات Alias (لا CNAME) عند الإشارة إلى موارد AWS. ذلك أرخص وأصحّ من الناحية التقنية عند قمة المنطقة.
سياسات التوجيه: الذكاء في DNS
يدعم Route 53 سبع سياسات توجيه. الأربع التي ستستخدمها أكثر في الإنتاج هي: البسيطة، والموزونة، والقائمة على الزمن الكامن، والتجاوز عند الفشل. كل سياسة تُغيّر كيفية اختيار Route 53 للقيمة المُرجَعة عند استعلام محوّل عن اسم سجل ونوع معيّن.
التوجيه الموزون (Weighted Routing)
يُخصّص التوجيه الموزون وزنًا رقميًا لكل مجموعة سجلات تحمل نفس الاسم والنوع. يُعيد Route 53 كل سجل بنسبة وزنه إلى الإجمالي. الوزن 0 يُزيل سجلًا من التناوب دون حذفه — الطريقة المعيارية لتصريف حركة المرور من نقطة نهاية قبل النشر أو نافذة الصيانة.
حالات الاستخدام الإنتاجية: نشر Canary (أرسل 5% من حركة المرور إلى الإصدار الجديد، راقب معدلات الأخطاء، ثم انقل 100%)، اختبارات A/B، وإدخال المنطقة تدريجيًا (أطلق منطقة جديدة بوزن 1، تحقق منها، ثم ارفع وزنها إلى المستوى الطبيعي).
التوجيه القائم على الزمن الكامن (Latency-Based Routing)
يُوجّه التوجيه القائم على الزمن الكامن كل استعلام إلى منطقة AWS ذات أقل زمن كامن مقيس من منظور المحوّل. تحتفظ AWS بجدول زمن كامن بين شبكتها الحافة والمناطق؛ يرجع إليه Route 53 وقت الاستعلام. تُنشئ سجلًا واحدًا لكل منطقة بنفس الاسم والنوع، يُشير كل منها إلى نقطة نهاية تلك المنطقة.
هذا الخيار الافتراضي للمعماريات متعددة المناطق النشطة-النشطة. مستخدم في طوكيو يُوجَّه إلى ap-northeast-1، ومستخدم في لندن إلى eu-west-1، دون أي خرائط جغرافية يدوية. تتحدث قياسات الزمن الكامن باستمرار مع تغيّر ظروف شبكة AWS.
EvaluateTargetHealth: true على سجلات Alias القائمة على الزمن الكامن التي تُشير إلى ALBs. إذا أصبحت المنطقة ذات أقل زمن كامن غير سليمة (جميع أهداف ALB غير سليمة)، يتراجع Route 53 تلقائيًا إلى المنطقة السليمة ذات أقل زمن كامن تالية. يمنحك هذا تجاوزًا تلقائيًا للفشل عبر المناطق بتكلفة هندسية صفرية إضافية.
توجيه تجاوز الفشل (Failover Routing)
ينفّذ توجيه Failover طبولوجيا صريحة لنظام أساسي/ثانوي. تُعيّن سجلًا كـPRIMARY وآخر كـSECONDARY. يُعيد Route 53 سجل PRIMARY طالما اجتاز فحص الصحة المرتبط به. عند فشل الفحص، يُعيد Route 53 تلقائيًا سجل SECONDARY. تضمن TTL لـDNS الانتشار في غضون ثوان إلى دقائق.
يتوافق هذا مباشرةً مع تصميم التعافي من الكوارث النشط-السلبي. يمكن أن يكون الثانوي موقع S3 ثابتًا (صفحة "عذرًا، نظام تحت الصيانة")، أو نسخة للقراءة فقط مُرقّاة إلى كاتب، أو منطقة ساخنة احتياطية كاملة.
فحوصات الصحة: طبقة الحراسة
فحوصات الصحة هي آلية Route 53 لإزالة نقاط النهاية غير السليمة من استجابات DNS. تعمل باستقلالية عن خدمة DNS — فاحصو صحة Route 53 المخصصون حول العالم يستطلعون نقاط نهايتك على فاصل زمني قابل للتهيئة (10 أو 30 ثانية) وعتبة معينة. تُعلَن نقطة النهاية غير سليمة عندما يفشل عدد الفحوصات المتتالية المُهيّأة.
ثلاثة أنواع:
- فحوصات صحة نقطة النهاية — يُرسل Route 53 مسحات HTTP أو HTTPS أو TCP إلى عنوان IP أو نطاق مُحدد. لـHTTP/HTTPS، يمكنك اشتراط رمز استجابة محدد ومطابقة نص في الجسم (أول 5,120 بايت).
- فحوصات الصحة المحسوبة — تجميع منطقي (AND/OR) لفحوصات صحة أخرى. مفيد للإعلان عن سلامة نقطة نهاية فقط عند سلامة تبعيات متعددة في آنٍ واحد.
- فحوصات صحة تنبيهات CloudWatch — تعكس فحوصات الصحة حالة تنبيه CloudWatch. يتيح لك هذا التعبير عن منطق صحة معقد (زمن كامن p99 فوق العتبة، معدل أخطاء فوق 1%، عمق طابور فوق الحد) دون بناء نقطة نهاية استطلاع مخصصة.
تركيبات سياسات التوجيه وسياسات حركة المرور
تُسلسل معماريات DNS الإنتاجية الحقيقية سياسات توجيه متعددة باستخدام Traffic Policies في Route 53 (محرر التدفق البصري) أو بتداخل مجموعات السجلات. نمط شائع ثلاثي الطبقات:
- طبقة Geolocation الخارجية — يُحوَّل مستخدمو الاتحاد الأوروبي إلى سجل نطاق الاتحاد الأوروبي؛ مستخدمو الولايات المتحدة إلى سجل نطاق أمريكا الشمالية (استيفاءً لمتطلبات إقامة بيانات GDPR).
- طبقة Latency الوسطى — داخل كل نطاق جغرافي، يُوجَّه المرور إلى المنطقة المتاحة ذات أقل زمن كامن.
- طبقة Failover الداخلية — داخل كل منطقة، الأساسي هو ALB الحي؛ الثانوي هو نقطة نهاية بوضع منخفض الجودة أو صفحة S3 ثابتة.
تعالج هذه المعمارية المتداخلة النطاق الكامل من سيناريوهات الفشل: انقطاع منطقي، تدهور عبر المناطق، والتعافي الكامل من الكوارث — كلها عبر DNS دون أي تغييرات في كود التطبيق أو تهيئة موازن الحمل أثناء الحوادث.
DNS الخاص ومحوّل VPC
للخدمات الدقيقة الداخلية، استخدم منطقة مستضافة خاصة مرتبطة بـVPC الخاصة بك. المحوّل المدمج في VPC (متاح عند قاعدة CIDR الخاصة بـVPC زائد اثنين، مثلًا 10.0.0.2) يعالج كل من بحوث المنطقة الخاصة الداخلية ويُعيد توجيه كل شيء آخر إلى تسلسل DNS العام. تُمكّن نقاط نهاية Route 53 Resolver من توسيع هذا: نقطة نهاية واردة تقبل استعلامات DNS من شبكتك المحلية عبر Direct Connect أو VPN (حتى تتمكن محوّلات الشبكة المحلية من حل مناطق AWS الخاصة)، ونقطة نهاية صادرة مع قواعد محوّل تُعيد توجيه الاستعلامات لنطاقات الشبكة المحلية المحددة إلى خوادم DNS المحلية.