پرش به مطلب اصلی

توزیع بار

به کمک تنظیمات توزیع بار CDN ابر آروان، می‌توان ترافیک را میان چند سرور که حاوی منابع و اطلاعات یکسانی هستند، به‌شکل متعادل توزیع کرد. با این روش، درخواست‌های دسترسی به این منابع، به‌جای یک سرور، می‌توانند توسط چندین سرور پاسخ داده شوند که سبب افزایش Redundancy (افزونگی) و Reliability (قابلیت اطمینان) می‌شود.

نسل جدید توزیع بار ابر آروان قابلیت‌های مسیردهی جغرافیایی ترافیک و Active Health Check با ارسال درخواست‌ها به استخرهای سالم و پاسخ‌گوی مرتبط با کشورها کارایی وب‌سایت و کیفیت تجربه کاربر نهایی را افزایش می‌دهد.

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

مفاهیم پایه

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

  • استخر

    یک استخر، مجموعه‌ای از سرورهای میزبان است که هر کدام با IP یا Hostname آن مشخص می‌شود. اگر با مفاهیم DNS آشنا هستید، به استخر به چشم یک مجموعه رکورد نگاه کنید؛ با این تفاوت که توزیع بار آروان فقط آدرس‌هایی که سالم تلقی شوند به‌عنوان پاسخ برمی‌گرداند. شما می‌توانید برای هر استخر قوانینی برای Health Check و بررسی سلامت سرورهای استخر تعریف کنید.

  • مانیتورینگ

    هر مانیتورینگ در فواصل منظم قابل تنظیم به نام بازه‌ی تکرار برای ارزیابی سلامت استخر، وضعیت را به‌دنبال کدهای وضعیت و یا Response Body خاص بررسی می‌کند و زمانی که یک استخر ناسالم شود، لودبالانسر به‌شکل خودکار آن استخر را از چرخه‌ی سرورها خارج می‌کند. تنظیمات مانیتورینگ، امکان اطلاع‌رسانی از طریق ایمیل و از دسترس خارج کردن سرور تا زمان رفع خطا را فراهم می‌کند. این شروط می‌توانند بر اساس پروتکل، هدرهای ارسالی و منطقه‌ی جغرافیایی تنظیم شوند.

  • توزیع بار

    هر توزیع بار یا لود بالانسر ترافیک را میان استخرهای مبدا با توجه به سلامت استخر و بر اساس مسیردهی ترافیک آن توزیع می‌کند. امکان پیکربندی توزیع بار در دو حالت اکتیو-اکتیو و اکتیو-پسیو فراهم است. در حالت اکتیو-اکتیو ترافیک بر اساس موقعیت جغرافیایی به‌شکل متعادل بین تمام استخرهای سالم توزیع می‌شود و هیچ ترافیکی به استخر ناسالم ارسال نخواهد شد. در حالت اکتیو-پسیو، ترافیک بر اساس اولویت مشخص‌شده، فقط به یک استخر سالم ارسال می‌شود و سایر استخرهای سالم به‌عنوان مقصد Fall-back در نظر گرفته می‌شوند و در زمان عدم پاسخگویی استخر اول، ترافیک به استخر بعدی ارسال خواهد شد. اگر هیچ استخر سالمی موجود نباشد، ترافیک برای استخر پیش‌فرض ارسال می‌شود.

  • مسیردهی ترافیک

    زمانی‌که درخواست‌ها به توزیع بار یا لودبالانسر شما می‌رسند، توزیع بار، آن‌ها را بین سرورها و استخرهای شما بر اساس سه پارامتر توزیع می‌کند:

    • سلامت استخر: مسیردهی ترافیک با بررسی سلامت استخرها و سرورها آغاز می‌شود.
    • مسیردهی ترافیک: سیاست تعیین‌شده برای ارسال ترافیک به استخرهای موجود
    • مسیردهی سرورها: سیاست تعیین‌شده‌ی هر استخر برای توزیع ترافیک میان سرورهای یک استخر

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

  • ناسالم بودن استخر یا سرور

    مزیت این نسل از توزیع بار که به‌شکل پویا انجام می‌شود، توزیع ترافیک بین سرورهایی است که توانایی پاسخگویی به درخواست‌ها را داشته باشند. تعیین و بررسی این ویژگی به‌وسیله‌ی مجموعه‌ای از مانیتورها، استخرها و Health Checkها انجام می‌شود.

    هدف از هر Health check این است که وضعیت منابع را نسبت به وضعیت قبلی بررسی کند که در حالت برقرار بودن شروط زیر Fail خواهد شد:

    • زمان پاسخگویی سرور از مدت زمان انتظار برای پاسخگویی مشخص‌شده در تنظیمات مانیتورینگ بیش‌تر شود.
    • سرور کد وضعیت یا Response Body مورد انتظار مشخص‌شده در تنظیمات مانیتورینگ را برنگرداند.

    وضعیت هر استخر شامل سه حالت سالم، هشدار و ناسالم است. زمانی‌که همه‌ی سرورها پاسخگو باشند و شرایط مانیتورینگ را داشته‌باشند وضعیت استخر، سالم و زمانی‌که تعداد سرورهای دارای خطا بیش‌تر یا برابر حد خطای مشخص‌شده باشند، وضعیت استخر خطا خواهد شد و ترافیک به استخر پیش‌فرض ارسال می‌شود. هم‌چنین اگر تعداد سرورهای خطادار از حدخطا کم‌تر باشد وضعیت استخر به هشدار تغییر می‌یابد.

پیکربندی توزیع بار

زمانی‌که تصمیم به آغاز کار با توزیع بار می‌گیرید نیاز به انجام مراحل زیر دارید:

  • مدیریت توزیع بار

  • مدیریت استخرها

  • مسیردهی ترافیک

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

گام اول: مدیریت توزیع بار

شما می‌توانید با در کنار هم قرار دادن چند سرور یک استخر از سرورهای اصلی ایجاد کنید و با در کنار هم قرار دادن چند استخر یک توزیع بار جدید ایجاد کنید. در تنظیمات توزیع بار می‌توانید تعیین کنید که ترافیک کدام مناطق جغرافیایی برای کدام استخر ارسال شود و وضعیت هر استخر را با مانیتورینگ به‌شکل پیوسته زیر نظر داشته‌باشید.

برای ساخت توزیع بار جدید، در منوی CDN، بخش شبکه توزیع محتوا روی توزیع بار و در صفحه‌ی جدید روی گزینه‌ی «توزیع بار جدید» کلیک کنید.

در صفحه‌ی بازشده می‌توانید نام، توضیحات و روش توزیع بار را مشخص کنید.

در روش توزیع بار اکتیو-اکتیو، ترافیک ورودی بین تمام استخرهای سالم با توجه به موقعیت جغرافیایی تنظیم‌شده به‌شکل تصادفی و Random توزیع می‌شود. اگر یکی از استخرها با توجه به تنظیمات مانیتورینگ دارای خطا تشخیص داده شود، ترافیک برای سایر استخرهای سالم توزیع می‌شود.

روش اکتیو-پسیو ترافیک ورودی را برای اولین استخر سالم در لیست استخر سرورهای اصلی ارسال می‌‌کند. اگر مانیتورینگ، استخر مربوطه را دارای خطا تشخیص دهد ترافیک برای اولین استخر سالم بعدی ارسال می‌شود.

اگر هیچ استخر سالمی موجود نباشد ترافیک برای استخر پیش‌فرض ارسال می‌شود.

گام دوم: مدیریت استخر سرورهای اصلی

پس از ایجاد یک توزیع بار جدید و تایید روش توزیع بار، در مرحله بعد نیاز به ایجاد استخر سرورهای اصلی خواهید داشت. شما می‌توانید با در کنار هم قرار دادن آدرس سرورهای اصلی خود و با کلیک روی گزینه‌ی «ایجاد استخر»، یک کلاستر یا استخر ایجاد کنید.

در صفحه‌ی باز شده، نام و توضیحات استخر خود را مشخص کنید و سپس متد مدیریت ترافیک و فعال/غیرفعال بودن خطای سرورهای اصلی را مشخص کنید.

متدهای Load Balancing برای متعادل کردن بار ترافیکی سرور شامل Round-Robin و Client IP Hash است. در توزیع بار نوبتی (Round Robin)، درخواست‌های کاربران به‌شکل نوبتی میان سرورهای گوناگون -با توجه به وزن آن‌ها- توزیع می‌شود و در Client IP Hash با در نظر گرفتن IP کاربر، درخواست‌های او به سروری فرستاده می‌شود که در نخستین درخواست به آن متصل شده است.

با استفاده از قابلیت "مدیریت خطای سرورهای اصلی" اگر زیردامنه‌ی شما به بیش از یک سرور متصل است، درخواست‌های منتهی به خطای Connection Refused ،Connection Error و ... به طور خودکار به سرور بعدی منتقل می‌شوند. در این حالت خطای سرور اصلی به کاربر نمایش داده نمی‌شود.

با استفاه از گزینه‌ی افزودن سرور جدید، می‌توانید سرورهای استخر را به لیست سرورها اضافه کنید. آدرس سرور با استفاده از IP مشخص خواهد شد و می‌توانید وزن و پورت دل‌خواه هر سرور را مشخص کنید. هم‌چنین زمانی‌ که وب‌سایت/اپلیکیشن شما نیاز به مسیریابی اختصاصی دارد (راه‌اندازی با CNAME یا هاست‌های اختصاصی مثل S3 و دامنه‌ی Container ابری) برای هر سرور امکان انتخاب هدر هاست را خواهید داشت.

پروتکل ارتباطی با سرور اصلی می‌تواند HTTP یا HTTPS باشد. با انتخاب مقدار پیش فرض، تنظیمات پیش‌فرض پنل (قابل تغییر در تنظیمات HTTPS) اعمال می‌شود. با انتخاب مقدار خودکار، پروتکل ارتباطی با سرور اصلی برای هر درخواست برابر پروتکل ارتباطی بازدید کننده با CDN قرار می‌گیرد.

پس از اضافه کردن سرورهای جدید و تایید لیست سرورها می‌توانید تنظیمات استخرهای اصلی را ذخیره کنید. با وجود چند استخر می‌توانید اولویت استخرها را مشخص کنید و استخرها را در زمان نیاز فعال/غیرفعال کنید. با غیرفعال شدن وضعیت هر استخر ترافیک برای آن ارسال نمی‌شود.

توجه داشته‌ باشید که استخر پیش فرض نمی‌تواند غیر فعال شود.

گام سوم: مسیردهی ترافیک

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

گام چهارم: مانیتورینگ

در گام آخر می‌توانید وضعیت استخرها را بررسی و با کلیک روی ویرایش مانیتورینگ در صفحه‌‌ی جدید شروط مانیتورینگ هر استخر را ویرایش کنید. به کمک قابلیت Active Health Check در CDN ابر آروان، می‌توان به‌شکل خودکار و لحظه‌ای سلامت سرورهای اصلی وب‌سایت و امکان پاسخ‌گویی آن‌ها به درخواست‌های کاربران را سنجید. به این ترتیب و با بروز مشکل روی یک هر سرور اصلی قرار گرفته در کلاسترهای توزیع بار، می‌توان از آن مطلع شد و اقدامات لازم برای رفع مشکل را انجام داد.

این قابلیت با مانیتور کردن لحظه‌ای سرورهای اصلی قرار گرفته در یک کلاستر، هرگونه تغییر در وضعیت آن‌ها را تشخیص داده و اقدامات از پیش تعریف شده را برای آن‌ها انجام می‌دهد. هم‌چنین، با بروز یک مشکل روی سرورها، قابلیت Active Health Check با استفاده از تنظیمات مختلف، می‌تواند شما را به‌وسیله‌ی ارسال ایمیل از بروز آن باخبر کند یا آن سرور را از لیست سرورهای اصلی سرویس توزیع بار خارج کند و با بهبود وضعیت سرور، مجددن در سرویس توزیع بار مورد استفاده قرار دهد.

در این بخش می‌توانید بر اساس پروتکل، مسیر دامنه، متد و نوع درخواست، پورت، پاسخ و یا کد وضعیت مورد انتظار، هدرهای ارسالی و مقادیرشان سرورها را زیر نظر داشته‌باشید و هم‌چنین با تنظیم بررسی از منطقه جغرافیایی و مشخص کردن سطح مانیتورینگ، مدت زمان انتظار برای پاسخگویی و بازه‌ی تکرار، مانیتورینگ Active Health Check را به‌ بالاترین سطح شخصی‌سازی برسانید.

وضعیت هر استخر با توجه به مانیتورینگ آن تعیین می‌شود. اگر تعداد سرورهای دارای خطا در هر استخر بیش‌تر یا برابر با حد خطا باشد وضعیت استخر «خطا» نشان داده می‌شود و ترافیک برای آن ارسال نمی‌شود. اگر تعداد سرورهای دارای خطا کمتر از حد خطا باشد وضعیت استخر «هشدار» نشان داده می‌شود.

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

در بخش بررسی از منطقه‌ی جغرافیایی، می‌توانید به ازای هر منطقه‌ی جغرافیایی مورد نظر، یک سطح مانیتورینگ متفاوت مشخص کنید. به این ترتیب، اگر پس از بررسی سلامت سرور اصلی وب‌سایت به‌وسیله‌ی سرورهای لبه‌‌ی CDN آروان، در آن منطقه‌ی جغرافیایی، مشکلی مشاهده شد، اقدام متناسب با سطح مانیتورینگ مشخص‌شده انجام می‌شود.

توجه داشت باشید که درخواست‌های HTTP ارسالی با User Agent‌ زیر ارسال می‌شوند:

User Agent: "Arvancloud-AHC/0.1"

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