Как создать экземпляр MongoDB на VPS
Как создать экземпляр MongoDB на VPS
Развертывание MongoDB на виртуальном частном сервере (VPS) дает вам полный контроль над инфраструктурой базы данных – идеальное решение для разработчиков, стартапов и организаций, для которых важны производительность, гибкость и суверенитет данных. В этом руководстве вы узнаете, как установить, настроить, защитить и оптимизировать MongoDB на VPS.
🛠️ Шаг 1: Обновите систему
sudo apt update && sudo apt upgrade -yУстановите имя хоста и часовой пояс:
hostnamectl set-hostname mongodb-server
timedatectl set-timezone UTC📦 Шаг 2: Установите MongoDB
1. Импортируйте GPG-ключ MongoDB
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-6.0.gpg2. Добавьте репозиторий MongoDB
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.listПримечание: Замените focal на jammy или вашу версию, если используете Ubuntu 22.04.
3. Установите MongoDB
sudo apt updatesudo apt install -y mongodb-org🧪 Шаг 3: Запустите и включите MongoDB
sudo systemctl start mongodsudo systemctl enable mongodПроверьте статус:
sudo systemctl status mongod🔐 Шаг 4: Защитите свой сервер MongoDB
По умолчанию MongoDB привязывается к 127.0.0.1. Если вам нужен удаленный доступ:
1. Отредактируйте конфиг
sudo nano /etc/mongod.confНайдите строку bindIp под net: и измените ее:
bindIp: 127. 0.0.1,0.0.0.02. Включите аутентификацию
В разделе безопасность: добавьте:
безопасность:
авторизация: включенаПерезапустите MongoDB:
sudo systemctl restart mongod👤 Шаг 5: Создание пользователя Admin
Войдите в оболочку MongoDB:
mongoshСоздайте пользователя-администратора:
use admin
db.createUser({
пользователь: "admin",
pwd: "StrongPassword123!",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})Выйдите с помощью exit, затем проверьте вход в систему:
mongosh -u admin -p --authenticationDatabase admin🛡️ Шаг 6: Защита VPS и MongoDB
1. Брандмауэр UFW
sudo ufw allow OpenSSH
sudo ufw allow 27017/tcp
sudo ufw enableДля удаленного доступа с одного IP:
sudo ufw allow from YOUR.IP.ADDRESS to any port 270172. Fail2Ban (защита SSH)
sudo apt install fail2ban -ysudo systemctl enable fail2ban⚙️ Шаг 7: Расширенная оптимизация (необязательно)
1. Набор реплик для высокой доступности
Измените /etc/mongod.conf:
replication:
replSetName: "rs0"Инициализация:
mongosh
rs.initiate()2. Стратегия резервного копирования
Для резервного копирования используйте mongodump:
mongodump --out /var/backups/mongodb/$(date %F)Автоматизируйте с помощью cron:
crontab -e
# Ежедневно в 2 часа ночи
0 2 * * * /usr/bin/mongodump --out /var/backups/mongodb/$(date \%F)3. Использование TLS/SSL для зашифрованных соединений
Сгенерируйте сертификаты и настройте секцию net.ssl в mongod.conf. Это требует дополнительных настроек и доверенного центра сертификации (CA).
🧪 Шаг 8: Проверка развертывания
Вы можете протестировать удаленное подключение:
mongosh "mongodb://admin:StrongPassword123!@your-server-ip:27017/admin"Замените your-server-ip на IP-адрес вашего VPS или доменное имя.
📊 Шаг 9: Мониторинг MongoDB
Рассмотрите такие инструменты, как:
Агент мониторинга MongoDB Atlas (опционально)
Prometheus Grafana с экспортерами
Пользовательские оповещения с помощью cron и logwatch
Вы также можете просматривать журналы напрямую:
sudo tail -f /var/log/mongodb/mongod.log✅ Заключительный контрольный список
MongoDB установлена и работает
Удаленный доступ защищен
Обеспечена аутентификация администратора
Брандмауэр настроен
Созданы резервные копии
Включен дополнительный мониторинг
🧩 Заключение
Запуск MongoDB на VPS дает вам непревзойденную гибкость, но требует пристального внимания к безопасности, резервному копированию и производительности. Следуя этому руководству, вы создали безопасный и готовый к производству экземпляр MongoDB, готовый к масштабированию по мере роста вашего приложения.


