Desplegar en AWS

Guía paso a paso para desplegar OpenReplay en Amazon AWS.

Desplegar en AWS

Video Tutorial

Mira cómo desplegar OpenReplay en tu infraestructura de AWS

Si no te gusta leer, puedes seguir este tutorial en vídeo que te muestra cómo desplegar OpenReplay en AWS

El stack de OpenReplay se puede instalar en una sola máquina y AWS EC2 es un candidato ideal.

  1. Ve al panel de AWS EC2
  2. ‘Launch a new instance’
  3. Selecciona tu AMI. Para esta guía, usaremos Ubuntu Server 20.04 LTS
  4. Elige el tipo de instancia. Las especificaciones mínimas son 2 vCPUs, 8 GB of RAM, 50 GB of storage, de lo contrario los servicios del backend de OpenReplay simplemente no se iniciarán. Por lo tanto, recomendamos al menos la t3.large (o una equivalente), que es suficiente para un volumen bajo/moderado. Si esperas un tráfico elevado, deberías escalar a partir de aquí.
  5. Configura los detalles de la instancia: ajusta los parámetros de Network/Subnet si es necesario o simplemente mantén los valores predeterminados
  6. Añade almacenamiento: establece el tamaño en 50 GB (General Purpose SSD (gp2))
  7. Añade etiquetas: ajusta los parámetros o mantén los valores predeterminados
  8. Grupos de seguridad: mantén la regla SSH existente y añade 2 más para HTTP (80) y HTTPS (443) (source: 0.0.0.0/0)
  9. Haz clic en ‘Review and Launch’
  10. Crea/descarga la clave SSH y luego pulsa ‘Launch instances’
  1. Asegúrate de que tu instancia esté Running y luego conéctate a ella:
## From your terminal
SSH_KEY=~/Downloads/openreplay-key.pem #! wherever you've saved the SSH key
INSTANCE_IP=REPLACE_WITH_INSTANCE_PUBLIC_IP
chmod 400 $SSH_KEY
ssh -i $SSH_KEY ubuntu@$INSTANCE_IP
  1. Instala OpenReplay indicando el dominio en el que se ejecutará (p. ej. DOMAIN_NAME=openreplay.mycompany.com):
sudo wget https://raw.githubusercontent.com/openreplay/openreplay/main/scripts/helmcharts/openreplay-cli -O /bin/openreplay 
sudo chmod +x /bin/openreplay
openreplay -i DOMAIN_NAME

OpenReplay maneja datos sensibles de los usuarios y, por lo tanto, requiere HTTPS para funcionar. Esto es obligatorio, de lo contrario el rastreador simplemente no comenzaría a grabar. Lo mismo ocurre con el panel: sin HTTPS no podrás reproducir las sesiones de los usuarios.

La forma más fácil de gestionar SSL en AWS es configurar un balanceador de carga (ELB) y ejecutar OpenReplay detrás de él. Otra opción es generar o usar tu propio certificado SSL y apuntar tu subdominio (es decir, openreplay.mycompany.com) a la instancia de OpenReplay. Más información sobre ambas opciones a continuación.

Configurar el balanceador de carga de AWS (opción 1)

Section titled Configurar el balanceador de carga de AWS (opción 1)
  1. Ve a ‘EC2’ > ‘Load Balancers’
  2. ‘Create Load Balancer’ y elige Application Load Balancer
  3. Añade un listener a HTTPS (mantén solo este) y asegúrate de seleccionar la(s) misma(s) subred(es) en la(s) que se ejecuta tu instancia de OpenReplay.
  4. Elige un certificado existente (es decir, *.mycompany.com) o genera uno nuevo desde AWS Certificate Manager (ACM). También puedes importar el tuyo.
  5. Configura los grupos de seguridad: selecciona el grupo de seguridad creado previamente para la instancia de OpenReplay (puedes encontrarlo en ‘EC2 Dashboard’ bajo la pestaña ‘Security’)
  6. Configura el listener y el enrutamiento: mantén el protocolo y el puerto predeterminados (HTTP:80). Ahora, crea un nuevo target group. Dale un nombre y selecciona IP addresses en Target Type. Asegúrate de que la Health check path esté configurada como /healthz mientras mantienes los demás parámetros predeterminados. Haz clic en ‘Next’ para registrar los destinos, añade la IPv4 privada de la instancia de OpenReplay (puertos 80) y luego añade el destino a la lista (la IP privada se puede encontrar en el panel de EC2). Revisa y luego haz clic en ‘Create target group’.
  7. Ahora, vuelve a la página de creación del LB y reenvía este nuevo target group al listener del LB.
  8. Revisa y luego ‘Create load balancer’

Una vez creado, ve a Route 53 (o a tu proveedor de servicios DNS) y crea un A Record que apunte al balanceador de carga usando su nombre DNS (se puede encontrar en el panel de ELB).

Por último, habilita use-forwarded-headers descomentando la línea de abajo en la sección ingress-nginx, en /var/lib/openreplay/vars.yaml:

ingress-nginx: &ingress-nginx
  controller:
    config:
      use-forwarded-headers: true

Ya está todo listo, OpenReplay debería ser accesible de forma segura en el subdominio que acabas de configurar. Puedes crear una cuenta visitando la página /signup (es decir, openreplay.mycompany.com/signup).

Aporta/genera tu certificado SSL (opción 2)

Section titled Aporta/genera tu certificado SSL (opción 2)

Como alternativa a crear un balanceador de carga, puedes aportar (o generar) tu propio certificado SSL.

  1. Primero, ve a Route 53 (o a tu otro proveedor de servicios DNS) y crea un A Record. Usa el dominio que proporcionaste anteriormente durante el paso de instalación y apúntalo a la instancia usando su IP pública (se puede encontrar en el panel de EC2).

  2. Si vas a aportar tu propio certificado, crea un secreto SSL usando el siguiente comando: kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt".

Nota: Si no tienes un certificado, genera uno, que se renueve automáticamente, para tu subdominio (el proporcionado durante la instalación) usando Let’s Encrypt. Simplemente conéctate a la instancia EC2 de OpenReplay, ejecuta cd /var/lib/openreplay/openreplay/scripts/helmcharts && bash certmanager.sh y sigue los pasos.

  1. Si deseas habilitar la redirección de http a https (recomendado), descomenta el bloque de abajo, en la sección ingress-nginx, en /var/lib/openreplay/vars.yaml:
ingress-nginx: &ingress-nginx
  controller:
    config:
      ssl-redirect: true
      force-ssl-redirect: true

Cabe mencionar que nuestro ingress-nginx se ejecuta de forma predeterminada en los puertos 80|443, pero esto se puede cambiar fácilmente, si es necesario, en vars.yaml:

ingress-nginx: &ingress-nginx
  controller:
    service:
      ports:
        http: 80
        https: 443
  1. Por último, reinstala el NGINX de OpenReplay:
openreplay -R

Ya está todo listo, OpenReplay debería ser accesible en tu subdominio. Puedes crear una cuenta visitando la página /signup (es decir, openreplay.mycompany.com/signup).

Si encuentras algún problema, conéctate a nuestro Slack o consulta nuestro Foro y obtén ayuda de nuestra comunidad.