Как создать экземпляр MongoDB на VPS
Как создать экземпляр MongoDB на VPS
Развертывание MongoDB на виртуальном частном сервере (VPS) дает вам полный контроль над инфраструктурой базы данных — идеальное решение для разработчиков, стартапов и организаций, для которых важны производительность, гибкость и суверенитет данных. В этом руководстве вы узнаете, как установить, настроить, защитить и оптимизировать MongoDB на VPS.
🛠️ Шаг 1: Обновите систему
Установите имя хоста и часовой пояс:
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
🧪 Шаг 3: Запустите и включите MongoDB
Проверьте статус:
🔐 Шаг 4: Защитите свой сервер MongoDB
По умолчанию MongoDB привязывается к 127.0.0.1. Если вам нужен удаленный доступ:
1. Отредактируйте конфиг
Найдите строку bindIp под net: и измените ее:
2. Включите аутентификацию
В разделе безопасность: добавьте:
безопасность:
авторизация: включенаПерезапустите MongoDB:
👤 Шаг 5: Создание пользователя Admin
Войдите в оболочку MongoDB:
Создайте пользователя-администратора:
use admin
db.createUser({
пользователь: "admin",
pwd: "StrongPassword123!",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})Выйдите с помощью exit, затем проверьте вход в систему:
🛡️ Шаг 6: Защита VPS и MongoDB
1. Брандмауэр UFW
sudo ufw allow OpenSSH
sudo ufw allow 27017/tcp
sudo ufw enableДля удаленного доступа с одного IP:
2. Fail2Ban (защита SSH)
⚙️ Шаг 7: Расширенная оптимизация (необязательно)
1. Набор реплик для высокой доступности
Измените /etc/mongod.conf:
replication:
replSetName: "rs0"Инициализация:
mongosh
rs.initiate()2. Стратегия резервного копирования
Для резервного копирования используйте mongodump:
Автоматизируйте с помощью cron:
crontab -e
# Ежедневно в 2 часа ночи
0 2 * * * /usr/bin/mongodump --out /var/backups/mongodb/$(date \%F)3. Использование TLS/SSL для зашифрованных соединений
Сгенерируйте сертификаты и настройте секцию net.ssl в mongod.conf. Это требует дополнительных настроек и доверенного центра сертификации (CA).
🧪 Шаг 8: Проверка развертывания
Вы можете протестировать удаленное подключение:
Замените your-server-ip на IP-адрес вашего VPS или доменное имя.
📊 Шаг 9: Мониторинг MongoDB
Рассмотрите такие инструменты, как:
Агент мониторинга MongoDB Atlas (опционально)
Prometheus Grafana с экспортерами
Пользовательские оповещения с помощью cron и logwatch
Вы также можете просматривать журналы напрямую:
✅ Заключительный контрольный список
MongoDB установлена и работает
Удаленный доступ защищен
Обеспечена аутентификация администратора
Брандмауэр настроен
Созданы резервные копии
Включен дополнительный мониторинг
🧩 Заключение
Запуск MongoDB на VPS дает вам непревзойденную гибкость, но требует пристального внимания к безопасности, резервному копированию и производительности. Следуя этому руководству, вы создали безопасный и готовый к производству экземпляр MongoDB, готовый к масштабированию по мере роста вашего приложения.


