MongoDB

پایگاه‌داده MongoDB یک دیتابیس NoSQL و مبتنی بر اسناد (Document-based) است که برای مقیاس‌پذیری، انعطاف‌پذیری و دسترس‌پذیری بالا طراحی شده است. برخلاف پایگاه‌های داده رابطه‌ای که از جدول‌ها و سطرها استفاده می‌کنند، MongoDB داده‌ها را در قالب اسناد منعطف و مشابه JSON ذخیره می‌کند؛ قابلیتی که آن را برای مدیریت داده‌های غیرساخت‌یافته یا نیمه‌ساخت‌یافته بی‌نظیر می‌سازد. پشتیبانی از طرح‌های پویا (Dynamic Schemas) در این دیتابیس به شما اجازه می‌دهد تا ساختار داده‌ها را بدون نیاز به مهاجرت (Migration) تغییر دهید.

مراحل استقرار

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

متغیرهای محیطی

کانتینر MongoDB برای بوت شدن و ایجاد ساختار اولیه، نیازمند تنظیم متغیرهای محیطی زیر در پنل داشبورد است:

  • نام پایگاه‌داده (اجباری): تعیین نام دیتابیس اولیه در فیلد MongoDB Database Name کاملا الزامی است.

  • پارامترهای اختیاری: از طریق بخش پارامترهای اختیاری می‌توانید مقادیری نظیر نسخه ایمیج دیتابیس، نام کاربری عادی (با مقدار پیش‌فرض username)، رمز عبور کاربر عادی، رمز عبور ریشه (Root Password) و نام کاربری ریشه (با مقدار پیش‌فرض server) را مدیریت کنید.

نکته: برای آموزش گام‌به‌گام نحوه تعریف متغیرهای اختصاصی، ConfigMapها و Secretها در داشبورد، به مستندات متغیرهای محیطی مراجعه کنید.

اطلاعات اتصال و دسترسی

پس از استقرار موفق، اطلاعات اتصال به دیتابیس در داشبورد سرویس در دسترس خواهد بود. در استقرار این سرویس، الزامات زیرساختی زیر برقرار است:

  • فضای ذخیره‌سازی: این دیتابیس جهت ذخیره پایدار اسناد (Documents)، نیازمند تخصیص دیسک اختصاصی (Volume) است.

  • سطح دسترسی سیستمی: کانتینر دیتابیس با سطح دسترسی کاربر عادی (Non-Root) اجرا می‌شود؛ بنابراین امکان اعمال تغییرات سیستمی در هسته کانتینر یا استفاده از دسترسی ریشه را ندارید.

  • تخصیص منابع ویژه: به دلیل نیاز به توان پردازشی بالا در ساختار NoSQL، پلن پایه برای MongoDB در پلتفرم قدرتمندتر از سایر دیتابیس‌ها در نظر گرفته شده و از ۴ گیگابایت رم، ۲ هسته پردازنده و ۱ گیگابایت دیسک شروع می‌شود. همچنین امکان شخصی‌سازی دقیق منابع فراهم است. روشن گذاشتن قابلیت بکاپ خودکار برای حفظ داده‌ها اکیدا پیشنهاد می‌شود.

اتصال از طریق کلاینت‌های خارجی

برای اتصال، مدیریت و تست دیتابیس از خارج از کلاستر، می‌بایست ابزار رسمی mongosh را بر روی سیستم‌عامل خود نصب کنید:

نصب روی توزیع‌های RHEL/Fedora:

sudo touch /etc/yum.repos.d/mongodb-org-7.0.repo && cat > /etc/yum.repos.d/mongodb-org-7.0.repo <<EOF
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc
EOF

sudo yum install -y mongodb-mongosh

نصب روی توزیع‌های Debian/Ubuntu:

sudo apt-get install gnupg
wget -qO- https://www.mongodb.org/static/pgp/server-7.0.asc | sudo tee /etc/apt/trusted.gpg.d/server-7.0.asc
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
sudo apt-get update
sudo apt-get install -y mongodb-mongosh

نصب در سیستم‌عامل Windows:

در ویندوز می‌بایست ابزار WSL2 را نصب یا فعال کنید تا دستورات لینوکس در محیط مجازی قابل اجرا باشند.

دستور تست اتصال:

پس از نصب ابزار mongosh، با استفاده از دستور زیر به دیتابیس متصل شوید:

mongosh "mongodb://<USERNAME>:<PASSWORD>@<SUB-DOMAIN>:<NodePort>"

نکات استخراج متغیرهای اتصال

  • مقدار هاست: به جای متغیر <SUB-DOMAIN>، مقداری که هنگام ساخت اپلیکیشن در قسمت Sub-domain وارد کردید را قرار دهید (مثال: my-mongo.apps.teh1.abrhapaas.com).

  • مقدار پورت: به جای متغیر <NodePort> باید مقدار پورت اختصاص‌یافته خروجی را وارد کنید. برای یافتن این پورت، در داشبورد سرویس روی دکمه‌ی «مدیریت اپلیکیشن» کلیک کرده و از پنل کناری، در قسمت «تنظیمات دامنه و IP» مقدار NodePort را کپی کنید. (این مقدار با پورت دیفالت داخلی دیتابیس متفاوت است).