ساختار شبکه در سرویس رایانش ابری ستون
یکی از مهمترین قسمتهای سرویس رایانش ابری ستون، شبکه است. با استفاده از این قسمت کاربران میتوانند ویژگیهای مرتبط با ارتباط بین سرورهای ابری و همینطور سرورهای ابری با اینترنت را براساس نیاز خود پیکربندی کنند. شبکه در سرویس رایانش ابری ستون از چهار بخش سابنت، لینک، آیپی خارجی عمومی و مدیریت لودبالانسر، تشکیل شده است. در این مستند به معرفی هریک از این قسمتها و ارتباط بین آنها میپردازیم. برای پیکربندی هریک از این بخشها میتوانید به بخش راهنمای کاربری مراجعه کنید. توجه داشته باشید که برای شروع استفاده از سرویس رایانش ابری و قبل از ساخت سرور ابری، بهتر است ابتدا پیکربندیهای شبکه را انجام دهید.
هر سابنت تعریفکنندهی یک شبکه و یک محدوده IP از دید ماشین مجازی است. ماشینهای مجازی تنها در صورت داشتن دسترسی به یک سابنت مشترک میتوانند به یکدیگر دسترسی پیدا کنند. توجه داشته باشید که هر سابنت یک شبکهی داخلی ایزوله است و دو سرور ابری با دو سابنت مختلف، به یکدیگر دسترسی ندارند. همچنین لازم است بدانید که تمامی سرورهای ابری مرتبط با یک سابنت بهصورت پیشفرض تنها از طریق دیگر سرورهای مرتبط با همان سابنت در دسترس هستند، به اینترنت دسترسی ندارند و اینترنت هم به آنها دسترسی ندارد. با استفاده از پنل ستون میتوانید برای سرور ابری خود سابنت بسازید.
هر سرور ابری ستون، برای اتصال به شبکه باید یک یا چند Network Interface داشته باشد که در پنل ستون به آن لینک (Link) گفته میشود. برای درک بهتر مفهوم لینک، تصور کنید که یک کامپیوتر با دو کارت شبکه دارید، این دقیقا مانند این است که برای یک سرور ابری دو لینک تعریف کرده باشید. بنابراین بهطور خلاصه میتوان گفت که ارتباط سرور ابری با شبکه از طریق لینک برقرار میشود.
هر لینک باید تعدادی IP داخلی داشته باشد. برای اینکه محدودهی IPها مشخص شود از مفهوم سابنت که پیش از این تعریف شده، استفاده میشود. در واقع هر لینک باید به یک سابنت وصل شود و هنگام اتصال، یک IP در محدودهی سابنت خود بگیرد.
بهازای هرلینک، یک یا چند Network Interface در ماشین مجازی ساخته و برمبنای CIDR موجود در سابنت آدرسدهی میشود.
با استفاده از پنل ستون میتوانید لینک بسازید و از آن در مراحل ساخت ماشین مجازی خود استفاده کنید.
همانطور که گفته شد امکان دسترسی به اینترنت از طریق سابتنت وجود ندارد و تنها با استفاده از External IP میتوان دسترسی به اینترنت را برای سرورهای ابری فراهم کرد.
برای اینکه سرورهای ابری به اینترنت دسترسی داشته باشند، از مفهومی به نام IP خارجی (External IP) استفاده میکنیم. با استفاده از پنل ستون به سه صورت میتوانید از External IP استفاده کنید. استفاده از IP خارجی بهصورت اتصال IP خارجی به لینک، اتصال آن به سابنت و یا اتصال آن به لودبالانسر ممکن است.
- اتصال External IP به سابنت: اگر External IP به سابنت وصل شده باشد، همهی ماشینهایی که از آن subnet استفاده میکنند، میتوانند از طریق آن به اینترنت دسترسی داشته باشند. ولی از طریق اینترنت نمیتوان به آن ماشینها دسترسی داشت، چرا که نمیتوان تشخیص داد که ورودی مربوط به آن IP به کدام ماشین باید ارسال شود.
- اتصال External IP به لینک: برای مواقعی که لازم است که سرور ابری مستقیم از اینترنت قابل دسترسی و دیده شدن باشد، لازم است که External IP به لینک متصل شود. در این مواقع هم سرور ابری به اینترنت و هم اینترنت به سرور ابری دسترسی خواهند داشت.
- اتصال External IP به لودبالانسر: با استفاده از این اتصال، ماشینها از طریق اینترنت قابل دسترسی خواهند بود و همینطور لودبالانسر میتواند بار را بین چند سرور تقسیم کند. با انتخاب این اتصال میتوانید در مصرف External IP نیز بهینهتر پیش بروید.
برای تقسیم بار شبکه بین چند لینک، میتوانید از لودبالانسر استفاده کنید. فرض کنید که چند لینک ساختهاید و سرویسی را بر روی آنها ایجاد کردهاید، برای اینکه همهی بار ورودی به سمت یک سرور نیفتد میتوانید لینکها را به یک لودبالانسر متصل کنید. پنل ستون این امکان را فراهم میکند تا بتوانید لینکهای مورد نظر خود را به لودبالانسر متصل کنید. لازم است بدانید که تنها لینکهایی را میتوانید به لودبالانسر متصل کنید که دارای یک سابنت مشترک باشند.
از آنجا که محدودیتهایی در تعداد External IPهای عمومی وجود دارد، هنگام پیکربندی شبکه، باید به برخی نکاتی که در ادامه به آنها اشاره شده است، توجه داشته باشید:
- برای دسترسی به اینترنت به جای اختصاص External IP به لینک، آن را به subnet خود اختصاص دهید. با این کار تمامی ماشینهای مرتبط با این سابنت میتوانند از طریق این External IP به اینترنت دسترسی داشته باشند. با این کار شما در مصرف IP عمومی و هزینهی خود صرفهجویی میکنید. (توجه داشته باشید که در این حالت دیگر ماشین شما از اینترنت در دسترس نخواهد بود، پس این نکته همیشه مناسب شما نیست.)
- اگر چندین ماشین دارید که بر روی آنها API یا سرویس یکسانی دارید و لازم است که از طریق اینترنت در دسترس باشند، بهجای آن که به هر ماشین External IP جداگانه اختصاص دهید، یک لودبالانسر تعریف کنید و به آن External IP اختصاص دهید.
- اگر فقط برای وصل شدن به خط فرمان ماشین به External IP نیاز دارید، میتوانید از یکی از روشهای جایگزین که به IP عمومی نیاز ندارد، استفاده کنید.
- امکان استفاده از Floating IP در داخل سرورهای ابری وجود ندارد و در نتیجه نمیتوانید از مواردی شبیه به keepalived استفاده کنید. بهعنوان جایگزین میتوانید از امکان لودبالانسر بهره ببرید.
- در حال حاضر CIDR سابنتهای خود را در بازههای زیر قرار ندهید تا در آینده برای ارتباط با APIهای ما از داخل ماشین خود دچار مشکل نشوید:
- 172.18.0.0/16
- 172.19.64.0/18
- 10.19.0.0/19
- 172.17.40.0/24