Guide de déploiement

Héberger Elasticsearch sur un VPS

Déployer sur un VPS Cloud →

Bases de données8 min de lecture

Héberger Elasticsearch sur un VPS

Elasticsearch reste la référence pour la recherche full-text avancée, les agrégations et l'analyse de logs à grande échelle. Auto-hébergé sur un VPS correctement dimensionné, il vous offre une puissance que les offres managées facturent au prix fort. Voici un déploiement production-ready.

Pourquoi auto-héberger Elasticsearch sur un VPS

Elasticsearch brille là où une recherche simple ne suffit plus : scoring fin, agrégations imbriquées, analyse multilingue, géo-requêtes, et stack ELK pour centraliser vos logs. Les offres cloud managées (Elastic Cloud, OpenSearch Service) deviennent rapidement coûteuses dès qu'on dépasse quelques gigaoctets indexés. Sur votre VPS, vous maîtrisez la version, les plugins d'analyse (comme l'analyseur français ou ICU), la rétention de vos logs, et vous évitez les frais de transfert sortant. C'est aussi le moyen de garder des données sensibles strictement sur votre infrastructure.

Les bénéfices d'un Elasticsearch maison

  • Recherche full-text avancée : scoring BM25, synonymes, analyseurs linguistiques personnalisés
  • Agrégations et facettes complexes pour le e-commerce ou l'analytique
  • Stack ELK complète (Logstash/Beats + Kibana) pour centraliser vos logs sans surcoût
  • Contrôle total de la version, des plugins et des index lifecycle policies
  • Pas de facturation au volume indexé ni de frais d'egress
  • Snapshots vers votre propre stockage objet pour une reprise après incident

Prérequis réalistes

Elasticsearch tourne sur une JVM et est gourmand en RAM : ne descendez pas sous 4 Go pour un test, visez 8 Go (2-4 vCPU) pour un usage production léger, et 16 Go dès que vous indexez plusieurs millions de documents ou ajoutez Kibana. Réglez le heap JVM à 50 % de la RAM (sans dépasser 32 Go). Côté système, augmentez vm.max_map_count=262144, désactivez le swap, prévoyez un SSD rapide, Docker + Compose, et un sous-domaine es.votredomaine.ma.

Déploiement pas à pas

01

Préparer le noyau et le système

Avant tout : sysctl -w vm.max_map_count=262144 (et persistez-le dans /etc/sysctl.conf). Désactivez le swap ou réservez la mémoire avec bootstrap.memory_lock=true. Ces réglages évitent les crashs au démarrage.

02

Définir le service Docker avec heap maîtrisé

Dans docker-compose.yml, utilisez docker.elastic.co/elasticsearch/elasticsearch:8.13.0, fixez ES_JAVA_OPTS=-Xms4g -Xmx4g, montez un volume nommé pour /usr/share/elasticsearch/data et n'exposez le port 9200 que sur 127.0.0.1.

03

Activer la sécurité native

Depuis la 8.x, la sécurité TLS est activée par défaut. Lancez docker compose up -d, puis générez le mot de passe elastic avec bin/elasticsearch-reset-password -u elastic. Conservez-le dans un gestionnaire de secrets.

04

Exposer via reverse proxy HTTPS

Placez Nginx ou Caddy devant le port 9200 pour servir es.votredomaine.ma en HTTPS public, avec une authentification basique supplémentaire côté proxy si l'API doit être jointe depuis l'extérieur.

05

Configurer les snapshots

Enregistrez un repository de type s3 ou fs (PUT _snapshot/backup) pointant vers un stockage objet, puis créez une Snapshot Lifecycle Policy (SLM) pour des sauvegardes quotidiennes automatiques avec rétention.

06

Ajouter Kibana (optionnel)

Ajoutez un service kibana:8.13.0 dans le même Compose, branché sur le réseau Docker interne, et exposez-le derrière le proxy sur kibana.votredomaine.ma pour explorer vos index et bâtir des dashboards.

Mettez en place des Index Lifecycle Management (ILM) policies dès le départ : phases hot/warm/cold qui réduisent automatiquement le nombre de répliques et forcent le merge des segments sur les vieux index. Sur un VPS où l'espace disque est compté, c'est ce qui empêche vos logs de saturer le SSD et garde les requêtes rapides sur les données chaudes.

Un VPS taillé pour Elasticsearch

RAM généreuse, SSD NVMe et réglages noyau modifiables : le VPS Cloud ServOrbit vous donne le socle qu'exige une JVM Elasticsearch en production. Template Docker disponible.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou écrivez à notre équipe — support en anglais, français et arabe.