0 - ¿Qué es Elasticsearch?
Elasticsearch es un motor para realizar búsquedas y se caracteriza por su gran rendimiento. Puede integrarse en múltiples entornos y es epecialmente usado en páginas web, por ejemplo tiendas online diseñadas con Prestashop o Magento.
Se instala a nivel de sistema operativo y tiene a Java como dependencia. Adicionalmente requiere permisos de ejecución en el directorio /tmp del sistema operativo. Esto implica una alta complejidad para integrarlo de forma segura en un entorno de alojamiento compartido.
En definitiva, es necesario instalar Elasticsearch en un servidor VPS. Pero no te asustes! Es muy fácil de instalar y cuesta menos de 8 €/mes
Además, NO tienes que cambiar tu web de hosting. Simplemente tener un nuevo VPS para correr el motor Elasticsearch.
1 - Como instalar Elasticsearch en un VPS con Debian 11
Para poder instalar Elasticsearch, tu VPS debe tener 2 GB de RAM como mínimo y serán necesarios más recursos dependiendo de la cantidad de datos que se introduzcan en su base de datos así como la cantidad de búsquedas y por tanto carga de trabajo que tenga que procesar.
Cuando ya tengas tu VPS contratado, debes instalarlo con el sistema operativo Debian 11. Este es el sistema operativo por defecto por lo que habrás recibido un mail con los datos de conexión, esto es la IP dedicada de tu VPS y la contraseña de acceso root.
Conecta por SSH a tu servidor y ejecuta los siguientes comandos:
apt update; apt dist-upgrade -y; apt install gnupg curl nano wget sudo apt-transport-https -y;
timedatectl set-timezone Europe/Madrid
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -; apt update;
Si quieres instalar Elasticsearch v7 ejecuta este comando:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-7.x.list; apt install elasticsearch -y;
En cambio, si quieres instalar Elasticsearch v8 ejecuta este comando:
echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-8.x.list; apt install elasticsearch -y;
Por último, edita el fichero /etc/elasticsearch/elasticsearch.yml y define el valor de la variable xpack.security.enabled a false
nano /etc/elasticsearch/elasticsearch.yml
xpack.security.enabled: false
Finalmente, arrancamos el servicio y los configuramos para que arranque automáticamente cuando se reinicia el VPS.
systemctl restart elasticsearch
systemctl enable elasticsearch
Comprueba que el servicio está levantado correctamente:
systemctl status elasticsearch
Y que responde correctamente a las peticiones:
curl -X GET localhost:9200
Listo, ya tenemos Elasticsearch instalado!
2 - Proteger el servidor Elasticsearch
Para evitar que cualquiera pueda conectar a nuestro servidor Elasticsearch, vamos a protegerlo con unas reglas de firewall:
Instalamos el firewall:
apt install ufw -y ufw default deny incoming ufw default allow outgoing ufw allow 22 ufw allow 80 ufw allow 443 ufw enable
Permitimos para que solo se pueda conectar al puerto 9200 desde la IP de nuestro hosting
Sustituye el valor x.x.x.x por el de la IP del hosting donde tienes alojada tu web.
ufw allow from x.x.x.x to any port 9200
Finalmente activamos el firewall:
ufw enable
ufw status numbered
3- ¿Tienes alguna duda?
Contacta con nuestro soporte técnico, estaremos encatandos de ayudarte.