
AWS Load Balancer چیست؟ AWS Load Balancer درخواستهای ورودی کاربران را دریافت کرده و بین چندین هدف ثبتشده مانند EC2 Instances در مناطق دسترسی مختلف توزیع میکند. قابلیت AWS Application Load Balancer این امکان را به توسعهدهندگان میدهد که ترافیک ورودی در AWS Public Cloud را بین کاربران نهایی و اپلیکیشنها هدایت و پیکربندی کنند.
AWS Elastic Load Balancer که بهعنوان یک نقطه تماس واحد برای کاربران عمل میکند، فقط درخواستها را به Instanceهای سالم ارسال کرده و نمونههای ناسالم را شناسایی میکند. هنگامی که یک هدف دوباره عملیاتی شود، الگوریتم AWS Load Balancer مسیریابی ترافیک را به آن از سر میگیرد. Load Balancing یک قابلیت حیاتی در محیطهای کلود است که چندین سرویس وب دارند.
AWS Load Balancer چیست؟
AWS Elastic Load Balancing یاELB بهطور خودکار ترافیک ورودی اپلیکیشنها را بین چندین هدف مانند Containerها، EC2 Instances و IP Addresses در یک یا چند منطقه دسترسی یا Availability Zone توزیع میکند. این ویژگی باعث میشود که ترافیک بین Frontend و Backend بهطور متوازن تقسیمشده و تحمل خطا یا Fault Tolerance و دسترسیپذیری یا Availability اپلیکیشنها افزایش یابد. همچنین،AWS Load Balancer سلامت اهداف ثبتشده را پایش کرده و ترافیک را متناسب با وضعیت آنها هدایت میکند.
معرفی راهکار VMware Cloud on AWS
ویدیوهای بیشتر درباره AWS
انواع AWS Load Balancer
انواع AWS Load Balancer چیست؟ AWS از چهار نوع Load Balancer پشتیبانی میکند:
AWS Classic Load Balancer
AWS Network Load Balancer یا NLB
AWS Application Load Balancer یا ALB
AWS Gateway Load Balancer یا GLB
AWS Classic Load Balancer که یک نسل قدیمیتر از Load Balancerها محسوب میشود، تنها در مواردی که کاربران از EC2-Classic Network استفاده میکنند توصیه میشود. برای سایر کاربران، قابلیتهای AWS Classic Load Balancer را میتوان با AWS Network Load Balancer یاNLB ، AWS Application Load Balancerیا ALB جایگزین کرد.
بیشتر بخوانید: بررسی 10 روش مناسب برای پشتیانگیری AWS – قسمت اول
AWS Gateway Load Balancer برخلاف دیگر انواع AWS Load Balancer، ترافیک را بین چندین هدف توزیع نمیکند. این ویژگی، یکی از مهمترین تفاوتهای آن برای اکثر کاربران محسوب میشود.
مقایسه AWS Load Balancerها
AWS Classic Load Balancer: این Load Balancer ساده، هم در سطح درخواست و هم در سطح اتصال عمل میکند و در ابتدا برای EC2 Instances کلاسیک مورد استفاده قرار میگرفت. یکی از بزرگترین محدودیتهای آن این است که از قابلیتهایی مانند مسیریابی بر اساس مسیر یا Path-Based و هاست یا Host-Based پشتیبانی نمیکند. با این حال، یک Load Balancer بهدرستی پیکربندیشده میتواند با توزیع بار میان سرورها، بهرهوری و عملکرد سیستم را بهبود بخشد.
AWS Application Load Balancer چست: ALB یا Application Load Balancer یک Load Balancer لایه ۷ مدل OSI است که بستههای شبکه را بر اساس محتوای آنها به سرویسهای مختلف Backend ارسال میکند. در مقایسه با AWS Classic Load Balancer که برای هر سرویس باید جداگانه اجرا شود،AWS Application Load Balancer امکان Load Balancing لایه ۷ را فراهم کرده و میتواند ترافیک شبکه چندین سرویس را متوازن کند. Load Balancer نسل جدید، بهصورت بومی از پروتکلهای Websocket و HTTP/2 پشتیبانی میکند.
Websocket به توسعهدهندگان این امکان را میدهد که مصرف انرژی را کاهش داده و ارتباطات TCP پایدار بین کلاینت و سرور را برقرار کنند.
مقایسه AWS Classic Load Balancer با AWS Application Load Balancer
AWS Application Load Balancer عملکرد بهتری دارد و ویژگیهای بیشتری نسبت به Classic Load Balancer ارائه میدهد، از جمله:
- پشتیبانی از ثبت IP Address بهعنوان Target
- مسیریابی بر اساس مسیر یا Path-Basedو هاست یا Host-Based
- اجرای Lambda Functionها برای پاسخگویی به درخواستهای HTTP(S)
- AWS WAF Load Balancer
- پشتیبانی از SNI
- بهینهسازی عملکردContainerها با امکان Load Balancing بین چندین پورت
AWS Network Load Balancer یا NLB
AWS توصیه میکند که در صورتی که اپلیکیشن به Static IP و عملکرد بسیار بالا نیاز دارد، از AWS Network Load NLB یاBalancer استفاده شود. در مقایسه AWS Application Load Balancer Vs Network Load Balancer، نوع NLB برای مدیریت ترافیک با الگوهای ناپایدار و دارای نوسان زیاد و همچنین بارکاری با تغییرات سریع بهینه شده است.
بیشتر بخوانید: کمک AWS برای پیشرفت پلتفرم هوش مصنوعی ONNX
عملکرد NLB
NLB دارای توان عملیاتی یا Throughputبسیار بالایی است و میتواند میلیونها درخواست را در هر ثانیه پردازش کند. این ویژگی باعث میشود که Network Load Balancer برای دستیابی به عملکرد شبکهای فوقالعاده بالا و مدیریت بارکاریهای متغیر و ناگهانی در لایهی انتقال یا Transport Layer گزینهی بهتری باشد.
NLB همچنین از مشکلات مربوط به Caching در DNS جلوگیری کرده و با سیاستهای امنیتی فایروال کاربران سازگاری دارد، زیرا از آدرسهای IP استاتیک و مقاوم یا Resilient استفاده میکند. علاوه بر این، AWS Load Balancer TLS Termination فقط با NLB امکانپذیر است.
نحوهی کار AWS Load Balancer
AWS Load Balancer دسترسیپذیری یا Availability اپلیکیشن را افزایش میدهد و بهعنوان یک نقطهی تماس واحد برای کاربران عمل میکند. کاربران میتوانند بدون ایجاد اختلال در جریان کلی درخواستهای اپلیکیشن، Instanceها را به Load Balancer اضافه یا حذف کنند. AWS Elastic Load Balancing متناسب با نوسانات ترافیکی اپلیکیشن، بهصورت خودکار مقیاسپذیر یا Scalable است و میتواند بیشتر بارکاری را مدیریت کند.
مراحل کار
کاربران یک یا چند Listener به Load Balancer اضافه میکنند. هر Listener از پورت و پروتکل پیکربندیشده برای بررسی درخواستهای اتصال استفاده کرده و درخواستها را از طریق همان پورت و پروتکل به Instanceهای ثبتشده ارسال میکند.
Health Checkها تضمین میکنند که AWS Load Balancer فقط درخواستها را به Instanceهای سالم ارسال کند. بهصورت پیشفرض، AWS Load Balancer ترافیک را بهطور مساوی بین تمام Availability Zoneهای فعال توزیع میکند.
برای بهبود Fault Tolerance، توصیه میشود که تعداد تقریبی یکسانی از Instanceها در تمامAvailability Zoneهای فعال نگه داشته شوند. همچنین، میتوان Cross-Zone Load Balancing را فعال کرد تا ترافیک میان تمام Instanceهای ثبتشده بهطور یکنواخت توزیع شود.
موارد مورد اهمیت در AWS Application Load Balancer چیست
- فعالسازی یک Availability Zone، یکLoad Balancer Node را در آن منطقه ایجاد میکند.
- اگر یک Availability Zone فعال نباشد، اهداف ثبتشده در آن ترافیکی دریافت نخواهند کرد.
- AWS Application Load Balancer حداقل به دو منطقه در دسترس فعال نیاز دارد تا ترافیک را بهصورت مستمر هدایت کند.
- هدفهایی که در یک Availability Zone غیرفعال قرار دارند، همچنان در AWS Load Balancer ثبت میمانند، اما ترافیکی دریافت نخواهند کرد.
ویژگیها و مزایای AWS Load Balancer
AWS Load Balancer برای تضمین انعطافپذیری منابع و دسترسیپذیری بالا طراحی شده است. برخی از مزایای کلیدی عبارتاند از:
دسترسیپذیری بالا و توزیع ترافیک وبسایت میان چندین مقصد یا هدف.
تنظیم خودکار بدون نیاز به مداخلهی دستی، متناسب با تغییرات ترافیکی وبسایت.
رمزگشایی SSL/TLS و احراز هویت کاربران برای امنیت بالا.
Hybrid Load Balancing جهت کمک به مهاجرت منابع کلود
نظارت و ممیزی مداوم برای افزایش دیدپذیری اپلیکیشنها.
پشتیبانی از AWS Certificate Manager برای مدیریت سادهی گواهینامههای امنیتی.