Как создать MongoDB на VPS
MongoDB – популярная база данных NoSQL, известная своей гибкостью, масштабируемостью и производительностью. Она хранит данные в гибких, JSON-подобных документах, что идеально подходит для разработчиков, работающих с динамичными, быстро меняющимися приложениями. Если вы решили запустить MongoDB на своем собственном виртуальном частном сервере (VPS), вас ожидает полезный опыт, который даст вам полный контроль над средой базы данных. В этом руководстве мы рассмотрим пошаговый процесс настройки MongoDB на VPS.
Необходимые условия
Прежде чем мы начнем, убедитесь, что у вас есть следующее:
- VPS с корневым доступом.
- Ubuntu 20.04 или аналогичный дистрибутив Linux.
- SSH-доступ к вашему VPS.
- Не менее 2 ГБ оперативной памяти (рекомендуется) для MongoDB.
- Базовые знания интерфейса командной строки (CLI) и команд Linux.
Шаг 1: Обновление системы
Сначала убедитесь, что ваш VPS обновлен. Войдите в систему через SSH и выполните следующие команды, чтобы обновить список пакетов системы и установить все ожидающие обновления:
sudo apt update
sudo apt upgrade -y
После обновления системы рекомендуется перезагрузить сервер, чтобы убедиться, что все обновления были применены правильно:
sudo reboot
Шаг 2: Установите MongoDB
MongoDB не включена в репозитории Ubuntu по умолчанию, поэтому перед установкой вам нужно будет добавить ее официальный репозиторий. Вот как установить MongoDB:
Добавить репозиторий MongoDB
- Импортируйте открытый GPG-ключ MongoDB:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
- Создайте файл списка для MongoDB:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
- Обновите локальный список пакетов:
sudo apt update
Установите пакеты MongoDB
Теперь установите пакеты MongoDB, выполнив следующую команду:
sudo apt install -y mongodb-org
Это установит MongoDB вместе с другими необходимыми компонентами (такими как mongod, демон MongoDB).
Шаг 3: Запуск и включение MongoDB
После установки необходимо запустить MongoDB и разрешить ему работать при запуске:
sudo systemctl start mongod
sudo systemctl enable mongod
Чтобы убедиться, что MongoDB запущена, проверьте ее статус:
sudo systemctl status mongod
Вы должны увидеть MongoDB в списке как активную (работающую). Если все выглядит хорошо, вы готовы перейти к настройке.
Шаг 4: Обеспечение безопасности MongoDB
По умолчанию MongoDB разрешает неаутентифицированный доступ, что не является идеальным для производственной среды. Чтобы защитить MongoDB, необходимо включить аутентификацию.
Создайте пользователя-администратора
- Сначала зайдите в оболочку MongoDB:
mongo
- Переключитесь на базу данных администратора:
использовать admin
- Создайте пользователя admin, выполнив следующую команду, заменив adminuser и password на желаемые имя пользователя и пароль:
db.createUser({
пользователь: "adminuser",
pwd: "password",
roles: [ { { role: "userAdminAnyDatabase", db: "admin" } ]
})
- Выйдите из оболочки MongoDB:
exit
Включить аутентификацию
- Откройте файл конфигурации MongoDB с помощью текстового редактора:
sudo nano /etc/mongod.conf
- В конфигурационном файле найдите следующую строку:
#security:
- Откомментируйте ее и добавьте следующую строку под ней:
security:
авторизация: включена
- Сохраните изменения и выйдите из редактора (в Nano нажмите Ctrl X , затем Y и Enter).
- Перезапустите MongoDB, чтобы применить изменения:
sudo systemctl restart mongod
Шаг 5: Настройте удаленный доступ к MongoDB (необязательно)
По умолчанию MongoDB прослушивает только localhost (127.0.0.1), что означает, что она доступна только с самого VPS. Если вам нужен удаленный доступ, вам придется настроить MongoDB на разрешение подключений с внешних IP-адресов. Вот как это сделать:
- Откройте файл конфигурации MongoDB:
sudo nano /etc/mongod.conf
- Найдите следующую строку:
bindIp: 127. 0.0.1
- Замените ее на:
bindIp: 0. 0.0.0
Это позволит MongoDB принимать соединения со всех IP-адресов.
- Сохраните изменения и выйдите из редактора.
- Перезапустите MongoDB:
sudo systemctl restart mongod
Защита удаленного доступа с помощью брандмауэра
Разрешите только доверенным IP-адресам подключаться к MongoDB, настроив брандмауэр вашего VPS. Если вы используете UFW (Uncomplicated Firewall), вот как разрешить удаленные подключения к порту MongoDB по умолчанию (27017):
- Разрешить доступ с определенного IP (замените your_ip на ваш IP-адрес ):
sudo ufw allow from your_ip to any port 27017
- Чтобы включить UFW (если он не включен):
sudo ufw enable
- Проверьте статус UFW, чтобы убедиться, что правило было добавлено:
sudo ufw status
Шаг 6: Проверка установки MongoDB
Чтобы убедиться, что MongoDB работает правильно, вы можете получить доступ к оболочке MongoDB и пройти аутентификацию, используя пользователя, созданного ранее:
- Подключитесь к MongoDB:
mongo -u adminuser -p --authenticationDatabase admin
- Теперь вы должны войти в оболочку MongoDB как пользователь admin.
Шаг 7: Резервное копирование и обслуживание
Очень важно регулярно создавать резервные копии баз данных MongoDB, особенно в производственной среде. Для резервного копирования данных можно использовать инструмент mongodump:
mongodump --out /path/to/backup/directory
Восстановить данные можно с помощью mongorestore:
mongorestore /path/to/backup/directory
Заключение
Выполнив эти шаги, вы успешно установили и настроили MongoDB на своем VPS. Теперь у вас есть полный контроль над средой MongoDB, которую можно точно настроить под свои нужды. Используете ли вы MongoDB для веб-приложений, больших данных или просто экспериментируете, ваша установка MongoDB на VPS обеспечит гибкость и производительность.
Не забывайте регулярно следить за состоянием экземпляра MongoDB и обеспечивать его безопасность, включив аутентификацию и ограничив доступ через брандмауэры. Счастливого кодинга!