Déployer sur AWS

Guide étape par étape pour déployer OpenReplay sur Amazon AWS.

Déployer sur AWS

Video Tutorial

Regardez comment déployer OpenReplay dans votre infrastructure AWS

Si vous n'aimez pas lire, vous pouvez suivre ce tutoriel vidéo vous montrant comment déployer OpenReplay sur AWS

La pile OpenReplay peut être installée sur une seule machine et AWS EC2 est un candidat idéal.

  1. Aller au tableau de bord AWS EC2
  2. ‘Launch a new instance’ (architecture basée sur x86)
  3. Sélectionnez votre AMI. Pour ce guide, nous utiliserons Ubuntu Server 22.04 LTS
  4. Choisissez votre type d’instance. Les spécifications minimales sont 2 vCPUs, 8 GB of RAM, 50 GB of storage, sinon les services backend d’OpenReplay ne démarreront tout simplement pas. Ainsi, nous recommandons au moins la t3.large (ou un équivalent), qui est suffisante pour un volume faible/modéré. Si vous attendez un trafic élevé, vous devriez évoluer à partir d’ici.
  5. Configurer les détails de l’instance : Réglez les paramètres du réseau/sous-réseau si nécessaire ou gardez simplement les paramètres par défaut
  6. Ajouter du stockage : Définissez la taille à 50 GB (General Purpose SSD (gp2))
  7. Ajouter des tags : Ajustez les paramètres ou gardez les valeurs par défaut
  8. Groupes de sécurité : Conservez la règle SSH existante et ajoutez-en 2 autres pour HTTP (80) et HTTPS (443) (source : 0.0.0.0/0). Assurez-vous que les ports DNS (TCP/UDP) sont ouverts dans le groupe de sécurité sortant
  9. Cliquez sur ‘Review and Launch’
  10. Créez/téléchargez la clé SSH puis cliquez sur ‘Launch instances’
  1. Assurez-vous que votre instance est en Running puis connectez-vous à elle :
## 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. Installez OpenReplay en fournissant le domaine sur lequel il sera exécuté (par exemple, 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 traite des données utilisateur sensibles et nécessite donc HTTPS pour fonctionner. C’est obligatoire, sinon le tracker ne commencerait tout simplement pas l’enregistrement. Il en va de même pour le tableau de bord, sans HTTPS, vous ne pourrez pas relire les sessions des utilisateurs.

La façon la plus simple de gérer SSL dans AWS est de configurer un équilibreur de charge (ELB) et d’exécuter OpenReplay derrière. Une autre option consiste à générer ou utiliser votre propre certificat SSL et à pointer votre sous-domaine (c.-à-d. openreplay.mycompany.com) vers l’instance OpenReplay. Plus d’informations sur les deux options ci-dessous.

Configurer le répartiteur de charge AWS (option 1)

Section titled Configurer le répartiteur de charge AWS (option 1)
  1. Aller à ‘EC2’ > ‘Load Balancers’
  2. ‘Create Load Balancer’ et choisir Application Load Balancer
  3. Ajouter un listener à HTTPS (gardez celui-ci uniquement) et assurez-vous de sélectionner le(s) même(s) sous-réseau(x) dans lequel votre instance OpenReplay fonctionne.
  4. Choisissez un certificat existant (par exemple, *.mycompany.com) ou générez-en un nouveau à partir d’AWS Certificate Manager (ACM). Vous pouvez également importer le vôtre.
  5. Configurer les groupes de sécurité : Sélectionnez le groupe de sécurité précédemment créé pour l’instance OpenReplay (vous pouvez le trouver dans le ‘EC2 Dashboard’ sous l’onglet ‘Security’)
  6. Configurer le listener et le routage : Conservez le protocole et le port par défaut (HTTP:80). Créez maintenant un nouveau groupe cible (target group). Donnez-lui un nom et sélectionnez IP addresses dans Target Type. Assurez-vous que le Health check path est défini sur /healthz tout en conservant les autres paramètres par défaut. Cliquez sur ‘Next’ pour enregistrer des cibles, ajoutez l’IPv4 privée de l’instance OpenReplay (port 80) puis ajoutez la cible à la liste (l’IP privée peut être trouvée dans le tableau de bord EC2). Revoyez puis cliquez sur ‘Create target group’.
  7. Maintenant, retournez à la page de création du LB et transférez ce nouveau groupe cible au listener LB.
  8. Vérifiez puis ‘Create load balancer’

Une fois créé, allez à Route 53 (ou votre fournisseur de service DNS) et créez un A Record qui pointe vers le répartiteur de charge en utilisant son nom DNS (peut être trouvé dans le tableau de bord ELB).

Tout est prêt maintenant, OpenReplay devrait être accessible en toute sécurité sur le sous-domaine que vous venez de configurer. Vous pouvez créer un compte en visitant la page /signup (c.-à-d. openreplay.mycompany.com/signup).

Apporter/générer votre certificat SSL (option 2)

Section titled Apporter/générer votre certificat SSL (option 2)

En alternative à la création d’un répartiteur de charge, vous pouvez apporter (ou générer) votre propre certificat SSL.

  1. Tout d’abord, allez à Route 53 (ou votre autre fournisseur de service DNS) et créez un A Record. Utilisez le domaine que vous avez fourni précédemment lors de l’étape d’installation et pointez-le vers l’instance en utilisant son IP publique (peut être trouvé dans le tableau de bord EC2).

  2. Si vous apportez votre propre certificat, créez un secret SSL en utilisant la commande suivante : kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt".

Remarque : Si vous n’avez pas de certificat, générez-en un qui se renouvelle automatiquement pour votre sous-domaine (celui fourni lors de l’installation) en utilisant Let’s Encrypt. Connectez-vous simplement à l’instance EC2 d’OpenReplay, exécutez cd /var/lib/openreplay/openreplay/scripts/helmcharts && bash certmanager.sh et suivez les étapes.

  1. Si vous souhaitez activer la redirection de http vers https (recommandé), alors décommentez le bloc ci-dessous, sous la section ingress-nginx, dans /var/lib/openreplay/vars.yaml :
ingress-nginx: &ingress-nginx
  controller:
    config:
      ssl-redirect: true
      force-ssl-redirect: true

Il est bon de mentionner que notre ingress-nginx fonctionne par défaut sur les ports 80|443, mais cela peut être facilement changé, si nécessaire, dans vars.yaml :

ingress-nginx: &ingress-nginx
  controller:
    service:
      ports:
        http: 80
        https: 443
  1. Enfin, réinstallez OpenReplay NGINX :
openreplay -R

Tout est prêt maintenant, OpenReplay devrait être accessible sur votre sous-domaine. Vous pouvez créer un compte en visitant la page /signup (c’est-à-dire openreplay.mycompany.com/signup).

Si vous rencontrez des problèmes, connectez-vous à notre Slack ou consultez notre Forum et obtenez de l’aide de notre communauté.