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 سه نوع مختلف بار متعادل کننده را ارائه می دهد:
Application Load Balancer
متعادل کننده بار دروازه
متعادل کننده بار شبکه
در این آموزش قصد داریم بر روی گزینه Application load balancer تمرکز کنیم. در تصویر زیر می توانید نحوه عملکرد آن را از منظر کلی مشاهده کنید:
مشتری شما درخواستی را برای درخواست شما ارسال می کند.
شنوندگان در بار متعادل کننده شما درخواست هایی را دریافت می کنند که مطابق با پروتکل و پورتی است که شما پیکربندی کرده اید.
شنونده دریافت کننده درخواست دریافتی را بر اساس قوانینی که شما مشخص کرده اید ارزیابی می کند و در صورت وجود، درخواست را به گروه هدف مناسب هدایت می کند. میتوانید از شنونده HTTPS برای بارگذاری کار رمزگذاری و رمزگشایی TLS به متعادلکننده بار خود استفاده کنید.
اهداف سالم در یک یا چند گروه هدف بر اساس الگوریتم متعادل کننده بار و قوانین مسیریابی که در شنونده مشخص می کنید، ترافیک دریافت می کنند.
عملی!… و اجازه دهید با یک مثال شروع کنیم تا نحوه استفاده از 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 نمونه برای این آموزش ایجاد کنید، اما در یک برنامه واقعی می توانید به اندازه نیاز خود تعریف کنید.
مثال:
نمونه 1:
نمونه 2:
ملاحظات مهم در یک زمان برای ساخت ELB ما
نکات زیر برای درست کارکردن ELB بسیار مهم است
VPC باید در نمونه های شما و در پیکربندی ELB شما یکسان باشد
شما به حداقل 2 منطقه در دسترس نیاز دارید که هر کدام دارای زیرشبکه های خود با دسترسی به اینترنت هستند
نمونه های شما باید در همان VPC پیکربندی شوند
پیکربندی ELB (تعادل بار الاستیک)
برای انجام این مرحله ابتدا باید به منوی «تعادل بار» در پانل سمت چپ داخل داشبورد EC2 بروید.
سپس بر روی “load Balancer” کلیک کنید، شما را به صفحه زیر هدایت می کند:
هنگامی که در آنجا قرار گرفتید، باید بر روی ایجاد “load balancer” کلیک کنید، سپس چیزی شبیه به زیر را مشاهده خواهید کرد:
همانطور که قبلاً ذکر کردم که در این آموزش گزینه “Application Load Balancer” را بررسی کنیم، به ما کمک می کند تا درخواست را با استفاده از ELB بین نمونه های EC2 توزیع کنیم.
سپس باید روی ایجاد گزینه اول “Application Load Balancer” کلیک کنید.
بعد از اینکه روی آن کلیک کردید، صفحه پیکربندی را مشاهده خواهید کرد، در آنجا تمام پارامترهای مورد نیاز برای متعادل کننده بار خود را پیکربندی می کنیم.
اولین مرحله ارائه یک نام است و مانند تصویر زیر، دسترسی به اینترنت و گزینه های IPv4 را انتخاب شده نگه می داریم.
مرحله بعدی پیکربندی نقشه شبکه است.
در اینجا می خواهیم VPC و مناطق در دسترس را پیکربندی کنیم.
برای VPC می توانید یکی از مواردی را که قبلاً پیکربندی کرده اید انتخاب کنید و سپس AZ و زیرشبکه مربوط به آن را انتخاب کنید.
گام بعدی پیکربندی گروه امنیتی است، در این مورد، میبینیم که یکی به طور پیشفرض انتخاب شده است، اما باید یک گروه جدید ایجاد کنیم که فقط توسط ALB (Application Load Balancer) ما استفاده میشود. برای انجام این کار باید روی “ایجاد گروه امنیتی جدید” کلیک کنید.
ما باید قوانین Inbound را اضافه کنیم، می توانید تصویر زیر را به عنوان مثال در نظر بگیرید.
برای آماده سازی تنظیمات گروه امنیتی شما کافی است روی “ایجاد گروه امنیتی” کلیک کنید.
به صفحه پیکربندی load balancer برگردید و گروه امنیتی جدید خود را به عنوان بخشی از تنظیمات آن انتخاب کنید.
سپس مرحله زیر یکی از مهمترین مراحل است زیرا در آنجا تمام نمونههایی را که توسط load balancer استفاده میشوند پیکربندی میکنیم.
برای پیکربندی “شنونده و مسیریابی” چند مرحله را دنبال می کنیم.
اولین مورد ایجاد یک “گروه هدف” جدید است که برای نمونه پیکربندی شده است، می توانید تصاویر زیر را به عنوان مرجع انتخاب کنید:
همانطور که می بینید ما فقط آن مقادیر را تغییر دادیم، سپس می توانید روی “بعدی” کلیک کنید تا به افزودن نمونه ها ادامه دهید.
پس از انتخاب روی شامل به عنوان در انتظار کلیک کنید
سپس بر روی ایجاد کلیک کنید.
پس از پیکربندی گروه هدف، باید به صفحه پیکربندی load balancer برگردید و گروه هدف ایجاد شده را انتخاب کنید.
برای دیدن خلاصه به پایین بروید و سپس روی ایجاد کلیک کنید.
برای آزمایش Load Balanser خود باید از نام DNS که روی جزئیات load balancer آمده است استفاده کنیم
در مرورگر کپی و جایگذاری کنید و سپس نمونه EC2 باید پاسخ دهد
شاید نتیجه چندین بار یکسان باشد، اما اگر انجام درخواست را با ابزاری آزمایش کنید که به شما کمک کند تا حد درخواست را دریافت کنید، متعادل کننده بار کار خود را انجام می دهد و درخواست را توزیع می کند.
خیلی راحت درسته؟ اکنون می دانید که چگونه به صورت دستی یک بار متعادل کننده را پیکربندی کنید و چگونه نمونه هایی را که اجرا می شود پیکربندی کنید، شاید این سوال برای شما پیش بیاید، اما اگر نخواهیم نمونه ها را ایجاد یا حذف کنیم و آن را به طور خودکار بسازیم، چه اتفاقی می افتد؟ این است که از یک Auto Scaling Group (ASG) استفاده کنید، که به شما کمک می کند تا مطابق با نیاز خود نمونه هایی ایجاد کنید و همچنین به طور خودکار تعداد نمونه ها را کاهش می دهد.
در بخش بعدی این آموزش، نحوه استفاده و پیکربندی یک گروه مقیاس خودکار را خواهیم دید.
ASG مخفف “Auto Scaling Group” است و سرویسی است که به ما کمک می کند تا برنامه خود را به طور خودکار بر روی کانتینرهای EC2 خود نظارت کنیم و بر اساس ترافیک و درخواست نمونه های شما، موارد را در صورت نیاز افزایش یا کاهش دهیم.
مزایا و ویژگی ها
تحمل خطا:
زمانی که یک نمونه ناسالم است، آن را خاتمه دهید و نمونه ای را برای جایگزینی راه اندازی کنید.**دسترسی:
**اطمینان حاصل کنید که برنامه شما همیشه ظرفیت مناسبی برای رسیدگی به تقاضای ترافیک فعلی دارد.** مدیریت هزینه:
** با راهاندازی پویا نمونهها در صورت نیاز و خاتمه دادن به آنها در صورت عدم نیاز، در هزینه خود صرفهجویی کنید.
یک مثال می تواند موارد زیر باشد. اگر برنامهای با افزایش ناگهانی حجم کار مواجه شود، Amazon Auto Scaling میتواند بهطور خودکار منابع محاسباتی بیشتری را اضافه کند تا اطمینان حاصل شود که برنامه به عملکرد روان ادامه میدهد. به طور مشابه، اگر حجم کار کاهش یابد، مقیاس خودکار آمازون می تواند به طور خودکار تعداد منابع محاسباتی را کاهش دهد تا از هزینه های غیر ضروری جلوگیری شود.
دانستن اینکه زمان آن فرا رسیده است که ASG خود را بسازیم و آن را در عمل ببینیم.
پیکربندی ASG
اولین قدم برای پیکربندی ASG رفتن به داشبورد ASG است، میتوانید در منوی سمت چپ به کلیک کردن در «گروههای مقیاس خودکار» دسترسی داشته باشید. و سپس “create auto scaling group” را انتخاب کنید.
با انجام این کار صفحه زیر را مشاهده خواهید کرد:
در اینجا قصد داریم با تنظیمات شروع کنیم. همانطور که می بینید 7 مرحله برای دنبال کردن وجود دارد که من شما را در مورد هر یک از آنها راهنمایی خواهم کرد.
مرحله 1)
در اینجا باید یک نام ارائه کنیم و الگوی راه اندازی را برای نمونه های خود ایجاد کنیم.
برای ایجاد قالب باید روی “ایجاد الگوی راه اندازی” کلیک کنید.
در آنجا می توانید پیکربندی های زیر را به عنوان پایه انتخاب کنید (فقط در بخش های ویرایش شده برای این آموزش تمرکز کنید):
برای تنظیمات شبکه باید یک گروه امنیتی معتبر ارائه دهید. می توانید از همان چیزی که در قسمت های قبل استفاده کردیم استفاده کنید.
پس از انجام تنظیمات، روی ایجاد قالب راه اندازی کلیک کنید
سپس به نمای ASG برگردید، در آنجا باید الگوی ایجاد شده را انتخاب کنید
روی next کلیک کنید
VPC خود و حداقل 2 زیرشبکه با دسترسی به اینترنت را انتخاب کنید. در اینجا می توانید از تنظیمات قسمت قبل استفاده کنید.
روی next کلیک کنید.
در این مرحله باید مشخص کنید که ASG از کدام load balancer استفاده می کند، سپس می توانید یکی را که در قسمت های قبلی ایجاد کردیم انتخاب کنید.
روی next کلیک کنید.
مرحله چهارم پیکربندی اندازه ASG، تعیین تعداد نمونههای مورد استفاده است.
می توانید از تنظیمات زیر استفاده کنید:
تا مرحله 7 روی next کلیک کنید. ما تنظیمات دیگر را در این آموزش حذف می کنیم.
سپس بر روی ایجاد کلیک کنید.
همانطور که می بینید ما یک ASG جدید ایجاد کرده ایم.
اگر به نمونه های EC2 بروید، 2 نمونه را نیز خواهید دید که به طور پیش فرض و به طور خودکار ایجاد شده اند.
برای آزمایش نتایج، کمی صبر کنید تا نمونه ها اجرا شوند. ما باید به Load Balancer خود برویم و DNS را برای درخواست در یک مرورگر دریافت کنیم:
در زمان بارگذاری صفحه، IP مربوط به نمونه ای را که درخواست شما را دریافت می کند، در صفحه مشاهده خواهید کرد.
همانطور که می بینید آماده است، اکنون می دانید که چگونه پیکربندی یک متعادل کننده بار برای سیستم خود را شروع کنید و یک گروه مقیاس خودکار برای انجام مقیاس خودکار ایجاد کنید.
من به شما توصیه می کنم از ASG استفاده کنید زیرا به شما کمک می کند تا مواردی را که در صورت نیاز آنها را اضافه یا حذف می کنند مدیریت کنید.