برنامه نویسی

AWS Elastic Load Balancer و Auto Scaling Groups

AWS Elastic Load Balancer و Auto Scaling Groups

آموزش خدمات وب آمازون – ELB و ASG

در این آموزش، دو سرویس ضروری AWS را بررسی خواهیم کرد که به ما در مقیاس‌پذیری برنامه ما کمک می‌کنند، ELB (الاستیک بار متعادل کننده) و ASG (گروه‌های مقیاس خودکار).

توجه: اگر با مفهوم مقیاس بندی تازه کار هستید، توصیه می کنم به این مقاله نگاهی بیندازید، جایی که من در مورد مقیاس پذیری صحبت می کنم – https://medium.com/dev-genius/vertical-scaling-vs-horizontal-scaling-cfad0ff2d7bf

معرفی

ابتدا اجازه دهید در مورد اینکه متعادل کننده بار چیست صحبت کنیم.

تعادل بار دستگاه یا نرم‌افزاری است که ترافیک شبکه را بین چندین سرور یا منابع محاسباتی برای بهبود عملکرد، مقیاس‌پذیری، در دسترس بودن و قابلیت اطمینان یک سرویس یا برنامه آنلاین توزیع می‌کند.

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

سناریوی زیر را تصور کنید. شما یک برنامه تجارت الکترونیک دارید و تاریخ‌ها را با ترافیک بیشتری تشخیص می‌دهید (مثلاً می‌تواند جمعه سیاه باشد)، سپس شما و تیمتان تصمیم می‌گیرید چندین نمونه از برنامه خود را در سرورهای مختلف تولید کنید، و مرحله بعدی، چگونه پیش می‌رویم. برای کار با آن استقرار به عنوان یک؟ پاسخ این است، پیاده سازی یک متعادل کننده بار برای توزیع درخواست در بین نمونه های مختلف.

خیلی خوب، اکنون می‌دانیم که متعادل‌کننده بار چیست و چه زمانی می‌توانیم آن را پیاده‌سازی کنیم، اما چگونه می‌توانیم متعادل‌کننده بار را پیاده‌سازی کنیم؟، خدمات، چارچوب‌ها و رویکردهای زیادی برای کار با متعادل‌کننده بار وجود دارد، به عنوان مثال، اگر ما در حال استفاده از ابری مانند AWS می‌توانیم از سرویسی به نام ELB استفاده کنیم که در این آموزش از آن استفاده می‌کنیم.

ELB چیست؟

ELB مخفف “Elastic Load Balancer” است که یک سرویس ابری AWS است که به ما کمک می کند تا یک بار متعادل کننده را در راه حل های خود پیاده سازی کنیم. Elastic Load Balancing (ELB) به طور خودکار ترافیک برنامه ورودی را بین چندین هدف و لوازم مجازی در یک یا چند منطقه در دسترس توزیع می کند.

AWS سه نوع مختلف بار متعادل کننده را ارائه می دهد:

  1. Application Load Balancer

  2. متعادل کننده بار دروازه

  3. متعادل کننده بار شبکه

در این آموزش قصد داریم بر روی گزینه Application load balancer تمرکز کنیم. در تصویر زیر می توانید نحوه عملکرد آن را از منظر کلی مشاهده کنید:

  1. مشتری شما درخواستی را برای درخواست شما ارسال می کند.

  2. شنوندگان در بار متعادل کننده شما درخواست هایی را دریافت می کنند که مطابق با پروتکل و پورتی است که شما پیکربندی کرده اید.

  3. شنونده دریافت کننده درخواست دریافتی را بر اساس قوانینی که شما مشخص کرده اید ارزیابی می کند و در صورت وجود، درخواست را به گروه هدف مناسب هدایت می کند. می‌توانید از شنونده HTTPS برای بارگذاری کار رمزگذاری و رمزگشایی TLS به متعادل‌کننده بار خود استفاده کنید.

  4. اهداف سالم در یک یا چند گروه هدف بر اساس الگوریتم متعادل کننده بار و قوانین مسیریابی که در شنونده مشخص می کنید، ترافیک دریافت می کنند.

1687939595 609 AWS Elastic Load Balancer و Auto Scaling Groups

عملی!… و اجازه دهید با یک مثال شروع کنیم تا نحوه استفاده از ELB را بیاموزیم

برای این آموزش ما نیاز داریم:

دو نمونه EC2 (پیکربندی شده با دسترسی به اینترنت).
— اگر تازه کار هستید و می خواهید نحوه انجام این مرحله را یاد بگیرید، می توانید این آموزش را دنبال کنید https://medium.com/@josueparra2892/tutorial-elastic-compute-cloud-ec2-1d20dd8d64a1

  • یک ELB را برای توزیع ترافیک بین نمونه های EC2 پیکربندی کنید.

ایجاد نمونه های EC2

در زمان ایجاد نمونه خود، باید از تنظیمات زیر استفاده کنید:

  • نوع نمونه می تواند t2.micr باشد.

  • AMI: آمازون لینوکس

  • نمونه شما باید به اینترنت دسترسی داشته باشد.

  • به عنوان بخشی از جزئیات پیشرفته در زمینه داده های کاربر. باید از افزودن خطوط زیر استفاده کنید.
    پیکربندی بالا به ما کمک می کند تا یک سرویس اساسی ایجاد کنیم که آدرس IP نمونه را نمایش می دهد.

    sudo su
    yum update -y
    yum install -y httpd
    systemctl httpd را شروع کنید
    systemctl httpd را فعال کنید
    پژواک”

    ” > /var/www/html/index.html

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

مثال:

1687939595 923 AWS Elastic Load Balancer و Auto Scaling Groups

نمونه 1:

1687939595 760 AWS Elastic Load Balancer و Auto Scaling Groups

نمونه 2:

1687939595 99 AWS Elastic Load Balancer و Auto Scaling Groups

ملاحظات مهم در یک زمان برای ساخت ELB ما

نکات زیر برای درست کارکردن ELB بسیار مهم است

  • VPC باید در نمونه های شما و در پیکربندی ELB شما یکسان باشد

  • شما به حداقل 2 منطقه در دسترس نیاز دارید که هر کدام دارای زیرشبکه های خود با دسترسی به اینترنت هستند

  • نمونه های شما باید در همان VPC پیکربندی شوند

پیکربندی ELB (تعادل بار الاستیک)

1687939595 183 AWS Elastic Load Balancer و Auto Scaling Groups

برای انجام این مرحله ابتدا باید به منوی «تعادل بار» در پانل سمت چپ داخل داشبورد EC2 بروید.

1687939595 536 AWS Elastic Load Balancer و Auto Scaling Groups

سپس بر روی “load Balancer” کلیک کنید، شما را به صفحه زیر هدایت می کند:

1687939595 585 AWS Elastic Load Balancer و Auto Scaling Groups

هنگامی که در آنجا قرار گرفتید، باید بر روی ایجاد “load balancer” کلیک کنید، سپس چیزی شبیه به زیر را مشاهده خواهید کرد:

1687939595 985 AWS Elastic Load Balancer و Auto Scaling Groups

همانطور که قبلاً ذکر کردم که در این آموزش گزینه “Application Load Balancer” را بررسی کنیم، به ما کمک می کند تا درخواست را با استفاده از ELB بین نمونه های EC2 توزیع کنیم.

سپس باید روی ایجاد گزینه اول “Application Load Balancer” کلیک کنید.

بعد از اینکه روی آن کلیک کردید، صفحه پیکربندی را مشاهده خواهید کرد، در آنجا تمام پارامترهای مورد نیاز برای متعادل کننده بار خود را پیکربندی می کنیم.

اولین مرحله ارائه یک نام است و مانند تصویر زیر، دسترسی به اینترنت و گزینه های IPv4 را انتخاب شده نگه می داریم.

1687939595 522 AWS Elastic Load Balancer و Auto Scaling Groups

مرحله بعدی پیکربندی نقشه شبکه است.

در اینجا می خواهیم VPC و مناطق در دسترس را پیکربندی کنیم.

برای VPC می توانید یکی از مواردی را که قبلاً پیکربندی کرده اید انتخاب کنید و سپس AZ و زیرشبکه مربوط به آن را انتخاب کنید.

1687939595 262 AWS Elastic Load Balancer و Auto Scaling Groups

1687939595 703 AWS Elastic Load Balancer و Auto Scaling Groups

گام بعدی پیکربندی گروه امنیتی است، در این مورد، می‌بینیم که یکی به طور پیش‌فرض انتخاب شده است، اما باید یک گروه جدید ایجاد کنیم که فقط توسط ALB (Application Load Balancer) ما استفاده می‌شود. برای انجام این کار باید روی “ایجاد گروه امنیتی جدید” کلیک کنید.

1687939595 697 AWS Elastic Load Balancer و Auto Scaling Groups

1687939595 958 AWS Elastic Load Balancer و Auto Scaling Groups

ما باید قوانین Inbound را اضافه کنیم، می توانید تصویر زیر را به عنوان مثال در نظر بگیرید.

1687939595 744 AWS Elastic Load Balancer و Auto Scaling Groups

برای آماده سازی تنظیمات گروه امنیتی شما کافی است روی “ایجاد گروه امنیتی” کلیک کنید.

1687939595 44 AWS Elastic Load Balancer و Auto Scaling Groups

به صفحه پیکربندی load balancer برگردید و گروه امنیتی جدید خود را به عنوان بخشی از تنظیمات آن انتخاب کنید.

1687939595 524 AWS Elastic Load Balancer و Auto Scaling Groups

1687939595 904 AWS Elastic Load Balancer و Auto Scaling Groups

سپس مرحله زیر یکی از مهم‌ترین مراحل است زیرا در آنجا تمام نمونه‌هایی را که توسط load balancer استفاده می‌شوند پیکربندی می‌کنیم.

برای پیکربندی “شنونده و مسیریابی” چند مرحله را دنبال می کنیم.

1687939595 603 AWS Elastic Load Balancer و Auto Scaling Groups

اولین مورد ایجاد یک “گروه هدف” جدید است که برای نمونه پیکربندی شده است، می توانید تصاویر زیر را به عنوان مرجع انتخاب کنید:

1687939595 753 AWS Elastic Load Balancer و Auto Scaling Groups

1687939595 294 AWS Elastic Load Balancer و Auto Scaling Groups

همانطور که می بینید ما فقط آن مقادیر را تغییر دادیم، سپس می توانید روی “بعدی” کلیک کنید تا به افزودن نمونه ها ادامه دهید.

1687939595 68 AWS Elastic Load Balancer و Auto Scaling Groups

پس از انتخاب روی شامل به عنوان در انتظار کلیک کنید

1687939596 461 AWS Elastic Load Balancer و Auto Scaling Groups

سپس بر روی ایجاد کلیک کنید.

1687939596 170 AWS Elastic Load Balancer و Auto Scaling Groups

پس از پیکربندی گروه هدف، باید به صفحه پیکربندی load balancer برگردید و گروه هدف ایجاد شده را انتخاب کنید.

1687939596 874 AWS Elastic Load Balancer و Auto Scaling Groups

برای دیدن خلاصه به پایین بروید و سپس روی ایجاد کلیک کنید.

1687939596 582 AWS Elastic Load Balancer و Auto Scaling Groups

1687939596 281 AWS Elastic Load Balancer و Auto Scaling Groups

برای آزمایش Load Balanser خود باید از نام DNS که روی جزئیات load balancer آمده است استفاده کنیم

1687939596 18 AWS Elastic Load Balancer و Auto Scaling Groups

در مرورگر کپی و جایگذاری کنید و سپس نمونه EC2 باید پاسخ دهد

1687939596 848 AWS Elastic Load Balancer و Auto Scaling Groups

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

خیلی راحت درسته؟ اکنون می دانید که چگونه به صورت دستی یک بار متعادل کننده را پیکربندی کنید و چگونه نمونه هایی را که اجرا می شود پیکربندی کنید، شاید این سوال برای شما پیش بیاید، اما اگر نخواهیم نمونه ها را ایجاد یا حذف کنیم و آن را به طور خودکار بسازیم، چه اتفاقی می افتد؟ این است که از یک Auto Scaling Group (ASG) استفاده کنید، که به شما کمک می کند تا مطابق با نیاز خود نمونه هایی ایجاد کنید و همچنین به طور خودکار تعداد نمونه ها را کاهش می دهد.

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

1687939596 243 AWS Elastic Load Balancer و Auto Scaling Groups

ASG مخفف “Auto Scaling Group” است و سرویسی است که به ما کمک می کند تا برنامه خود را به طور خودکار بر روی کانتینرهای EC2 خود نظارت کنیم و بر اساس ترافیک و درخواست نمونه های شما، موارد را در صورت نیاز افزایش یا کاهش دهیم.

1687939596 230 AWS Elastic Load Balancer و Auto Scaling Groups

مزایا و ویژگی ها

  • تحمل خطا:
    زمانی که یک نمونه ناسالم است، آن را خاتمه دهید و نمونه ای را برای جایگزینی راه اندازی کنید.

  • **دسترسی:
    **اطمینان حاصل کنید که برنامه شما همیشه ظرفیت مناسبی برای رسیدگی به تقاضای ترافیک فعلی دارد.

  • ** مدیریت هزینه:
    ** با راه‌اندازی پویا نمونه‌ها در صورت نیاز و خاتمه دادن به آنها در صورت عدم نیاز، در هزینه خود صرفه‌جویی کنید.

یک مثال می تواند موارد زیر باشد. اگر برنامه‌ای با افزایش ناگهانی حجم کار مواجه شود، Amazon Auto Scaling می‌تواند به‌طور خودکار منابع محاسباتی بیشتری را اضافه کند تا اطمینان حاصل شود که برنامه به عملکرد روان ادامه می‌دهد. به طور مشابه، اگر حجم کار کاهش یابد، مقیاس خودکار آمازون می تواند به طور خودکار تعداد منابع محاسباتی را کاهش دهد تا از هزینه های غیر ضروری جلوگیری شود.

دانستن اینکه زمان آن فرا رسیده است که ASG خود را بسازیم و آن را در عمل ببینیم.

پیکربندی ASG

اولین قدم برای پیکربندی ASG رفتن به داشبورد ASG است، می‌توانید در منوی سمت چپ به کلیک کردن در «گروه‌های مقیاس خودکار» دسترسی داشته باشید. و سپس “create auto scaling group” را انتخاب کنید.

1687939596 512 AWS Elastic Load Balancer و Auto Scaling Groups

با انجام این کار صفحه زیر را مشاهده خواهید کرد:

1687939596 444 AWS Elastic Load Balancer و Auto Scaling Groups

در اینجا قصد داریم با تنظیمات شروع کنیم. همانطور که می بینید 7 مرحله برای دنبال کردن وجود دارد که من شما را در مورد هر یک از آنها راهنمایی خواهم کرد.

مرحله 1)

در اینجا باید یک نام ارائه کنیم و الگوی راه اندازی را برای نمونه های خود ایجاد کنیم.

1687939596 315 AWS Elastic Load Balancer و Auto Scaling Groups

برای ایجاد قالب باید روی “ایجاد الگوی راه اندازی” کلیک کنید.

در آنجا می توانید پیکربندی های زیر را به عنوان پایه انتخاب کنید (فقط در بخش های ویرایش شده برای این آموزش تمرکز کنید):

1687939596 905 AWS Elastic Load Balancer و Auto Scaling Groups

1687939596 99 AWS Elastic Load Balancer و Auto Scaling Groups

1687939596 678 AWS Elastic Load Balancer و Auto Scaling Groups

برای تنظیمات شبکه باید یک گروه امنیتی معتبر ارائه دهید. می توانید از همان چیزی که در قسمت های قبل استفاده کردیم استفاده کنید.

1687939596 444 AWS Elastic Load Balancer و Auto Scaling Groups

1687939596 418 AWS Elastic Load Balancer و Auto Scaling Groups

1687939596 883 AWS Elastic Load Balancer و Auto Scaling Groups

پس از انجام تنظیمات، روی ایجاد قالب راه اندازی کلیک کنید

1687939596 645 AWS Elastic Load Balancer و Auto Scaling Groups

سپس به نمای ASG برگردید، در آنجا باید الگوی ایجاد شده را انتخاب کنید

1687939596 85 AWS Elastic Load Balancer و Auto Scaling Groups

روی next کلیک کنید

VPC خود و حداقل 2 زیرشبکه با دسترسی به اینترنت را انتخاب کنید. در اینجا می توانید از تنظیمات قسمت قبل استفاده کنید.

1687939596 275 AWS Elastic Load Balancer و Auto Scaling Groups

روی next کلیک کنید.

در این مرحله باید مشخص کنید که ASG از کدام load balancer استفاده می کند، سپس می توانید یکی را که در قسمت های قبلی ایجاد کردیم انتخاب کنید.

1687939596 852 AWS Elastic Load Balancer و Auto Scaling Groups

1687939596 826 AWS Elastic Load Balancer و Auto Scaling Groups

1687939596 210 AWS Elastic Load Balancer و Auto Scaling Groups

روی next کلیک کنید.

مرحله چهارم پیکربندی اندازه ASG، تعیین تعداد نمونه‌های مورد استفاده است.

می توانید از تنظیمات زیر استفاده کنید:

1687939596 448 AWS Elastic Load Balancer و Auto Scaling Groups

1687939596 788 AWS Elastic Load Balancer و Auto Scaling Groups

تا مرحله 7 روی next کلیک کنید. ما تنظیمات دیگر را در این آموزش حذف می کنیم.

سپس بر روی ایجاد کلیک کنید.

1687939596 617 AWS Elastic Load Balancer و Auto Scaling Groups

همانطور که می بینید ما یک ASG جدید ایجاد کرده ایم.

اگر به نمونه های EC2 بروید، 2 نمونه را نیز خواهید دید که به طور پیش فرض و به طور خودکار ایجاد شده اند.

1687939596 169 AWS Elastic Load Balancer و Auto Scaling Groups

برای آزمایش نتایج، کمی صبر کنید تا نمونه ها اجرا شوند. ما باید به Load Balancer خود برویم و DNS را برای درخواست در یک مرورگر دریافت کنیم:

1687939596 531 AWS Elastic Load Balancer و Auto Scaling Groups

در زمان بارگذاری صفحه، IP مربوط به نمونه ای را که درخواست شما را دریافت می کند، در صفحه مشاهده خواهید کرد.

همانطور که می بینید آماده است، اکنون می دانید که چگونه پیکربندی یک متعادل کننده بار برای سیستم خود را شروع کنید و یک گروه مقیاس خودکار برای انجام مقیاس خودکار ایجاد کنید.

من به شما توصیه می کنم از ASG استفاده کنید زیرا به شما کمک می کند تا مواردی را که در صورت نیاز آنها را اضافه یا حذف می کنند مدیریت کنید.

1687939596 556 AWS Elastic Load Balancer و Auto Scaling Groups

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا