Jak utworzyć instancję MongoDB na VPS
Jak utworzyć instancję MongoDB na VPS
Wdrożenie MongoDB na Wirtualnym Serwerze Prywatnym (VPS) daje pełną kontrolę nad infrastrukturą bazy danych – idealne dla programistów, startupów i organizacji, które priorytetowo traktują wydajność, elastyczność i suwerenność danych. Ten przewodnik przeprowadzi Cię przez zaawansowane kroki instalacji, konfiguracji, zabezpieczania i optymalizacji MongoDB na VPS.
🛠️ Krok 1: Zaktualizuj swój system
sudo apt update && sudo apt upgrade -yUstaw swoją nazwę hosta i strefę czasową:
hostnamectl set-hostname mongodb-server
timedatectl set-timezone UTC📦 Krok 2: Zainstaluj MongoDB
1. Importuj klucz 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. Dodaj repozytorium 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.listUwaga: Zastąp focal jammy lub swoją wersją, jeśli używasz Ubuntu 22.04.
3. Zainstaluj MongoDB
sudo apt updatesudo apt install -y mongodb-org🧪 Krok 3: Uruchom i włącz MongoDB
sudo systemctl start mongodsudo systemctl enable mongodSprawdź status:
sudo systemctl status mongod🔐 Krok 4: Zabezpiecz swój serwer MongoDB
Domyślnie MongoDB wiąże się z 127.0.0.1. Jeśli chcesz zdalny dostęp:
1. Edytuj konfigurację
sudo nano /etc/mongod.confZnajdź linię bindIp pod net: i zmodyfikuj:
bindIp: 127.0.0.1,0.0.0.02. Włącz uwierzytelnianie
W sekcji security: dodaj:
security:
authorization: enabledUruchom ponownie MongoDB:
sudo systemctl restart mongod👤 Krok 5: Utwórz użytkownika administratora
Uzyskaj dostęp do powłoki MongoDB:
mongoshUtwórz użytkownika administratora:
use admin
db.createUser({
user: "admin",
pwd: "StrongPassword123!",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})Wyjdź z exit, a następnie przetestuj logowanie:
mongosh -u admin -p --authenticationDatabase admin🛡️ Krok 6: Zabezpiecz VPS i MongoDB
1. Zapora UFW
sudo ufw allow OpenSSH
sudo ufw allow 27017/tcp
sudo ufw enableDla zdalnego dostępu z jednego adresu IP:
sudo ufw allow from YOUR.IP.ADDRESS to any port 270172. Fail2Ban (ochrona SSH)
sudo apt install fail2ban -ysudo systemctl enable fail2ban⚙️ Krok 7: Zaawansowana optymalizacja (opcjonalnie)
1. Zestaw replik dla wysokiej dostępności
Zmodyfikuj /etc/mongod.conf:
replication:
replSetName: "rs0"Zainicjuj:
mongosh
rs.initiate()2. Strategia kopii zapasowych
Użyj mongodump do tworzenia kopii zapasowych:
mongodump --out /var/backups/mongodb/$(date +%F)Automatyzuj za pomocą cron:
crontab -e
# Daily at 2 AM
0 2 * * * /usr/bin/mongodump --out /var/backups/mongodb/$(date +%F)3. Użyj TLS/SSL do szyfrowanych połączeń
Generuj certyfikaty i skonfiguruj sekcję net.ssl w mongod.conf. Wymaga to dodatkowej konfiguracji oraz zaufanego urzędnika certyfikacyjnego (CA).
🧪 Krok 8: Przetestuj swoje wdrożenie
Możesz przetestować zdalne połączenie:
mongosh "mongodb://admin:StrongPassword123!@your-server-ip:27017/admin"Zastąp your-server-ip swoim adresem IP VPS lub nazwą domeny.
📊 Krok 9: Monitoruj swoje MongoDB
Rozważ narzędzia takie jak:
Agent monitorujący MongoDB Atlas (opcjonalnie)
Prometheus + Grafana z eksportami
Niestandardowe powiadamianie za pomocą cron i logwatch
Możesz również bezpośrednio przeglądać logi:
sudo tail -f /var/log/mongodb/mongod.log✅ Ostateczna lista kontrolna
MongoDB zainstalowane i działa
Zdalny dostęp zabezpieczony
Wymuszone uwierzytelnianie administratora
Zapora skonfigurowana
Kopie zapasowe w miejscu
Opcjonalne monitorowanie włączone
🧩 Podsumowanie
Uruchomienie MongoDB na VPS daje niezrównaną elastyczność, ale wymaga starannej uwagi na bezpieczeństwo, kopie zapasowe i wydajność. Postępując zgodnie z tym przewodnikiem, stworzyłeś bezpieczną i gotową do produkcji instancję MongoDB, gotową do skalowania w miarę rozwoju aplikacji.


