إذا لاحظت أن تطبيقك لا يتعطل، فهذا طبيعي ولا يعني وجود مشكلة به. المشكلة تبدأ عندما تتعذر خدمة التحقق من الحالة (Health Check) من الوصول إلى تطبيقك.
السبب هو أن فاحصي الحالة الخاصة بـ Route 53 يعملون خارج شبكة VPS الخاصة بك، وهم عبارة عن خدمات عامة على الإنترنت. يمكنهم فقط مراقبة الأجهزة والخدمات التي تمتلك عناوين IP عامة ومتاحة على الإنترنت. أما العناوين الخاصة (Private IPs)، فهي غير مرئية لهم، مما يؤدي إلى فشل الفحوصات بشكل دائم.
لكن لا تقلق، فهذه ليست مشكلة في تطبيقك، وإنما قيود على نوع فحوصات الحالة المتوفرة. يمكنك ربط فحوصات الحالة بسجلات انتقال (Failover Records) داخل مناطق استضافة خاصة (Private Hosted Zones)؛ فقط عليك أن تستخدم نوع فحص لا يتطلب وصولًا عامًا.
هناك حلول متعددة يمكنك تطبيقها:
الاختيار الأفضل هو إعداد فحص الحالة باستخدام تنبيهات CloudWatch. وذلك عن طريق مراقبة مقياس معين يعكس صحة تطبيقك، مثل مؤشرات حالة الخوادم أو موازن الأحمال. بعد ذلك، تضع تنبيهًا على هذا المقياس، وتربطه مع سجل الانتقال الخاص بك. بما أن المقياس يكون داخل حسابك الخاص، فهذا الحل مثالي للموارد الخاصة التي لا يمكن الوصول إليها من الإنترنت.
إذا كنت تستطيع إعطاء جهازك عنوان IP عام، يمكنك استخدام فحص الحالة التقليدي من Route 53. ولكن من المهم أن تقتصر على عناوين IP الخاصة بفاحصي الحالة من AWS فقط، لتجنب مخاطر الأمان. ومع ذلك، يجدر الانتباه أن هذا يعرض جزءًا من تطبيقك أمام الإنترنت، لذا فإن الخيار الأول يكون أكثر أمانًا وملاءمة للموارد الداخلية.
خيار آخر هو مراقبة خدمة خارجية يعتمد عليها تطبيقك، بدلاً من مراقبة الجهاز نفسه. على سبيل المثال، يمكن فحص حالة قاعدة بيانات عامة أو واجهة برمجة تطبيقات خارجية يعتمد عليها تطبيقك. إلا أن هذا يعتمد على أن تكون صحة تلك الخدمة الخارجية تعكس صحة تطبيقك بشكل صحيح.
بالنسبة للمراقبة داخل الشبكة الخاصة، يمكنك الاعتماد على وظيفة لامبدا (Lambda) تقيم الحالة عن طريق بروتوكولات TCP أو HTTP أو HTTPS داخل بيئة VPC. يمكن لهذه الوظيفة أن تختبر الحالة، وتعيد النتائج إلى CloudWatch، مما يتيح إعداد فحص حالة خاص يعمل بشكل مباشر على مستوى التطبيقات.
وأخيرًا، يمكنك دمج عدة فحوصات حالة لإنشاء تقييم شامل. مثلاً، يمكن أن تعتمد فحوصات الحالة على حالات عدة خلف الكواليس، مع التحقق من أن عدد الخوادم الصحية داخل موازن الحمل يتجاوز حدًا معينًا، ومن ثم استخدام وحدة تحكم واحدة لعقدة واحدة تُستخدم في سجل DNS. هذا الأسلوب يمنحك مرونة أكبر في إدارة حالات تطبيقك بطريقة منظمة ومنسقة.
باستخدام هذه الحلول، يمكنك مراقبة تطبيقك بشكل جيد والحفاظ على استمراريته بدون الاعتماد على فحوصات عامة من الإنترنت. اختر الحل الأنسب لطبيعة بيئتك واحتياجاتك لضمان أداء مستقر وآمن.
