أهلاً بكم! تبدأ الدورة اليوم
- فهم ماهية AWS Load Balancing؛
- التعرف على أنواع Elastic Load Balancer ومكوناته؛
- استخدم AWS ELB في ممارستك.
لماذا تعرف هذا حتى:
- مفيد إذا كنت تخطط لإجراء اختبارات شهادة AWS؛
- هذه طريقة سهلة لتوزيع الحمل بين الخوادم؛
- إنها طريقة سهلة لإضافة Lambda إلى خدمتك (ALB).
أجرى درسا مفتوحا
مقدمة
ما هو Elastic Load Balancer الذي يمكن رؤيته في الرسم البياني أدناه، حيث يتم تقديم أبسط مثال:
يقبل Load Balancer الطلبات ويوزعها بين المثيلات. لدينا مثيل واحد منفصل، ولدينا وظائف Lambda، ولدينا مجموعة AutoScaling (مجموعة من الخوادم).
أنواع AWS ELB
1. النظر في الأنواع الرئيسية:
موازن الأحمال الكلاسيكية. أول موازن تحميل من AWS، يعمل على الطبقة الرابعة والسابعة من OSI، ويتم دعم HTTP وHTTPS وTCP وSSL. فهو يوفر موازنة تحميل أساسية عبر مثيلات Amazon EC4 المتعددة ويعمل على مستوى الطلب والاتصال. لنفتحه (مظلل باللون الرمادي):
يعتبر هذا الموازن قديما، لذلك يوصى باستخدامه فقط في حالات معينة. على سبيل المثال، للتطبيقات التي تم إنشاؤها على شبكة EC2‑Classic. من حيث المبدأ، لا أحد يزعجنا بإنشائه:
2. موازن تحميل الشبكة. مناسب للتحميل العالي، ويعمل على طبقة OSI 4 (يمكن استخدامه في EKS وECS)، ويدعم TCP وUDP وTLS.
يقوم Network Load Balancer بتوجيه حركة المرور إلى الأهداف في Amazon VPC وهو قادر على التعامل مع ملايين الطلبات في الثانية بزمن وصول منخفض للغاية. بالإضافة إلى ذلك، تم تحسينه للتعامل مع أنماط حركة المرور المفاجئة والمتقلبة.
3. موازن تحميل التطبيق. يعمل في الطبقة 7، ويتمتع بدعم Lambda، ويدعم قواعد مستوى الرأس والمسار، ويدعم HTTP وHTTPS.
يوفر توجيهًا متقدمًا للطلبات يركز على تسليم التطبيقات المبنية على البنى الحديثة، بما في ذلك الخدمات الصغيرة والحاويات. يوجه حركة المرور إلى الأهداف في Amazon VPC بناءً على محتويات الطلب.
بالنسبة للعديد من المستخدمين، حل Application Load Balancer محل Classic Load Balancer في المقام الأول، لأن TCP ليس شائعًا مثل HTTP.
لنقم بإنشائه أيضًا، ونتيجة لذلك سيكون لدينا بالفعل موازنات تحميل:
مكونات موازنة التحميل
مكونات موازنة الحمل المشتركة (متأصلة في جميع الموازنات):
- سياسة تسجيل الوصول
- سجلات وصول ELB الخاصة بك. لضبط الإعدادات، يمكنك الانتقال إلى الوصف وتحديد الزر "تحرير السمات":
ثم نحدد S3Bucket - تخزين كائنات Amazon:
- مخطط
- موازن داخلي أو خارجي . النقطة المهمة هي ما إذا كان LoadBalancer الخاص بك يحتاج إلى الحصول على عناوين خارجية حتى يمكن الوصول إليه من الخارج، أو يمكن أن يكون موازن التحميل الداخلي الخاص بك؛
- مجموعات الأمان
— التحكم في الوصول إلى الموازن. في الواقع، هذا جدار حماية عالي المستوى.
- الشبكات الفرعية
- الشبكات الفرعية داخل VPC الخاص بك (على التوالي، ومناطق التوفر). يتم تحديد الشبكات الفرعية عند الإنشاء. في حين أن VPCs محدودة حسب المنطقة، فإن الشبكات الفرعية مقيدة بمناطق التوفر. عندما تقوم بإنشاء Load Balancer، فمن الأفضل إنشائه على شبكتين فرعيتين على الأقل (يساعد ذلك في حالة وجود مشكلات في إحدى مناطق توافر الخدمات)؛
- المستمعين
- بروتوكولات الموازن الخاصة بك. كما ذكرنا سابقًا، بالنسبة إلى Classic Load Balancer، يمكن أن يكون HTTP وHTTPS وTCP وSSL، وبالنسبة إلى Network Load Balancer يمكن أن يكون TCP وUDP وTLS، وبالنسبة إلى Application Load Balancer يمكن أن يكون HTTP وHTTPS.
مثال لموازن التحميل الكلاسيكي:
لكن في Application Load Balancer نرى واجهة مختلفة قليلاً ومنطقًا مختلفًا بشكل عام:
مكونات الإصدار الثاني من موازن التحميل (ALB وNLB)
الآن دعونا نلقي نظرة فاحصة على موازنات الإصدار الثاني من Application Load Balancer وNetwork Load Balancer. هذه الموازنات لها ميزات المكونات الخاصة بها. على سبيل المثال، كان هناك شيء مثل المجموعات المستهدفة - الحالات (والوظائف). بفضل هذا المكون، لدينا الفرصة لتحديد المجموعات المستهدفة التي نريد إرسال حركة المرور إليها.
بعبارات بسيطة، في "المجموعات المستهدفة"، نحدد الحالات التي ستأتي فيها حركة المرور. إذا قمت في نفس Classic Load Balancer بتوصيل المكثفات بالموازن على الفور، فعندئذٍ في Application Load Balancer عليك أولاً:
- إنشاء موازن التحميل؛
- إنشاء مجموعة مستهدفة؛
- مباشرة من خلال المنافذ المطلوبة أو قواعد موازن التحميل إلى المجموعات المستهدفة المطلوبة؛
- تعيين مثيلات في المجموعات المستهدفة.
قد يبدو منطق العمل هذا أكثر تعقيدًا، لكنه في الواقع أكثر ملاءمة.
المكون التالي هو قواعد المستمع (قواعد التوجيه). ينطبق هذا بالفعل على Application Load Balancer فقط. إذا قمت ببساطة بإنشاء مستمع في Network Load Balancer، وأرسل حركة المرور إلى مجموعة مستهدفة محددة، فكل شيء في Application Load Balancer هو كل شيء
الآن دعنا نقول بضع كلمات عن المكون التالي - مرونة IP (عناوين ثابتة لـ NLB). إذا كانت قواعد توجيه قواعد المستمع تتعلق فقط بموازن تحميل التطبيق، فإن عنوان IP المرن يتعلق بموازن تحميل الشبكة فقط.
لنقم بإنشاء موازن تحميل الشبكة:
وفي عملية الإنشاء فقط، سنرى أنه تم منحنا الفرصة لاختيار عنوان IP مرن:
يوفر Elastic IP عنوان IP واحدًا يمكن ربطه بمثيلات EC2 المختلفة مع مرور الوقت. إذا كان مثيل EC2 يحتوي على عنوان IP مرن وتم إنهاء هذا المثيل أو إيقافه، فيمكنك على الفور ربط مثيل EC2 جديد بعنوان IP مرن. ومع ذلك، لن يتعطل تطبيقك الحالي، حيث ترى التطبيقات نفس عنوان IP حتى لو تغير EC2 الحقيقي.
ها هو
تقوم أمازون بتغييرها بمرور الوقت، ربما كل 60 ثانية (ولكن بشكل أقل في الممارسة العملية بالطبع). وهذا يعني أن عناوين IP يمكن أن تتغير. وفي حالة Network Load Balancer، يمكنك فقط ربط عنوان IP وتحديده في القواعد والسياسات وما إلى ذلك.
استخلاص النتائج
تقوم ELB تلقائيًا بتوزيع حركة المرور الواردة على أهداف متعددة (الحاويات ومثيلات Amazon EC2 وعناوين IP ووظائف Lambda). ELB قادر على توزيع حركة المرور المتقلبة داخل منطقة توافر خدمات واحدة أو عبر مناطق توافر خدمات متعددة. يمكن للمستخدم الاختيار من بين ثلاثة أنواع من الموازنات التي توفر توفرًا عاليًا وقياسًا تلقائيًا وحماية جيدة. كل هذه الأمور مهمة لضمان تحمل الأخطاء في تطبيقاتك.
المزايا الرئيسية:
- توافر عالية. تفترض اتفاقية الخدمة توفرًا بنسبة 99,99% لموازن التحميل. على سبيل المثال، تضمن مناطق التوفر المتعددة معالجة حركة المرور فقط بواسطة الكيانات السليمة. في واقع الأمر، من الممكن موازنة الحمل في جميع أنحاء المنطقة عن طريق إعادة توجيه حركة المرور إلى أهداف صحية في مناطق توافر مختلفة؛
- سلامة. تعمل ELB مع Amazon VPC لتوفير مجموعة متنوعة من ميزات الأمان، بما في ذلك إدارة الشهادات المتكاملة ومصادقة المستخدم وفك تشفير SSL/TLS. يوفر كل ذلك معًا إدارة مركزية ومرنة لإعدادات TLS؛
- مرونة. يمكن لـ ELB التعامل مع التغييرات المفاجئة في حركة مرور الشبكة. والتكامل العميق مع Auto Scaling يمنح التطبيق موارد كافية إذا تغير الحمل، ولم يكن التدخل اليدوي مطلوبًا؛
- مرونة. يمكنك استخدام عناوين IP لتوجيه الطلبات إلى أهداف تطبيقك. وهذا يوفر المرونة الافتراضية للتطبيقات المستهدفة، مما يسمح باستضافة تطبيقات متعددة على نفس المثيل. نظرًا لأن التطبيقات يمكنها استخدام منفذ شبكة واحد ولديها مجموعات أمان منفصلة، يتم تبسيط الاتصال بين التطبيقات عندما يكون لدينا بنية تعتمد على الخدمات الصغيرة على سبيل المثال؛
- المراقبة والتدقيق. يمكنك مراقبة التطبيقات في الوقت الفعلي باستخدام ميزات Amazon CloudWatch. نحن نتحدث عن المقاييس والسجلات وتتبع الطلب. بعبارات بسيطة، سوف تكون قادرًا على تحديد المشكلات وتحديد اختناقات الأداء بدقة تامة؛
- موازنة الحمل الهجين. إن القدرة على تحميل التوازن بين الموارد المحلية وAWS باستخدام نفس موازن التحميل تجعل من السهل ترحيل التطبيقات المحلية أو توسيعها إلى السحابة. تم أيضًا تبسيط عملية تجاوز الفشل باستخدام السحابة.
إذا كنت مهتمًا بالتفاصيل، فإليك بعض الروابط المفيدة من موقع أمازون الرسمي:
المصدر: www.habr.com