سب کو سلام! کورس آج سے شروع ہو رہا ہے۔
- سمجھیں کہ AWS لوڈ بیلنس کیا ہے؛
- لچکدار لوڈ بیلنسر اور اس کے اجزاء کی اقسام جانیں۔
- اپنی مشق میں AWS ELB استعمال کریں۔
آپ کو یہ سب جاننے کی ضرورت کیوں ہے؟
- مفید ہے اگر آپ AWS سرٹیفیکیشن امتحانات دینے کا ارادہ کر رہے ہیں۔
- یہ سرورز کے درمیان بوجھ کو تقسیم کرنے کا ایک آسان طریقہ ہے۔
- لیمبڈا کو اپنی سروس (ALB) میں شامل کرنے کا یہ ایک آسان طریقہ ہے۔
کھلے سبق کا انعقاد کیا۔
تعارف
لچکدار لوڈ بیلنسر کیا ہے اسے نیچے دیے گئے خاکے میں دیکھا جا سکتا ہے، جو ایک سادہ سی مثال دکھاتا ہے:
لوڈ بیلنسر درخواستوں کو قبول کرتا ہے اور انہیں مختلف مواقع پر تقسیم کرتا ہے۔ ہمارے پاس ایک الگ مثال ہے، لیمبڈا فنکشنز ہیں اور ایک آٹو اسکیلنگ گروپ (سروروں کا ایک گروپ) ہے۔
AWS ELB کی اقسام
1. آئیے اہم اقسام کو دیکھیں:
کلاسیکی لوڈ بیلنسر۔ AWS کا پہلا لوڈ بیلنس، OSI Layer 4 اور Layer 7 دونوں پر کام کرتا ہے، HTTP، HTTPS، TCP اور SSL کو سپورٹ کرتا ہے۔ یہ متعدد Amazon EC2 مثالوں میں بنیادی بوجھ کا توازن فراہم کرتا ہے اور درخواست اور کنکشن دونوں سطحوں پر کام کرتا ہے۔ آئیے اسے کھولیں (گرے رنگ میں نمایاں کیا گیا):
اس بیلنس کو پرانا سمجھا جاتا ہے، اس لیے اسے صرف بعض صورتوں میں استعمال کرنے کی سفارش کی جاتی ہے۔ مثال کے طور پر، ان ایپلیکیشنز کے لیے جو EC2-Classic نیٹ ورک پر بنائی گئی تھیں۔ اصولی طور پر، ہمیں اسے بنانے سے کوئی نہیں روک رہا ہے:
2. نیٹ ورک لوڈ بیلنسر۔ بھاری کام کے بوجھ کے لیے موزوں، OSI لیئر 4 پر کام کرتا ہے (EKS اور ECS میں استعمال کیا جا سکتا ہے)، TCP، UDP اور TLS معاون ہیں۔
نیٹ ورک لوڈ بیلنسر ٹریفک کو Amazon VPC میں اہداف تک پہنچاتا ہے اور انتہائی کم تاخیر کے ساتھ فی سیکنڈ لاکھوں درخواستوں پر کارروائی کرنے کے قابل ہے۔ مزید برآں، یہ اچانک اور بدلتے بوجھ کے ساتھ ٹریفک کے نمونوں کو سنبھالنے کے لیے بہتر بنایا گیا ہے۔
3. ایپلیکیشن لوڈ بیلنسر. لیئر 7 پر کام کرتا ہے، لیمبڈا سپورٹ رکھتا ہے، ہیڈر اور پاتھ لیول رولز کو سپورٹ کرتا ہے، HTTP اور HTTPS کو سپورٹ کرتا ہے۔
مائیکرو سروسز اور کنٹینرز سمیت جدید فن تعمیر پر بنی ایپلی کیشنز کی فراہمی پر توجہ مرکوز کرنے والی ایڈوانس ریکوسٹ روٹنگ فراہم کرتا ہے۔ درخواست کے مواد کی بنیاد پر Amazon VPC میں ٹریفک کو اہداف کی طرف ہدایت کرتا ہے۔
بہت سے صارفین کے لیے، کلاسک لوڈ بیلنسر کو تبدیل کرنے کے لیے ایپلیکیشن لوڈ بیلنسر پہلا انتخاب تھا، کیونکہ TCP HTTP کی طرح عام نہیں ہے۔
آئیے اسے بھی بنائیں، جس کے نتیجے میں ہمارے پاس پہلے سے ہی دو لوڈ بیلنسرز ہوں گے:
لوڈ بیلنس اجزاء
کامن لوڈ بیلنس اجزاء (تمام بیلنسرز کے لیے عام):
- لاگنگ پالیسی تک رسائی حاصل کریں۔
- آپ کے ELB رسائی کے لاگز۔ سیٹنگز بنانے کے لیے، آپ تفصیل پر جا کر "صفات میں ترمیم کریں" بٹن کو منتخب کر سکتے ہیں:
پھر ہم S3Bucket - Amazon آبجیکٹ اسٹوریج کی وضاحت کرتے ہیں:
- منصوبہ
- اندرونی یا بیرونی بیلنسر۔ نکتہ یہ ہے کہ آیا آپ کے LoadBlancer کو باہر سے قابل رسائی ہونے کے لیے بیرونی پتے حاصل کرنے چاہئیں، یا یہ آپ کا اندرونی بوجھ بیلنسر ہو سکتا ہے۔
- سیکورٹی گروپ
- بیلنسر تک رسائی کا کنٹرول۔ بنیادی طور پر یہ ایک اعلیٰ سطحی فائر وال ہے۔
- سبطینٹس
- آپ کے VPC کے اندر ذیلی نیٹ (اور، اس کے مطابق، دستیابی زون)۔ سب نیٹ تخلیق کے دوران بیان کیے گئے ہیں۔ اگر VPCs علاقے کے لحاظ سے محدود ہیں، تو سب نیٹس دستیابی کے زون کے لحاظ سے محدود ہیں۔ لوڈ بیلنسر بناتے وقت، اسے کم از کم دو سب نیٹس میں بنانا بہتر ہے (ایک دستیابی زون کے ساتھ مسائل پیدا ہونے پر مدد ملتی ہے)؛
- سنا
- آپ کا بیلنس پروٹوکول۔ جیسا کہ پہلے ذکر کیا گیا ہے، کلاسک لوڈ بیلنسر کے لیے یہ HTTP، HTTPS، TCP اور SSL ہو سکتا ہے، نیٹ ورک لوڈ بیلنس کے لیے - TCP، UDP اور TLS، ایپلیکیشن لوڈ بیلنسر کے لیے - HTTP اور HTTPS۔
کلاسک لوڈ بیلنسر کی مثال:
لیکن ایپلیکیشن لوڈ بیلنسر میں ہم قدرے مختلف انٹرفیس اور عام طور پر مختلف منطق دیکھتے ہیں:
لوڈ بیلنسر v2 اجزاء (ALB اور NLB)
آئیے اب ورژن 2 بیلنسرز ایپلیکیشن لوڈ بیلنسر اور نیٹ ورک لوڈ بیلنس کو قریب سے دیکھتے ہیں۔ ان بیلنسرز کی اپنی جزوی خصوصیات ہیں۔ مثال کے طور پر، ٹارگٹ گروپس جیسا تصور ظاہر ہوا - مثالیں (اور افعال)۔ اس جزو کی بدولت، ہمارے پاس یہ بتانے کا موقع ہے کہ ہم کس ٹارگٹ گروپس کی طرف ٹریفک بھیجنا چاہتے ہیں۔
آسان الفاظ میں، ٹارگٹ گروپس میں ہم ان مثالوں کی وضاحت کرتے ہیں جہاں ٹریفک آئے گی۔ اگر اسی کلاسک لوڈ بیلنسر میں آپ شدت کو فوری طور پر بیلنسر سے جوڑتے ہیں، تو پھر ایپلیکیشن لوڈ بیلنسر میں آپ سب سے پہلے:
- ایک لوڈ بیلنسر بنائیں؛
- ایک ہدف گروپ بنائیں؛
- مطلوبہ ٹارگٹ گروپس کو مطلوبہ بندرگاہوں یا لوڈ بیلنسر قوانین کے ذریعے براہ راست؛
- ٹارگٹ گروپس میں جو آپ مثالیں تفویض کرتے ہیں۔
یہ آپریٹنگ منطق زیادہ پیچیدہ لگ سکتی ہے، لیکن حقیقت میں یہ زیادہ آسان ہے۔
اگلا جزو ہے۔ سننے والے کے اصول (روٹنگ کے قوانین)۔ یہ صرف ایپلیکیشن لوڈ بیلنسر پر لاگو ہوتا ہے۔ اگر نیٹ ورک لوڈ بیلنسر میں آپ صرف ایک سننے والا بناتے ہیں، اور یہ ٹریفک کو ایک مخصوص ٹارگٹ گروپ کو بھیجتا ہے، تو پھر ایپلیکیشن لوڈ بیلنسر میں سب کچھ
اب اگلے جزو کے بارے میں چند الفاظ کہتے ہیں۔ لچکدار IP (NLB کے لیے جامد پتے)۔ اگر سننے والے کے قواعد روٹنگ کے قواعد صرف ایپلیکیشن لوڈ بیلنسر کو متاثر کرتے ہیں، تو لچکدار IP نے صرف نیٹ ورک لوڈ بیلنسر کو متاثر کیا۔
آئیے ایک نیٹ ورک لوڈ بیلنسر بنائیں:
اور صرف تخلیق کے عمل کے دوران ہم دیکھیں گے کہ ہمیں لچکدار IP کو منتخب کرنے کا موقع دیا گیا ہے:
لچکدار IP ایک واحد IP پتہ فراہم کرتا ہے جو وقت کے ساتھ ساتھ مختلف EC2 مثالوں سے منسلک ہو سکتا ہے۔ اگر کسی EC2 مثال میں لچکدار IP ایڈریس ہے اور اس مثال کو ختم یا روک دیا گیا ہے، تو آپ فوری طور پر ایک نئے EC2 مثال کو لچکدار IP ایڈریس کے ساتھ منسلک کر سکتے ہیں۔ تاہم، آپ کی موجودہ ایپلیکیشن کام کرنا بند نہیں کرے گی، کیونکہ ایپلیکیشنز کو اب بھی وہی IP ایڈریس نظر آتا ہے، چاہے اصلی EC2 بدل گیا ہو۔
یہاں
ایمیزون انہیں وقت کے ساتھ تبدیل کرتا ہے، شاید ہر 60 سیکنڈ میں (لیکن عملی طور پر، یقیناً، کم اکثر)۔ اس کا مطلب ہے کہ IP پتے تبدیل ہو سکتے ہیں۔ اور نیٹ ورک لوڈ بیلنسر کے معاملے میں، آپ صرف ایک IP ایڈریس کو پابند کر سکتے ہیں اور اسے اپنے قواعد، پالیسیوں وغیرہ میں بتا سکتے ہیں۔
نتائج اخذ کریں۔
ELB متعدد اہداف (کنٹینرز، Amazon EC2 مثالوں، IP پتے، اور Lambda فنکشنز) پر آنے والی ٹریفک کی خودکار تقسیم فراہم کرتا ہے۔ ELB ایک واحد دستیابی زون کے اندر اور متعدد دستیابی زونز میں مختلف بوجھ کے ساتھ ٹریفک کو تقسیم کرنے کے قابل ہے۔ صارف تین قسم کے بیلنسرز میں سے انتخاب کر سکتا ہے جو زیادہ دستیابی، آٹو سکیلنگ اور اچھا تحفظ فراہم کرتے ہیں۔ یہ سب کچھ آپ کی درخواستوں کی غلطی برداشت کو یقینی بنانے کے لیے اہم ہے۔
اہم فوائد:
- اچھی فراہمی. سروس کا معاہدہ لوڈ بیلنسر کے لیے 99,99% دستیابی کو فرض کرتا ہے۔ مثال کے طور پر، ایک سے زیادہ دستیابی والے زون اس بات کو یقینی بناتے ہیں کہ ٹریفک صرف صحت مند اشیاء کے ذریعے عمل میں آئے۔ درحقیقت، آپ مختلف دستیابی زونز میں ٹریفک کو صحت مند اہداف کی طرف ری ڈائریکٹ کرتے ہوئے پورے خطے میں بوجھ کو متوازن کر سکتے ہیں۔
- حفاظت. ELB Amazon VPC کے ساتھ کام کرتا ہے، مختلف حفاظتی صلاحیتیں فراہم کرتا ہے - مربوط سرٹیفکیٹ مینجمنٹ، صارف کی تصدیق، اور SSL/TLS ڈکرپشن۔ سبھی مل کر TLS ترتیبات کا مرکزی اور لچکدار انتظام فراہم کرتے ہیں۔
- لچک. ELB نیٹ ورک ٹریفک میں اچانک تبدیلیوں کو سنبھال سکتا ہے۔ اور آٹو اسکیلنگ کے ساتھ گہرا انضمام ایپلی کیشن کو کافی وسائل فراہم کرتا ہے اگر بوجھ بدل جاتا ہے، بغیر دستی مداخلت کی ضرورت۔
- لچک. آپ اپنی ایپلیکیشنز کے اہداف کی درخواستوں کو روٹ کرنے کے لیے IP ایڈریس استعمال کر سکتے ہیں۔ یہ ٹارگٹ ایپلی کیشنز کو ورچوئلائز کرتے وقت لچک فراہم کرتا ہے، اس طرح ایک ہی موقع پر متعدد ایپلی کیشنز کی میزبانی کرنے کی صلاحیت فراہم کرتا ہے۔ چونکہ ایپلی کیشنز ایک ہی نیٹ ورک پورٹ استعمال کر سکتی ہیں اور ان میں علیحدہ سیکورٹی گروپس ہیں، ایپلیکیشنز کے درمیان بات چیت اس وقت آسان ہو جاتی ہے جب ہمارے پاس مائیکرو سروسز پر مبنی فن تعمیر ہوتا ہے۔
- نگرانی اور آڈٹ. آپ Amazon CloudWatch کی خصوصیات کا استعمال کرتے ہوئے حقیقی وقت میں ایپلی کیشنز کی نگرانی کر سکتے ہیں۔ ہم میٹرکس، لاگ، درخواست سے باخبر رہنے کے بارے میں بات کر رہے ہیں۔ آسان الفاظ میں، آپ مسائل کی نشاندہی کر سکیں گے اور کارکردگی کی رکاوٹوں کو بالکل درست طریقے سے نشاندہی کر سکیں گے۔
- ہائبرڈ بوجھ توازن. اسی لوڈ بیلنسر کا استعمال کرتے ہوئے آن پریمیسس وسائل اور AWS کے درمیان بیلنس لوڈ کرنے کی صلاحیت آن پریمیسس ایپلی کیشنز کو کلاؤڈ پر منتقل کرنا یا پھیلانا آسان بناتی ہے۔ کلاؤڈ کا استعمال کرتے ہوئے ناکامی سے نمٹنے کو بھی آسان بنایا گیا ہے۔
اگر آپ تفصیلات میں دلچسپی رکھتے ہیں تو، ایمیزون کی سرکاری ویب سائٹ سے چند مزید مفید لنکس یہ ہیں:
ماخذ: www.habr.com