موازنة الحمل مع AWS ELB

أهلاً بكم! تبدأ الدورة اليوم "AWS للمطورين"، فيما يتعلق بذلك عقدنا ندوة عبر الإنترنت موضوعية مقابلة مخصصة لمراجعة ELB. لقد نظرنا إلى أنواع الموازنات وأنشأنا العديد من مثيلات EC2 باستخدام الموازن. ودرس أيضًا أمثلة أخرى للاستخدام.

موازنة الحمل مع AWS ELB

بعد الاستماع إلى الندوة، سوف تفعلها:

  • فهم ماهية AWS Load Balancing؛
  • التعرف على أنواع Elastic Load Balancer ومكوناته؛
  • استخدم AWS ELB في ممارستك.

لماذا تعرف هذا حتى:

  • مفيد إذا كنت تخطط لإجراء اختبارات شهادة AWS؛
  • هذه طريقة سهلة لتوزيع الحمل بين الخوادم؛
  • إنها طريقة سهلة لإضافة Lambda إلى خدمتك (ALB).

أجرى درسا مفتوحا ريشات تيريجلوف، مهندس نظم في شركة تسويق لتطوير ودعم المواقع.

مقدمة

ما هو Elastic Load Balancer الذي يمكن رؤيته في الرسم البياني أدناه، حيث يتم تقديم أبسط مثال:

موازنة الحمل مع AWS ELB

يقبل Load Balancer الطلبات ويوزعها بين المثيلات. لدينا مثيل واحد منفصل، ولدينا وظائف Lambda، ولدينا مجموعة AutoScaling (مجموعة من الخوادم).

أنواع AWS ELB

1. النظر في الأنواع الرئيسية:

موازن الأحمال الكلاسيكية. أول موازن تحميل من AWS، يعمل على الطبقة الرابعة والسابعة من OSI، ويتم دعم HTTP وHTTPS وTCP وSSL. فهو يوفر موازنة تحميل أساسية عبر مثيلات Amazon EC4 المتعددة ويعمل على مستوى الطلب والاتصال. لنفتحه (مظلل باللون الرمادي):

موازنة الحمل مع AWS ELB

يعتبر هذا الموازن قديما، لذلك يوصى باستخدامه فقط في حالات معينة. على سبيل المثال، للتطبيقات التي تم إنشاؤها على شبكة EC2‑Classic. من حيث المبدأ، لا أحد يزعجنا بإنشائه:

موازنة الحمل مع AWS ELB

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.

لنقم بإنشائه أيضًا، ونتيجة لذلك سيكون لدينا بالفعل موازنات تحميل:

موازنة الحمل مع AWS ELB

مكونات موازنة التحميل

مكونات موازنة الحمل المشتركة (متأصلة في جميع الموازنات):

  • سياسة تسجيل الوصول

- سجلات وصول ELB الخاصة بك. لضبط الإعدادات، يمكنك الانتقال إلى الوصف وتحديد الزر "تحرير السمات":

موازنة الحمل مع AWS ELB

ثم نحدد S3Bucket - تخزين كائنات Amazon:

موازنة الحمل مع AWS ELB

  • مخطط

- موازن داخلي أو خارجي . النقطة المهمة هي ما إذا كان LoadBalancer الخاص بك يحتاج إلى الحصول على عناوين خارجية حتى يمكن الوصول إليه من الخارج، أو يمكن أن يكون موازن التحميل الداخلي الخاص بك؛

  • مجموعات الأمان

— التحكم في الوصول إلى الموازن. في الواقع، هذا جدار حماية عالي المستوى.

موازنة الحمل مع AWS ELB

موازنة الحمل مع AWS ELB

  • الشبكات الفرعية

- الشبكات الفرعية داخل VPC الخاص بك (على التوالي، ومناطق التوفر). يتم تحديد الشبكات الفرعية عند الإنشاء. في حين أن VPCs محدودة حسب المنطقة، فإن الشبكات الفرعية مقيدة بمناطق التوفر. عندما تقوم بإنشاء Load Balancer، فمن الأفضل إنشائه على شبكتين فرعيتين على الأقل (يساعد ذلك في حالة وجود مشكلات في إحدى مناطق توافر الخدمات)؛

  • المستمعين

- بروتوكولات الموازن الخاصة بك. كما ذكرنا سابقًا، بالنسبة إلى Classic Load Balancer، يمكن أن يكون HTTP وHTTPS وTCP وSSL، وبالنسبة إلى Network Load Balancer يمكن أن يكون TCP وUDP وTLS، وبالنسبة إلى Application Load Balancer يمكن أن يكون HTTP وHTTPS.

مثال لموازن التحميل الكلاسيكي:

موازنة الحمل مع AWS ELB

لكن في Application Load Balancer نرى واجهة مختلفة قليلاً ومنطقًا مختلفًا بشكل عام:

موازنة الحمل مع AWS ELB

مكونات الإصدار الثاني من موازن التحميل (ALB وNLB)

الآن دعونا نلقي نظرة فاحصة على موازنات الإصدار الثاني من Application Load Balancer وNetwork Load Balancer. هذه الموازنات لها ميزات المكونات الخاصة بها. على سبيل المثال، كان هناك شيء مثل المجموعات المستهدفة - الحالات (والوظائف). بفضل هذا المكون، لدينا الفرصة لتحديد المجموعات المستهدفة التي نريد إرسال حركة المرور إليها.

موازنة الحمل مع AWS ELB

موازنة الحمل مع AWS ELB

بعبارات بسيطة، في "المجموعات المستهدفة"، نحدد الحالات التي ستأتي فيها حركة المرور. إذا قمت في نفس Classic Load Balancer بتوصيل المكثفات بالموازن على الفور، فعندئذٍ في Application Load Balancer عليك أولاً:

  • إنشاء موازن التحميل؛
  • إنشاء مجموعة مستهدفة؛
  • مباشرة من خلال المنافذ المطلوبة أو قواعد موازن التحميل إلى المجموعات المستهدفة المطلوبة؛
  • تعيين مثيلات في المجموعات المستهدفة.

قد يبدو منطق العمل هذا أكثر تعقيدًا، لكنه في الواقع أكثر ملاءمة.

المكون التالي هو قواعد المستمع (قواعد التوجيه). ينطبق هذا بالفعل على Application Load Balancer فقط. إذا قمت ببساطة بإنشاء مستمع في Network Load Balancer، وأرسل حركة المرور إلى مجموعة مستهدفة محددة، فكل شيء في Application Load Balancer هو كل شيء أكثر متعة وأكثر راحة.

موازنة الحمل مع AWS ELB

الآن دعنا نقول بضع كلمات عن المكون التالي - مرونة IP (عناوين ثابتة لـ NLB). إذا كانت قواعد توجيه قواعد المستمع تتعلق فقط بموازن تحميل التطبيق، فإن عنوان IP المرن يتعلق بموازن تحميل الشبكة فقط.

لنقم بإنشاء موازن تحميل الشبكة:

موازنة الحمل مع AWS ELB

موازنة الحمل مع AWS ELB

وفي عملية الإنشاء فقط، سنرى أنه تم منحنا الفرصة لاختيار عنوان IP مرن:

موازنة الحمل مع AWS ELB

يوفر Elastic IP عنوان IP واحدًا يمكن ربطه بمثيلات EC2 المختلفة مع مرور الوقت. إذا كان مثيل EC2 يحتوي على عنوان IP مرن وتم إنهاء هذا المثيل أو إيقافه، فيمكنك على الفور ربط مثيل EC2 جديد بعنوان IP مرن. ومع ذلك، لن يتعطل تطبيقك الحالي، حيث ترى التطبيقات نفس عنوان IP حتى لو تغير EC2 الحقيقي.

ها هو حالة مستخدم أخرى حول موضوع سبب الحاجة إلى عنوان IP المرن. انظر، نحن نرى 3 عناوين IP، لكنها لن تبقى هنا إلى الأبد:

موازنة الحمل مع AWS ELB

تقوم أمازون بتغييرها بمرور الوقت، ربما كل 60 ثانية (ولكن بشكل أقل في الممارسة العملية بالطبع). وهذا يعني أن عناوين IP يمكن أن تتغير. وفي حالة Network Load Balancer، يمكنك فقط ربط عنوان IP وتحديده في القواعد والسياسات وما إلى ذلك.

موازنة الحمل مع AWS ELB

استخلاص النتائج

تقوم ELB تلقائيًا بتوزيع حركة المرور الواردة على أهداف متعددة (الحاويات ومثيلات Amazon EC2 وعناوين IP ووظائف Lambda). ELB قادر على توزيع حركة المرور المتقلبة داخل منطقة توافر خدمات واحدة أو عبر مناطق توافر خدمات متعددة. يمكن للمستخدم الاختيار من بين ثلاثة أنواع من الموازنات التي توفر توفرًا عاليًا وقياسًا تلقائيًا وحماية جيدة. كل هذه الأمور مهمة لضمان تحمل الأخطاء في تطبيقاتك.

المزايا الرئيسية:

  • توافر عالية. تفترض اتفاقية الخدمة توفرًا بنسبة 99,99% لموازن التحميل. على سبيل المثال، تضمن مناطق التوفر المتعددة معالجة حركة المرور فقط بواسطة الكيانات السليمة. في واقع الأمر، من الممكن موازنة الحمل في جميع أنحاء المنطقة عن طريق إعادة توجيه حركة المرور إلى أهداف صحية في مناطق توافر مختلفة؛
  • سلامة. تعمل ELB مع Amazon VPC لتوفير مجموعة متنوعة من ميزات الأمان، بما في ذلك إدارة الشهادات المتكاملة ومصادقة المستخدم وفك تشفير SSL/TLS. يوفر كل ذلك معًا إدارة مركزية ومرنة لإعدادات TLS؛
  • مرونة. يمكن لـ ELB التعامل مع التغييرات المفاجئة في حركة مرور الشبكة. والتكامل العميق مع Auto Scaling يمنح التطبيق موارد كافية إذا تغير الحمل، ولم يكن التدخل اليدوي مطلوبًا؛
  • مرونة. يمكنك استخدام عناوين IP لتوجيه الطلبات إلى أهداف تطبيقك. وهذا يوفر المرونة الافتراضية للتطبيقات المستهدفة، مما يسمح باستضافة تطبيقات متعددة على نفس المثيل. نظرًا لأن التطبيقات يمكنها استخدام منفذ شبكة واحد ولديها مجموعات أمان منفصلة، ​​يتم تبسيط الاتصال بين التطبيقات عندما يكون لدينا بنية تعتمد على الخدمات الصغيرة على سبيل المثال؛
  • المراقبة والتدقيق. يمكنك مراقبة التطبيقات في الوقت الفعلي باستخدام ميزات Amazon CloudWatch. نحن نتحدث عن المقاييس والسجلات وتتبع الطلب. بعبارات بسيطة، سوف تكون قادرًا على تحديد المشكلات وتحديد اختناقات الأداء بدقة تامة؛
  • موازنة الحمل الهجين. إن القدرة على تحميل التوازن بين الموارد المحلية وAWS باستخدام نفس موازن التحميل تجعل من السهل ترحيل التطبيقات المحلية أو توسيعها إلى السحابة. تم أيضًا تبسيط عملية تجاوز الفشل باستخدام السحابة.

إذا كنت مهتمًا بالتفاصيل، فإليك بعض الروابط المفيدة من موقع أمازون الرسمي:

  1. موازنة تحميل مرنة.
  2. ميزات موازنة الحمل المرنة.

المصدر: www.habr.com

إضافة تعليق