Як створити екземпляр 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. Увімкніть автентифікацію
У розділі security: додайте
security:
authorization: enabledПерезапустіть MongoDB:
sudo systemctl restart mongodкрок 5: Створення користувача адміністратора
Увійдіть в оболонку MongoDB:
mongoshСтворіть користувача admin:
use admin
db.createUser({
user: "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/$(дата %F)Автоматизуйте за допомогою cron:
crontab -e
# Щодня о 2 годині ночі
0 2 * * * * /usr/bin/mongodump --out /var/backups/mongodb/$(дата \%F)3. Використання TLS/SSL для зашифрованих з’єднань
Згенеруйте сертифікати і налаштуйте розділ net.ssl в mongod.conf. Це вимагає додаткових налаштувань і довіреного центру сертифікації (ЦС).
крок 8: Перевірте своє розгортання
Ви можете протестувати віддалене підключення:
mongosh "mongodb://admin:StrongPassword123!@your-server-ip:27017/admin"Замініть your-server-ip на IP-адресу вашого VPS або ім’я домену.
крок 9: Моніторинг MongoDB
Розглянемо такі інструменти як:
MongoDB Atlas Monitoring Agent (необов’язково)
Prometheus Grafana з експортерами
Кастомні сповіщення за допомогою cron та logwatch
Ви також можете переглядати логи безпосередньо:
sudo tail -f /var/log/mongodb/mongod.log✅ Фінальний чек-лист
MongoDB встановлено та запущено
Віддалений доступ захищено
Ввімкнено автентифікацію адміністратора
Налаштовано брандмауер
Створені резервні копії
Увімкнено додатковий моніторинг
🧩 Висновок
Запуск MongoDB на VPS дає вам неперевершену гнучкість, але вимагає ретельної уваги до безпеки, резервного копіювання та продуктивності. Дотримуючись цього посібника, ви створили безпечний і готовий до роботи екземпляр MongoDB, готовий до масштабування в міру зростання вашого додатку.


