
اگر حجم تصاویر، ویدئوها، فایلهای کاربران یا بکآپهای پروژه شما زیاد شده است، ذخیره فایلها روی دیسک اصلی سرور میتواند بهمرور باعث کمبود فضای ذخیرهسازی، افزایش مصرف منابع و دشوار شدن توسعه پروژه شود. ذخیرهسازی ابری MinIO راهکاری متنباز برای مدیریت فایلهاست که با استاندارد Amazon S3 سازگاری دارد و میتواند برای وبسایتها، اپلیکیشنها، پروژههای Node.js، وردپرس و بسیاری از سرویسهای دیگر استفاده شود.
با راهاندازی MinIO روی زیرساخت آرانیک، میتوانید فایلهای پروژه را از سرور اصلی جدا کنید و یک فضای ذخیرهسازی مستقل برای تصاویر، فایلهای استاتیک، بکآپها و سایر دادهها داشته باشید.
ذخیرهسازی ابری MinIO چیست؟
MinIO یک سیستم Object Storage متنباز است که برای ذخیره و مدیریت فایلها طراحی شده است. برخلاف ذخیرهسازی سنتی روی فایلسیستم سرور، فایلها در قالب Object و داخل Bucketها مدیریت میشوند.
یکی از مهمترین مزایای MinIO، سازگاری با Amazon S3 API است. بنابراین بسیاری از برنامهها، کتابخانهها و افزونههایی که از S3 پشتیبانی میکنند، میتوانند با MinIO نیز کار کنند.
برای مثال، میتوانید از MinIO برای موارد زیر استفاده کنید:
ذخیره تصاویر و فایلهای وردپرس
نگهداری فایلهای کاربران در اپلیکیشنها
ذخیره فایلهای استاتیک وبسایت
نگهداری بکآپ دیتابیس و سرور
ذخیره فایلهای پروژههای Node.js
ساخت فضای ذخیرهسازی اختصاصی برای اپلیکیشنها
مدیریت فایلهای حجیم بدون وابستگی به دیسک سرور اصلی
چرا MinIO را بهجای ذخیرهسازی روی سرور اصلی استفاده کنیم؟
وقتی تمام فایلهای وبسایت روی همان سروری قرار داشته باشند که اپلیکیشن روی آن اجرا میشود، افزایش حجم فایلها مستقیماً روی فضای دیسک سرور تأثیر میگذارد.
با استفاده از ذخیرهسازی ابری MinIO میتوانید فضای فایلها را از محیط اجرای برنامه جدا کنید. در نتیجه، سرور اصلی بیشتر روی اجرای اپلیکیشن، پردازش درخواستها و سرویسدهی تمرکز میکند.
منابع مورد نیاز برای اجرای MinIO
منابع مورد نیاز به حجم داده، تعداد درخواستها و تعداد کاربران پروژه بستگی دارد. برای پروژههای کوچک و محیطهای آزمایشی میتوان از منابع پایینتر استفاده کرد و برای سرویسهای پرترافیک منابع بیشتری در نظر گرفت.
بهعنوان یک نقطه شروع، میتوان این منابع را در نظر گرفت:
پروژههای کوچک و آزمایشی: ۲ گیگابایت RAM و ۱ هسته vCPU
وبسایتها و پروژههای تولیدی: ۴ گیگابایت RAM و ۲ هسته vCPU یا بیشتر
ظرفیت دیسک نیز باید بر اساس حجم فایلهایی که قرار است ذخیره شوند انتخاب شود.
راهاندازی MinIO روی آرانیک
در آرانیک میتوانید MinIO را از طریق قابلیت Easy Install راهاندازی کنید و نیازی به نصب دستی تمام اجزای سرویس ندارید.
مراحل راهاندازی
۱. ورود به پنل آرانیک
وارد حساب کاربری خود شوید و گزینه ساخت سرویس جدید را انتخاب کنید.
۲. انتخاب MinIO
از فهرست سرویسها و برنامههای آماده، MinIO را انتخاب کنید.
۳. انتخاب منابع
منابع مورد نیاز مانند vCPU، RAM و فضای دیسک را بر اساس نیاز پروژه مشخص کنید.
۴. ساخت سرویس
تنظیمات را تأیید کنید تا سرویس MinIO ایجاد شود. پس از راهاندازی، اطلاعات مورد نیاز برای ورود به Console و مدیریت فضای ذخیرهسازی در اختیار شما قرار میگیرد.
به این ترتیب، بهجای نصب و پیکربندی دستی MinIO، میتوانید فرایند راهاندازی را از طریق زیرساخت آرانیک انجام دهید.
ساخت Bucket در MinIO
بعد از راهاندازی MinIO، برای ذخیره فایلها باید یک Bucket ایجاد کنید.
Bucket را میتوان مانند یک فضای منطقی برای دستهبندی فایلها در نظر گرفت. برای مثال، یک وبسایت میتواند Bucketهای جداگانهای برای تصاویر، فایلهای کاربران و بکآپها داشته باشد.
مراحل ساخت Bucket
۱. وارد MinIO Console شوید.
۲. از منوی مدیریت، بخش Buckets را انتخاب کنید.
۳. گزینه ایجاد Bucket جدید را بزنید.
۴. یک نام مشخص برای Bucket انتخاب کنید؛ برای مثال:
my-app-assets
۵. سطح دسترسی Bucket را بر اساس نوع فایل مشخص کنید.
برای فایلهایی که قرار است مستقیماً در وبسایت نمایش داده شوند، میتوان دسترسی عمومی را در نظر گرفت. اما برای فایلهای حساس مانند بکآپ دیتابیس یا اطلاعات خصوصی کاربران، بهتر است Bucket خصوصی باشد.
Access Key و Secret Key در MinIO
برای اتصال اپلیکیشنها به MinIO، به اطلاعات احراز هویت نیاز دارید.
دو مورد مهم در این فرایند عبارتاند از:
Access Key: شناسه دسترسی به سرویس
Secret Key: کلید محرمانه برای احراز هویت
این اطلاعات مانند نام کاربری و رمز عبور برای ارتباط برنامه با فضای ذخیرهسازی عمل میکنند.
Secret Key را در اختیار افراد غیرمجاز قرار ندهید و آن را مستقیماً داخل کدهای عمومی، مخزن Git یا فایلهای قابل دسترسی کاربران قرار ندهید.
اتصال MinIO به Node.js
یکی از مزیتهای MinIO، سازگاری آن با API استاندارد S3 است. بنابراین پروژههای Node.js میتوانند با استفاده از کتابخانههای S3 به MinIO متصل شوند.
برای اتصال، معمولاً اطلاعات زیر مورد نیاز است:
Endpoint مربوط به MinIO
Access Key
Secret Key
نام Bucket
Region
تنظیمات مربوط به S3
در پروژههای Node.js میتوانید از AWS SDK برای ارتباط با MinIO استفاده کنید. در این حالت، بهجای سرویس AWS، Endpoint مربوط به MinIO را به برنامه معرفی میکنید.
این روش برای پروژههایی مناسب است که فایلهای کاربران، تصاویر، ویدئوها یا فایلهای خروجی را مستقیماً روی Object Storage ذخیره میکنند.
اتصال ذخیرهسازی ابری MinIO به وردپرس
یکی از کاربردهای مهم MinIO، انتقال فایلهای رسانهای وردپرس از فضای اصلی سرور به Object Storage است.
برای این کار میتوانید از افزونههای وردپرس که از S3 Compatible Storage پشتیبانی میکنند استفاده کنید.
مراحل اتصال MinIO به WordPress
۱. نصب افزونه
یکی از افزونههای سازگار با S3 را روی وردپرس نصب و فعال کنید.
۲. انتخاب Provider
در تنظیمات افزونه، ارائهدهنده را روی گزینهای مانند Amazon S3 / S3 Compatible قرار دهید.
۳. وارد کردن Endpoint
آدرس Endpoint اختصاصی MinIO را وارد کنید.
۴. وارد کردن کلیدهای دسترسی
Access Key و Secret Key مربوط به MinIO را در تنظیمات افزونه وارد کنید.
۵. انتخاب Bucket
Bucket مورد نظر برای ذخیره فایلهای رسانهای وردپرس را مشخص کنید.
پس از تکمیل تنظیمات، فایلهای رسانهای وردپرس میتوانند روی MinIO ذخیره شوند و به این ترتیب وابستگی فایلهای رسانهای به دیسک اصلی سرور کاهش پیدا میکند.
مدیریت ظرفیت و ارتقای منابع
با افزایش حجم فایلهای پروژه، ممکن است فضای ذخیرهسازی بیشتری نیاز داشته باشید. در این شرایط، منابع سرویس MinIO را متناسب با نیاز پروژه افزایش دهید.
این موضوع بهخصوص برای پروژههایی اهمیت دارد که حجم فایلهای آنها بهصورت مداوم افزایش پیدا میکند؛ مانند:
فروشگاههای اینترنتی
وبسایتهای انتشار ویدئو
سامانههای مدیریت اسناد
اپلیکیشنهای دارای فایل کاربر
سایتهای خبری و رسانهای
پروژههای SaaS
بهتر است ظرفیت دیسک را بر اساس رشد آینده پروژه نیز در نظر بگیرید تا در زمان افزایش دادهها با کمبود فضای ذخیرهسازی مواجه نشوید.
بکآپگیری از MinIO
Object Storage جایگزین بکآپ نیست و بهتر است برای دادههای مهم، سیاست پشتیبانگیری جداگانه داشته باشید.
برای مدیریت و انتقال دادههای MinIO میتوان از ابزارهایی مانند MinIO Client یا mc استفاده کرد.
در پروژههای حساس بهتر است علاوه بر نسخه اصلی دادهها، یک نسخه پشتیبان در فضای ذخیرهسازی یا زیرساخت دیگری نیز نگهداری شود.
Replication در MinIO
در پروژههایی که دسترسپذیری و حفاظت از داده اهمیت زیادی دارد، میتوان از قابلیتهای Replication برای همگامسازی دادهها میان محیطهای مختلف استفاده کرد.
Replication به شما کمک میکند دادهها را در یک محیط دیگر نیز نگهداری کنید تا در صورت بروز مشکل در محیط اصلی، امکان بازیابی اطلاعات وجود داشته باشد.
البته نوع معماری Replication باید بر اساس حجم داده، تعداد سرورها، نیازمندیهای دسترسپذیری و سیاست بکآپ پروژه طراحی شود.
آیا MinIO با Amazon S3 سازگار است؟
بله. MinIO از API سازگار با S3 استفاده میکند و همین موضوع باعث شده است بسیاری از ابزارها و برنامههایی که برای S3 طراحی شدهاند، امکان اتصال به MinIO را نیز داشته باشند.
بنابراین اگر برنامه شما از S3 پشتیبانی میکند، در بسیاری از سناریوها میتوانید با تغییر Endpoint و اطلاعات دسترسی، آن را به MinIO متصل کنید.
آیا برای استفاده از MinIO به دانش DevOps نیاز داریم؟
اگر MinIO را بهصورت دستی روی یک سرور نصب و پیکربندی کنید، آشنایی با لینوکس، شبکه، Docker، SSL و مدیریت سرور میتواند ضروری باشد.
اما در آرانیک، با استفاده از Easy Install، بخش زیادی از فرایند راهاندازی سادهتر میشود و میتوانید MinIO را از طریق پنل سرویس ایجاد کنید.
آیا میتوان فایلهای MinIO را مستقیماً در وبسایت نمایش داد؟
بله، اما نحوه دسترسی باید بر اساس نوع فایل تعیین شود.
برای فایلهای عمومی مانند تصاویر وبسایت میتوان دسترسی مناسب برای نمایش مستقیم فایل تعریف کرد. برای فایلهای خصوصی بهتر است از دسترسی عمومی استفاده نشود و فایلها از طریق URLهای امن یا فرایند احراز هویت در اختیار کاربر قرار بگیرند.
بنابراین، Public کردن Bucket برای تمام فایلها توصیه نمیشود و باید سیاست دسترسی هر پروژه بر اساس نوع داده مشخص شود.
چه زمانی استفاده از MinIO انتخاب مناسبی است؟
MinIO زمانی انتخاب مناسبی است که پروژه شما به فضای Object Storage مستقل از سرور اصلی نیاز داشته باشد.
برای مثال، اگر یک فروشگاه اینترنتی دارید و روزانه تعداد زیادی تصویر محصول آپلود میکنید، ذخیره همه تصاویر روی دیسک سرور اصلی میتواند در بلندمدت مدیریت فضای دیسک را دشوار کند.
همچنین اگر اپلیکیشن شما فایلهای زیادی از کاربران دریافت میکند، میتوانید فایلها را در MinIO ذخیره کنید و سرور اصلی را بیشتر برای اجرای منطق برنامه و API اختصاص دهید.
مزایای استفاده از MinIO روی آرانیک
با استفاده از MinIO روی زیرساخت آرانیک میتوانید یک Object Storage سازگار با S3 برای پروژههای خود ایجاد کنید.
مهمترین مزایا عبارتاند از:
راهاندازی ساده با Easy Install
سازگاری با S3 API
امکان اتصال به Node.js و سایر زبانها و فریمورکها
قابلیت اتصال به وردپرس
مناسب برای ذخیره تصاویر و فایلهای حجیم
امکان مدیریت Bucket و سطح دسترسی
امکان توسعه منابع متناسب با نیاز پروژه
پرداخت متناسب با منابع زیرساختی مورد استفاده
امکان استفاده برای بکآپ و فایلهای استاتیک
جمعبندی
MinIO یک راهکار متنباز و S3-Compatible برای ذخیرهسازی Object است که میتواند فایلهای پروژه را از دیسک اصلی سرور جدا کند.
اگر وبسایت یا اپلیکیشن شما حجم زیادی از تصاویر، ویدئو، فایلهای کاربران یا بکآپ تولید میکند، استفاده از ذخیرهسازی ابری MinIO میتواند مدیریت فایلها و توسعه زیرساخت را سادهتر کند.
با راهاندازی MinIO روی آرانیک، میتوانید سرویس خود را ایجاد کنید، Bucket بسازید، کلیدهای دسترسی دریافت کنید و آن را به سرویسهایی مانند Node.js و WordPress متصل کنید.
همین حالا MinIO خود را راهاندازی کنید
اگر برای پروژه خود به یک فضای ذخیرهسازی سازگار با S3 نیاز دارید، میتوانید MinIO را روی زیرساخت آرانیک راهاندازی کنید و فضای ذخیرهسازی فایلهای پروژه را از سرور اصلی جدا کنید.
سرویس MinIO خود را در آرانیک بسازید و فضای ذخیرهسازی پروژهتان را حرفهایتر مدیریت کنید.
پرسشهای متداول
MinIO چه تفاوتی با فضای فایل معمولی دارد؟
MinIO داده را بهصورت Object داخل Bucket و از طریق API سازگار با S3 ارائه میکند، نه مانند یک پوشه اشتراکی معمولی.
Bucket عمومی بسازیم یا خصوصی؟
حالت خصوصی پیشفرض امنتری است. دسترسی عمومی را فقط برای فایلهایی فعال کنید که واقعاً باید بدون احراز هویت دیده شوند.
آیا Replication جای Backup را میگیرد؟
خیر. Replication دسترسپذیری را بهتر میکند، اما حذف یا خرابشدن داده میتواند تکثیر شود؛ Backup مستقل همچنان لازم است.
منابع رسمی
قدم بعدی: برای راهاندازی سرویس مرتبط، وارد داشبورد آرانیک شوید و از بخش Easy Install سرویس را بسازید.
سوالات متداول
MinIO چه تفاوتی با فضای فایل معمولی دارد؟
MinIO داده را بهصورت Object داخل Bucket و از طریق API سازگار با S3 ارائه میکند، نه مانند یک پوشه اشتراکی معمولی.
Bucket عمومی بسازیم یا خصوصی؟
حالت خصوصی پیشفرض امنتری است. دسترسی عمومی را فقط برای فایلهایی فعال کنید که واقعاً باید بدون احراز هویت دیده شوند.
آیا Replication جای Backup را میگیرد؟
خیر. Replication دسترسپذیری را بهتر میکند، اما حذف یا خرابشدن داده میتواند تکثیر شود؛ Backup مستقل همچنان لازم است.
نظرات کاربران