چرا سرور ابری و از کجا شروع کنیم؟
اگر تا به حال با هاست اشتراکی کار کرده باشید، حتماً با محدودیتهای آن آشنا هستید: منابع محدود، نبود دسترسی ریشه، و وابستگی به تنظیمات سایر کاربران روی همان سرور. سرور ابری این محدودیتها را کنار میزند و به شما یک ماشین مجازی اختصاصی میدهد که میتوانید هر نرمافزاری را روی آن نصب کنید، هر پورتی را باز کنید و هر تنظیمی را تغییر دهید. اما شروع کار با یک سرور ابری، اگر مسیر درستی را طی نکنید، میتواند گیجکننده باشد.
در این راهنما، فرض میکنیم که در پنل کاربری سرورنت ثبتنام کردهاید و میخواهید اولین اینستنس خود را بسازید. هدف ما این است که شما را از نقطه صفر به جایی برسانیم که یک سرور ابری فعال با اتصال SSH امن داشته باشید. تمام مراحل را با جزئیات فنی و مثالهای واقعی پیش میبریم تا در پایان، دقیقاً بدانید چه کاری انجام دادهاید و چرا.
مرحله اول: انتخاب ایمیج مناسب برای سرور ابری
ایمیج (Image) در دنیای سرور ابری، همان سیستمی است که روی دیسک مجازی شما نصب میشود. انتخاب ایمیج، مهمترین تصمیم اولیه است، چون تغییر آن بعد از راهاندازی، زمانبر و دردسرساز خواهد بود.
توزیعهای لینوکسی: گزینه اصلی و امن
برای اکثر کاربردها، یک توزیع لینوکسی پایدار مثل Ubuntu 22.04 LTS یا Debian 12 بهترین انتخاب است. این توزیعها بهروزرسانیهای امنیتی منظم دریافت میکنند و مستندات بسیار گستردهای دارند. اگر با لینوکس آشنایی ندارید، Ubuntu به دلیل جامعه کاربری بزرگ و پاسخگویی سریع در انجمنها، گزینه مطمئنتری است.
نکته مهم: نسخههای LTS (پشتیبانی بلندمدت) را انتخاب کنید، نه نسخههای معمولی. مثلاً Ubuntu 24.04 LTS تا سال 2029 پشتیبانی میشود، در حالی که نسخههای غیر LTS فقط ۹ ماه پشتیبانی دارند و مجبور خواهید شد زودتر ارتقا دهید.
ایمیجهای آماده اپلیکیشن
اگر نمیخواهید از صفر شروع کنید، سرورنت ایمیجهای آمادهای مثل WordPress، LAMP Stack یا Docker را ارائه میدهد. این ایمیجها نرمافزارهای لازم را از قبل نصب کردهاند و فقط کافی است تنظیمات اولیه را انجام دهید. اما به خاطر داشته باشید: این ایمیجها ممکن است نسخههای خاصی از نرمافزارها را داشته باشند که با نیاز شما هماهنگ نباشد. اگر پروژه شما خاص است، ایمیج خام لینوکس را انتخاب کنید و خودتان نرمافزارها را نصب کنید.
خطای رایج: انتخاب ایمیج بدون بررسی معماری
برخی کاربران ایمیج 32 بیتی را روی سروری با معماری 64 بیتی انتخاب میکنند. این کار باعث محدودیت شدید در حافظه قابل استفاده (حداکثر 4 گیگابایت) و ناسازگاری با بسیاری از نرمافزارهای مدرن میشود. همیشه ایمیج amd64 یا x86_64 را انتخاب کنید، مگر اینکه دلیل بسیار خاصی برای معماری دیگر داشته باشید.
مرحله دوم: تعیین سایز و منابع اینستنس
سایز اینستنس تعیین میکند که چه مقدار CPU، RAM و فضای ذخیرهسازی در اختیار دارید. انتخاب درست اینجا، هم به صرفهجویی در هزینه کمک میکند و هم از کندی یا کرش سرور جلوگیری میکند.
محاسبه نیاز واقعی شما
برای یک وبسایت کوچک یا وبلاگ، یک اینستنس با 1 vCPU و 1 گیگابایت RAM کافی است. اما اگر میخواهید دیتابیس MySQL یا PostgreSQL را روی همان سرور اجرا کنید، حداقل 2 گیگابایت RAM را در نظر بگیرید، چون دیتابیسها حافظهبر هستند. برای برنامههای Node.js یا Python که همزمان چند فرآیند اجرا میکنند، 2 vCPU و 4 گیگابایت RAM نقطه شروع منطقی است.
یک قانون سرانگشتی: اگر میانگین استفاده از RAM شما در طول یک هفته به بالای 80 درصد رسید، وقت ارتقا است. میتوانید این را با دستور free -h در لینوکس بررسی کنید.
فضای ذخیرهسازی: SSD یا HDD؟
سرورنت برای سرورهای ابری خود از دیسکهای SSD استفاده میکند که سرعت خواندن و نوشتن بسیار بالاتری نسبت به HDD دارند. اگر دیتابیس یا برنامهای با ورودی/خروجی سنگین دارید، حتماً SSD انتخاب کنید. برای شروع، 20 تا 40 گیگابایت فضا معمولاً کافی است. میتوانید بعداً حجم دیسک را افزایش دهید، اما کاهش آن معمولاً ممکن نیست، پس کمی بیشتر از نیاز فعلیتان فضا بگیرید.
خطای رایج: انتخاب سایز خیلی کوچک برای صرفهجویی
بسیاری از کاربران برای کاهش هزینه، کوچکترین سایز ممکن را انتخاب میکنند. اما اگر سرور شما مدام از حافظه کم میآورد و مجبور به استفاده از Swap (حافظه مجازی روی دیسک) شود، عملکرد به شدت افت میکند. در این حالت، نه تنها سرعت پایین میآید، بلکه ممکن است سرویسهای شما به دلیل Out of Memory کشته شوند. بهتر است از ابتدا سایز مناسبی انتخاب کنید تا بعداً مجبور به مهاجرت به اینستنس بزرگتر نشوید.
مرحله سوم: ساخت اینستنس و تنظیمات شبکه
بعد از انتخاب ایمیج و سایز، نوبت به ساخت اینستنس میرسد. در پنل سرورنت، گزینه «ساخت اینستنس» را انتخاب کنید و مراحل زیر را طی کنید:
- نام اینستنس را مشخص کنید (مثلاً
web-prod-01). نامگذاری منظم به شما کمک میکند در آینده چند سرور را راحتتر مدیریت کنید. - منطقه (Region) را انتخاب کنید. نزدیکترین منطقه به کاربران شما، بهترین تأخیر شبکه را خواهد داشت.
- کلید SSH را اضافه کنید یا رمز عبور موقت دریافت کنید. استفاده از کلید SSH بسیار امنتر از رمز عبور است.
- شبکه پیشفرض را بپذیرید یا اگر شبکه اختصاصی ساختهاید، آن را انتخاب کنید.
آیا به IP عمومی ثابت نیاز دارید؟
هر اینستنس سرور ابری یک IP عمومی دریافت میکند. اگر میخواهید وبسایت یا API خود را به دامنه متصل کنید، این IP را در رکورد A دامنه خود قرار دهید. به عنوان مثال:
example.com. 3600 IN A 185.10.10.10
www.example.com. 3600 IN A 185.10.10.10
اگر از IPv6 استفاده میکنید، رکورد AAAA را هم اضافه کنید. توجه داشته باشید که تغییر IP بعد از ساخت اینستنس ممکن است نیاز به بهروزرسانی رکوردهای DNS داشته باشد.
مرحله چهارم: اتصال اولیه با SSH
بعد از اینکه اینستنس ساخته شد و وضعیت آن به Running تغییر کرد، میتوانید از طریق SSH به آن متصل شوید. اگر از کلید SSH استفاده کردهاید، دستور زیر را در ترمینال خود اجرا کنید:
ssh -i ~/.ssh/mykey.pem root@185.10.10.10
اگر از رمز عبور استفاده کردهاید، دستور سادهتر است:
ssh root@185.10.10.10
در اولین ورود، سیستم از شما میخواهد رمز عبور را وارد کنید. بعد از ورود، بلافاصله این دستورات را اجرا کنید تا سیستم بهروز باشد:
apt update && apt upgrade -y # برای Ubuntu/Debian
خطای رایج: Permission denied در SSH
یکی از رایجترین خطاها هنگام اتصال SSH، خطای Permission denied (publickey) است. این معمولاً به این معنی است که کلید خصوصی شما با کلید عمومی که روی سرور قرار دادهاید مطابقت ندارد. برای رفع این مشکل:
- مطمئن شوید مسیر فایل کلید درست است.
- دسترسی فایل کلید را با
chmod 600 ~/.ssh/mykey.pemاصلاح کنید. - اگر از Windows استفاده میکنید، از PowerShell یا Windows Terminal استفاده کنید، نه CMD قدیمی.
مرحله پنجم: تنظیمات امنیتی اولیه
بعد از اتصال موفق، چند تنظیم امنیتی ضروری را انجام دهید تا سرور ابری شما در برابر حملات اولیه محافظت شود.
ساخت کاربر غیر ریشه
کار کردن با کاربر root ریسک بالایی دارد، چون هر اشتباهی میتواند کل سیستم را خراب کند. یک کاربر معمولی بسازید و به آن دسترسی sudo بدهید:
adduser myuser
usermod -aG sudo myuser
سپس با کاربر جدید وارد شوید و از این به بعد با آن کار کنید. برای دسترسی ریشه، از sudo استفاده کنید.
غیرفعال کردن ورود با رمز عبور
اگر از کلید SSH استفاده میکنید، ورود با رمز عبور را غیرفعال کنید تا حملات Brute Force بیاثر شوند. فایل /etc/ssh/sshd_config را ویرایش کنید:
PasswordAuthentication no
PermitRootLogin no
بعد از تغییر، سرویس SSH را ریاستارت کنید:
systemctl restart sshd
قبل از قطع اتصال فعلی، یک ترمینال جدید باز کنید و مطمئن شوید اتصال با کلید جدید برقرار میشود. اگر خطایی رخ داد، اتصال فعلی را نبندید تا بتوانید مشکل را برطرف کنید.
پیکربندی فایروال
فایروال UFW را فعال کنید و فقط پورتهای لازم را باز بگذارید:
ufw allow OpenSSH
ufw allow 80/tcp # برای HTTP
ufw allow 443/tcp # برای HTTPS
ufw enable
این کار باعث میشود پورتهای غیرضروری بسته بمانند و سطح حمله کاهش یابد.
جمعبندی و گامهای بعدی
شما حالا یک سرور ابری فعال دارید که از طریق SSH به آن متصل میشوید و تنظیمات امنیتی اولیه را انجام دادهاید. این زیرساخت، پایه هر پروژهای است: میتوانید وبسرور Nginx نصب کنید، داکر راهاندازی کنید، یا یک دیتابیس اختصاصی بسازید.
اگر در هر مرحله به مشکل برخوردید، لاگهای سیستم را بررسی کنید. برای مثال، لاگ SSH در /var/log/auth.log قرار دارد و اطلاعات دقیقی درباره تلاشهای اتصال نشان میدهد. همچنین، مستندات رسمی سرورنت و جامعه کاربری لینوکس منابع خوبی برای عیبیابی هستند.
سرور ابری یک ابزار قدرتمند است، اما مسئولیت نگهداری آن با شماست. بهروزرسانی منظم سیستم، پشتیبانگیری دورهای و نظارت بر منابع، عادتهایی هستند که در بلندمدت از دردسرهای بزرگ جلوگیری میکنند. حالا که اولین اینستنس خود را ساختهاید، وقت آن است که پروژه خود را روی آن مستقر کنید.