Comment créer une instance MongoDB sur un VPS
Comment créer une instance MongoDB sur un serveur privé virtuel (VPS)
Déployer MongoDB sur un serveur privé virtuel (VPS) vous donne un contrôle total sur votre infrastructure de base de données, ce qui est idéal pour les développeurs, les startups et les organisations qui privilégient la performance, la flexibilité et la souveraineté des données. Ce guide vous guidera à travers les étapes avancées pour installer, configurer, sécuriser et optimiser MongoDB sur un VPS.
🛠️ Étape 1 : Mettre à jour votre système
sudo apt update && sudo apt upgrade -yDéfinissez votre nom d’hôte et votre fuseau horaire :
hostnamectl set-hostname mongodb-server
timedatectl set-timezone UTC📦 Étape 2 : Installer MongoDB
1. Importer la clé GPG de 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. Ajouter le dépôt 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.listNote : Remplacez focal par jammy ou votre version si vous utilisez Ubuntu 22.04.
3. Installer MongoDB
sudo apt updatesudo apt install -y mongodb-org🧪 Étape 3 : Démarrer et activer MongoDB
sudo systemctl start mongodsudo systemctl enable mongodVérifiez l’état :
sudo systemctl status mongod🔐 Étape 4 : Sécuriser votre serveur MongoDB
Par défaut, MongoDB se lie à 127.0.0.1. Si vous souhaitez un accès à distance :
1. Modifiez la configuration
sudo nano /etc/mongod.confTrouvez la ligne bindIp sous net : et modifiez-la :
bindIp : 127. 0.0.1,0.0.0.02. Activer l’authentification
Dans la section security :, ajoutez :
security:
authorization: enabledRedémarrez MongoDB :
sudo systemctl restart mongod👤 Étape 5 : Créer l’utilisateur Admin
Accédez à l’interpréteur de commandes de MongoDB :
mongoshCréez un utilisateur admin :
use admin
db.createUser({
user: "admin",
pwd: "StrongPassword123 !",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})Quittez avec exit, puis testez la connexion :
mongosh -u admin -p --authenticationDatabase admin🛡️ Étape 6 : Durcir le VPS et MongoDB
1. Pare-feu UFW
sudo ufw allow OpenSSH
sudo ufw allow 27017/tcp
sudo ufw enablePour l’accès à distance à partir d’une seule adresse IP :
sudo ufw allow from YOUR.IP.ADDRESS to any port 270172. Fail2Ban (protection SSH)
sudo apt install fail2ban -ysudo systemctl enable fail2ban⚙️ Étape 7 : Optimisation avancée (facultatif)
1. Jeu de répliques pour la haute disponibilité
Modifiez le fichier /etc/mongod.conf :
replication :
replSetName : "rs0"Initialiser :
mongosh
rs.initiate()2. Stratégie de sauvegarde
Utiliser mongodump pour les sauvegardes :
mongodump --out /var/backups/mongodb/$(date %F)Automatiser avec cron :
crontab -e
# Tous les jours à 2 heures du matin
0 2 * * * * /usr/bin/mongodump --out /var/backups/mongodb/$(date \%F)3. Utiliser TLS/SSL pour les connexions chiffrées
Générer des certificats et configurer la section net.ssl dans mongod.conf. Cela nécessite plus de configuration et une autorité de certification (CA) de confiance.
🧪 Étape 8 : Tester votre déploiement
Vous pouvez tester la connectivité à distance :
mongosh "mongodb://admin:StrongPassword123!@votre-serveur-ip:27017/admin"Remplacez votre serveur-ip par l’IP de votre VPS ou votre nom de domaine.
📊 Étape 9 : Surveiller votre MongoDB
Envisagez des outils tels que :
MongoDB Atlas Monitoring Agent (optionnel)
Prometheus Grafana avec des exportateurs
Alertes personnalisées avec cron et logwatch
Vous pouvez également regarder les journaux directement :
sudo tail -f /var/log/mongodb/mongod.logliste de contrôle finale
MongoDB est installé et fonctionne
Accès à distance sécurisé
Authentification de l’administrateur
Pare-feu configuré
Sauvegardes en place
Surveillance optionnelle activée
🧩 Conclusion
L’exécution de MongoDB sur un VPS vous offre une flexibilité inégalée, mais elle nécessite une attention particulière à la sécurité, aux sauvegardes et aux performances. En suivant ce guide, vous avez créé une instance MongoDB sécurisée et prête pour la production, prête à évoluer au fur et à mesure que votre application se développe.


