Comment créer une base de données MongoDB sur un Serveur Virtuel (VPS)
MongoDB est une base de données NoSQL populaire, connue pour sa flexibilité, son évolutivité et ses performances. Elle stocke les données dans des documents flexibles de type JSON, ce qui est parfait pour les développeurs qui travaillent avec des applications dynamiques et en évolution rapide. Si vous avez choisi d’exécuter MongoDB sur votre propre serveur privé virtuel (VPS), vous allez vivre une expérience enrichissante qui vous donnera un contrôle total sur votre environnement de base de données. Ce guide vous guidera pas à pas dans la mise en place de MongoDB sur un VPS.
Conditions préalables
Avant de commencer, assurez-vous que vous disposez des éléments suivants :
- Un VPS avec un accès root.
- Ubuntu 20.04 ou une distribution Linux similaire.
- Un accès SSH à votre VPS.
- Au moins 2 Go de RAM (recommandé) pour MongoDB.
- Connaissance de base de l’interface de ligne de commande (CLI) et des commandes Linux.
Étape 1 : Mise à jour du système
Tout d’abord, assurez-vous que votre VPS est à jour. Connectez-vous via SSH et exécutez les commandes suivantes pour mettre à jour la liste des paquets de votre système et installer toutes les mises à jour en attente :
sudo apt update
sudo apt upgrade -y
Une fois le système mis à jour, il est conseillé de redémarrer le serveur pour s’assurer que toutes les mises à jour ont été appliquées correctement :
sudo reboot
Étape 2 : Installer MongoDB
MongoDB n’est pas inclus dans les dépôts par défaut d’Ubuntu, vous devrez donc ajouter son dépôt officiel avant de l’installer. Voici comment installer MongoDB :
Ajouter le dépôt MongoDB
- Importer la clé publique GPG de MongoDB :
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
- Créez un fichier de liste pour MongoDB :
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
- Mettez à jour votre liste de paquets locale :
sudo apt update
Installer les paquets MongoDB
Installez maintenant les paquets MongoDB en exécutant la commande suivante :
sudo apt install -y mongodb-org
Cette commande installe MongoDB ainsi que d’autres composants nécessaires (tels que mongod, le démon MongoDB).
Étape 3 : Démarrer et activer MongoDB
Une fois l’installation terminée, vous devez démarrer MongoDB et l’autoriser à s’exécuter au démarrage :
sudo systemctl start mongod
sudo systemctl enable mongod
Pour confirmer que MongoDB fonctionne, vérifiez son état :
sudo systemctl status mongod
Vous devriez voir que MongoDB est actif (en cours d’exécution). Si tout semble correct, vous êtes prêt à passer à la configuration.
Étape 4 : Sécuriser MongoDB
Par défaut, MongoDB permet un accès non authentifié, ce qui n’est pas idéal pour un environnement de production. Pour sécuriser MongoDB, vous devez activer l’authentification.
Créez un utilisateur Admin
- Tout d’abord, accédez au shell MongoDB :
mongo
- Passez à la base de données de l’administrateur :
utiliser admin
- Créez un utilisateur admin en exécutant la commande suivante, en remplaçant adminuser et password par le nom d’utilisateur et le mot de passe de votre choix :
db.createUser({
user : "adminuser",
pwd: "password",
roles : [ { role : "userAdminAnyDatabase", db : "admin" } ]
})
- Quittez le shell MongoDB :
exit
Activer l’authentification
- Ouvrez le fichier de configuration de MongoDB à l’aide d’un éditeur de texte :
sudo nano /etc/mongod.conf
- Dans le fichier de configuration, trouvez la ligne suivante :
#security :
- Décommentez-la et ajoutez la ligne suivante en dessous :
security :
authorization : enabled
- Enregistrez les modifications et quittez l’éditeur (dans Nano, appuyez sur Ctrl X , puis Y et Entrée).
- Redémarrez MongoDB pour appliquer les modifications :
sudo systemctl restart mongod
Étape 5 : Configurer l’accès à distance à MongoDB (optionnel)
Par défaut, MongoDB n’écoute que sur localhost (127.0.0.1), ce qui signifie qu’il n’est accessible qu’à partir du serveur virtuel lui-même. Si vous avez besoin d’un accès à distance, vous devrez configurer MongoDB pour autoriser les connexions à partir d’adresses IP externes. Voici comment procéder :
- Ouvrez le fichier de configuration de MongoDB :
sudo nano /etc/mongod.conf
- Trouvez la ligne suivante :
bindIp : 127. 0.0.1
- Remplacez-la par :
bindIp : 0. 0.0.0
Cela permet à MongoDB d’accepter des connexions à partir de toutes les adresses IP.
- Enregistrez les modifications et quittez l’éditeur.
- Redémarrez MongoDB :
sudo systemctl restart mongod
Sécuriser l’accès à distance à l’aide d’un pare-feu
Autorisez uniquement les adresses IP de confiance à se connecter à MongoDB en configurant le pare-feu de votre SDV. Si vous utilisez UFW (Uncomplicated Firewall), voici comment autoriser les connexions à distance sur le port par défaut de MongoDB (27017) :
- Autoriser l’accès à partir d’une IP spécifique (remplacez votre_ip par votre adresse IP ) :
sudo ufw allow from your_ip to any port 27017
- Pour activer l’UFW (s’il n’est pas activé) :
sudo ufw enable
- Vérifiez l’état de l’UFW pour confirmer que la règle a été ajoutée :
sudo ufw status
Étape 6 : Tester la configuration de MongoDB
Pour vérifier que MongoDB fonctionne correctement, vous pouvez accéder au shell MongoDB et vous authentifier à l’aide de l’utilisateur que vous avez créé précédemment :
- Se connecter à MongoDB :
mongo -u adminuser -p --authenticationDatabase admin
- Vous devriez maintenant être connecté au shell MongoDB en tant qu’utilisateur admin.
Étape 7 : Sauvegarde et maintenance
Il est essentiel de sauvegarder régulièrement vos bases de données MongoDB, en particulier dans un environnement de production. Vous pouvez utiliser l’outil mongodump pour sauvegarder vos données :
mongodump --out /path/to/backup/directory
Vous pouvez restaurer les données en utilisant mongorestore:
mongorestore /chemin/vers/sauvegarde/répertoire
Conclusion
En suivant ces étapes, vous avez réussi à installer et à configurer MongoDB sur votre VPS. Vous avez maintenant un contrôle total sur votre environnement MongoDB, qui peut être ajusté pour répondre à vos besoins spécifiques. Que vous utilisiez MongoDB pour des applications web, des big data ou simplement pour expérimenter, votre installation MongoDB basée sur un VPS vous offrira à la fois flexibilité et performance.
N’oubliez pas de surveiller régulièrement votre instance MongoDB et de la sécuriser en activant l’authentification et en limitant l’accès par le biais de pare-feu. Bon codage !