تعادل بار با AWS ELB

سلام به همه! این دوره از امروز شروع می شود "AWS برای توسعه دهندگان"، در ارتباط با آن ما یک وبینار موضوعی مربوطه را که به بررسی ELB اختصاص داشت برگزار کردیم. ما به انواع متعادل کننده ها نگاه کردیم و چندین نمونه EC2 را با یک متعادل کننده ایجاد کردیم. ما همچنین نمونه های دیگر استفاده را مطالعه کردیم.

تعادل بار با AWS ELB

پس از گوش دادن به وبینار، شما انجام خواهید داد:

  • درک کنید که AWS Load Balancing چیست.
  • انواع متعادل کننده بار الاستیک و اجزای آن را بشناسید.
  • از AWS ELB در تمرین خود استفاده کنید.

اصلاً چرا باید این را بدانید؟

  • اگر قصد شرکت در امتحانات گواهینامه AWS را دارید مفید است.
  • این یک راه ساده برای توزیع بار بین سرورها است.
  • این یک راه ساده برای افزودن لامبدا به سرویس شما (ALB) است.

یک درس آزاد برگزار کرد ریشات ترگلوف، مهندس سیستم در یک شرکت بازاریابی برای توسعه و پشتیبانی وب سایت.

معرفی

این که یک بار الاستیک متعادل کننده چیست را می توان در نمودار زیر مشاهده کرد که یک مثال ساده را نشان می دهد:

تعادل بار با AWS ELB

Load Balancer درخواست ها را می پذیرد و آنها را در بین نمونه ها توزیع می کند. ما یک نمونه جداگانه داریم، توابع Lambda و یک گروه AutoScaling (گروهی از سرورها) وجود دارد.

انواع AWS ELB

1. بیایید به انواع اصلی نگاه کنیم:

متعادل کننده بار کلاسیک. اولین بار متعادل کننده از AWS، بر روی لایه 4 و لایه 7 OSI کار می کند و از HTTP، HTTPS، TCP و SSL پشتیبانی می کند. تعادل بار اولیه را در چندین نمونه EC2 آمازون فراهم می کند و در هر دو سطح درخواست و اتصال کار می کند. بیایید آن را باز کنیم (با رنگ خاکستری برجسته شده است):

تعادل بار با AWS ELB

این متعادل کننده قدیمی در نظر گرفته می شود، بنابراین فقط در موارد خاص استفاده از آن توصیه می شود. به عنوان مثال، برای برنامه هایی که در شبکه EC2-Classic ساخته شده اند. در اصل، هیچ کس ما را از ایجاد آن باز نمی دارد:

تعادل بار با AWS ELB

2. شبکه Load Balancer. مناسب برای بارهای سنگین، در لایه OSI 4 کار می کند (قابل استفاده در EKS و ECS)، TCP، UDP و TLS پشتیبانی می شوند.

Network Load Balancer ترافیک را به سمت اهداف در VPC آمازون هدایت می کند و قادر است میلیون ها درخواست را در ثانیه با تأخیر بسیار کم پردازش کند. علاوه بر این، برای مدیریت الگوهای ترافیکی با بارهای ناگهانی و متغیر بهینه شده است.

3. Application Load Balancer. در لایه 7 کار می کند، از لامبدا پشتیبانی می کند، قوانین سطح سرصفحه و مسیر را پشتیبانی می کند، از HTTP و HTTPS پشتیبانی می کند.
مسیریابی درخواست پیشرفته را با تمرکز بر ارائه برنامه های کاربردی ساخته شده بر اساس معماری های مدرن، از جمله میکروسرویس ها و کانتینرها، ارائه می دهد. بر اساس محتوای درخواست، ترافیک را به سمت اهداف در آمازون VPC هدایت می کند.

برای بسیاری از کاربران، Application Load Balancer اولین انتخاب برای جایگزینی Classic Load Balancer بود، زیرا TCP به اندازه HTTP رایج نیست.

بیایید آن را نیز ایجاد کنیم، در نتیجه از قبل دو متعادل کننده بار خواهیم داشت:

تعادل بار با AWS ELB

اجزای تعادل بار

اجزای تعادل بار مشترک (مشترک برای همه متعادل کننده ها):

  • به سیاست ورود به سیستم دسترسی پیدا کنید

- گزارش های دسترسی ELB شما. برای انجام تنظیمات، می‌توانید به توضیحات بروید و دکمه «ویرایش ویژگی‌ها» را انتخاب کنید:

تعادل بار با AWS ELB

سپس S3Bucket - Amazon object storage را مشخص می کنیم:

تعادل بار با AWS ELB

  • طرح

- متعادل کننده داخلی یا خارجی نکته این است که آیا LoadBalancer شما باید آدرس های خارجی را دریافت کند تا از بیرون قابل دسترسی باشد یا می تواند متعادل کننده بار داخلی شما باشد.

  • گروههای امنیتی

- کنترل دسترسی به متعادل کننده. در اصل این یک فایروال سطح بالا است.

تعادل بار با AWS ELB

تعادل بار با AWS ELB

  • زیرشبکه ها

- زیر شبکه های داخل VPC شما (و بر این اساس، منطقه در دسترس بودن). زیرشبکه ها در حین ایجاد مشخص می شوند. اگر VPC ها بر اساس منطقه محدود می شوند، زیرشبکه ها توسط مناطق در دسترس محدود می شوند. هنگام ایجاد یک Load Balancer، بهتر است آن را در حداقل دو زیرشبکه ایجاد کنید (در صورت بروز مشکل در یک منطقه دسترسی کمک می کند).

  • شنوندگان

- پروتکل های متعادل کننده شما همانطور که قبلاً ذکر شد، برای Load Balancer کلاسیک می تواند HTTP، HTTPS، TCP و SSL، برای Network Load Balancer - TCP، UDP و TLS، برای Application Load Balancer - HTTP و HTTPS باشد.

مثال برای متعادل کننده بار کلاسیک:

تعادل بار با AWS ELB

اما در Application Load Balancer ما یک رابط کمی متفاوت و منطق کلی متفاوت می بینیم:

تعادل بار با AWS ELB

اجزای Load Balancer v2 (ALB و NLB)

اکنون بیایید نگاهی دقیق‌تر به متعادل‌کننده‌های نسخه ۲ بیندازیم Application Load Balancer و Network Load Balancer. این متعادل کننده ها ویژگی های اجزای خاص خود را دارند. به عنوان مثال، مفهومی مانند گروه های هدف ظاهر شد - نمونه ها (و توابع). به لطف این مؤلفه، ما این فرصت را داریم که مشخص کنیم می خواهیم ترافیک را به کدام یک از گروه های هدف هدایت کنیم.

تعادل بار با AWS ELB

تعادل بار با AWS ELB

به زبان ساده، در Target Groups مواردی را مشخص می‌کنیم که ترافیک در آنجا بیاید. اگر در همان Load Balancer کلاسیک بلافاصله شدت را به متعادل کننده متصل کنید، در Application Load Balancer ابتدا:

  • ایجاد یک بار متعادل کننده؛
  • ایجاد یک گروه هدف؛
  • مستقیم از طریق پورت های مورد نیاز یا قوانین Load Balancer به گروه های مورد نیاز.
  • در گروه های هدف شما نمونه هایی را اختصاص می دهید.

این منطق عملیاتی ممکن است پیچیده تر به نظر برسد، اما در واقع راحت تر است.

جزء بعدی است قوانین شنونده (قوانین مسیریابی). این فقط برای Application Load Balancer صدق می کند. اگر در Network Load Balancer به سادگی یک Linder ایجاد کنید و ترافیک را به یک گروه هدف خاص ارسال کند، در Application Load Balancer همه چیز سرگرم کننده تر و راحت تر.

تعادل بار با AWS ELB

حالا بیایید چند کلمه در مورد مؤلفه بعدی بگوییم - IP الاستیک (آدرس های ثابت برای NLB). اگر قوانین مسیریابی Liener فقط بر Application Load Balancer تأثیر می‌گذارد، Elastic IP فقط بر روی Network Load Balancer تأثیر می‌گذارد.

بیایید یک Network Load Balancer ایجاد کنیم:

تعادل بار با AWS ELB

تعادل بار با AWS ELB

و درست در طول فرآیند ایجاد، خواهیم دید که به ما این فرصت داده می شود تا Elastic 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 توزیع خودکار ترافیک ورودی را در چندین هدف (کانتینرها، نمونه های آمازون EC2، آدرس های IP و توابع لامبدا) فراهم می کند. ELB قادر است ترافیک را با بارهای مختلف هم در یک منطقه در دسترس و هم در چندین منطقه در دسترس توزیع کند. کاربر می تواند از بین سه نوع متعادل کننده انتخاب کند که در دسترس بودن بالا، مقیاس خودکار و محافظت خوب را ارائه می دهند. همه اینها برای اطمینان از تحمل خطا در برنامه های شما مهم است.

امتیازات اصلی:

  • در دسترس بودن بالا. قرارداد خدمات 99,99٪ در دسترس بودن را برای متعادل کننده بار فرض می کند. به عنوان مثال، چندین منطقه دسترسی تضمین می کند که ترافیک فقط توسط اشیاء سالم پردازش می شود. در واقع، می‌توانید بار را در کل منطقه متعادل کنید و ترافیک را به سمت اهداف سالم در مناطق مختلف در دسترس هدایت کنید.
  • امنیت. ELB با آمازون VPC کار می کند و قابلیت های امنیتی مختلفی را ارائه می دهد - مدیریت گواهی یکپارچه، احراز هویت کاربر و رمزگشایی SSL/TLS. همه با هم مدیریت متمرکز و انعطاف پذیر تنظیمات TLS را فراهم می کند.
  • قابلیت ارتجاعی. ELB می تواند تغییرات ناگهانی در ترافیک شبکه را مدیریت کند. و در صورت تغییر بار، بدون نیاز به مداخله دستی، یکپارچگی عمیق با مقیاس خودکار به برنامه منابع کافی می دهد.
  • انعطاف پذیری. می توانید از آدرس های IP برای هدایت درخواست ها به اهداف برنامه های خود استفاده کنید. این انعطاف‌پذیری را هنگام مجازی‌سازی برنامه‌های هدف فراهم می‌کند، بنابراین توانایی میزبانی چندین برنامه در یک نمونه را می‌دهد. از آنجایی که برنامه‌ها می‌توانند از یک پورت شبکه استفاده کنند و دارای گروه‌های امنیتی جداگانه باشند، ارتباط بین برنامه‌ها زمانی ساده‌تر می‌شود که مثلاً یک معماری مبتنی بر میکروسرویس داشته باشیم.
  • نظارت و ممیزی. با استفاده از ویژگی‌های آمازون CloudWatch می‌توانید برنامه‌ها را در زمان واقعی نظارت کنید. ما در مورد معیارها، گزارش ها، ردیابی درخواست صحبت می کنیم. به عبارت ساده، شما قادر خواهید بود مشکلات را شناسایی کنید و گلوگاه های عملکرد را به طور کاملا دقیق مشخص کنید.
  • متعادل کننده بار هیبریدی. توانایی بارگذاری تعادل بین منابع داخلی و AWS با استفاده از متعادل کننده بار یکسان، انتقال یا گسترش برنامه های کاربردی در محل به ابر را آسان می کند. مدیریت خرابی نیز با استفاده از ابر ساده شده است.

اگر به جزئیات علاقه دارید، در اینجا چند پیوند مفید دیگر از وب سایت رسمی آمازون آورده شده است:

  1. تعادل بار الاستیک.
  2. قابلیت تعادل بار الاستیک.

منبع: www.habr.com

اضافه کردن نظر