Cum să creați o instanță MongoDB pe un VPS

Implementarea MongoDB pe un server privat virtual (VPS) vă oferă control complet asupra infrastructurii bazei de date – ideal pentru dezvoltatori, start-up-uri și organizații care acordă prioritate performanței, flexibilității și suveranității datelor. Acest ghid vă va ghida prin pașii avansați pentru a instala, configura, securiza și optimiza MongoDB pe un VPS.

🛠️ Pasul 1: Actualizați sistemul

sudo apt update && sudo apt upgrade -y

Setați numele de gazdă și fusul orar:

hostnamectl set-hostname mongodb-server
timedatectl set-timezone UTC

📦 Pasul 2: Instalați MongoDB

1. Importați cheia 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.gpg

2. Adăugați depozitul 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

Notă: Înlocuiți focal cu jammy sau versiunea dvs. dacă utilizați Ubuntu 22.04.

3. Instalați MongoDB

sudo apt update
sudo apt install -y mongodb-org

🧪 Pasul 3: Porniți și activați MongoDB

sudo systemctl start mongod
sudo systemctl enable mongod

Verificați starea:

sudo systemctl status mongod

🔐 Pasul 4: Securizați serverul MongoDB

În mod implicit, MongoDB se conectează la 127.0.0.1. Dacă doriți acces de la distanță:

1. Editați configurația

sudo nano /etc/mongod.conf

Găsiți linia bindIp sub net: și modificați:

bindIp: 127. 0.0.1,0.0.0.0

2. Activați autentificarea

Sub secțiunea security:, adăugați:

security:
authorization: enabled

Reporniți MongoDB:

sudo systemctl restart mongod

👤 Pasul 5: Crearea utilizatorului Admin

Accesați shell-ul MongoDB:

mongosh

Creați un utilizator admin:

use admin
db.createUser({
user: "admin",
pwd: "StrongPassword123!",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})

Ieșiți cu exit, apoi testați autentificarea:

mongosh -u admin -p --authenticationDatabase admin

🛡️ Pasul 6: Consolidarea VPS și MongoDB

1. Firewall UFW

sudo ufw allow OpenSSH
sudo ufw allow 27017/tcp
sudo ufw enable

Pentru acces de la distanță de la un singur IP:

sudo ufw allow from YOUR.IP.ADDRESS to any port 27017

2. Fail2Ban (protecție SSH)

sudo apt install fail2ban -y
sudo systemctl enable fail2ban

⚙️ Pasul 7: Optimizare avansată (opțional)

1. Set de replici pentru disponibilitate ridicată

Modificați fișierul /etc/mongod.conf:

replication:
replSetName: "rs0"

Inițializează:

mongosh
rs.initiate()

2. Strategia de backup

Utilizați mongodump pentru backup-uri:

mongodump --out /var/backups/mongodb/$(data %F)

Automatizați cu cron:

crontab -e
# Zilnic la 2 AM
0 2 * * * * /usr/bin/mongodump --out /var/backups/mongodb/$(data \%F)

3. Utilizarea TLS/SSL pentru conexiuni criptate

Generați certificate și configurați secțiunea net.ssl în mongod.conf. Acest lucru necesită mai multă configurare și o autoritate de certificare (CA) de încredere.

🧪 Pasul 8: Testați implementarea

Puteți testa conectivitatea la distanță:

mongosh "mongodb://admin:StrongPassword123!@your-server-ip:27017/admin"

Înlocuiți your-server-ip cu IP-ul VPS-ului dvs. sau cu numele domeniului.

📊 Pasul 9: Monitorizați MongoDB

Luați în considerare instrumente precum:

  • MongoDB Atlas Monitoring Agent (opțional)

  • Prometheus Grafana cu exportatori

  • Alertă personalizată cu cron și logwatch

De asemenea, puteți urmări jurnalele direct:

sudo tail -f /var/log/mongodb/mongod.log

✅ Lista de verificare finală

  • MongoDB instalat și în funcțiune

  • Acces la distanță securizat

  • Autentificarea administratorului impusă

  • Firewall configurat

  • Copii de rezervă instalate

  • Monitorizare opțională activată

🧩 Concluzie

Rularea MongoDB pe un VPS vă oferă o flexibilitate de neegalat, dar necesită o atenție deosebită pentru securitate, backup-uri și performanță. Urmând acest ghid, ați creat o instanță MongoDB sigură și pregătită pentru producție, gata să crească pe măsură ce aplicația dvs. se dezvoltă.