Stockage externe

Comment modifier la destination de stockage par défaut de vos enregistrements.

Stockage externe

Les enregistrements de sessions OpenReplay sont par défaut stockés sur votre instance, mais la destination peut être changée vers n’importe quel service de stockage d’objets compatible S3, ce qui permet une plus grande évolutivité et des coûts de déploiement réduits.

Modifier la destination de stockage des enregistrements

Section titled Modifier la destination de stockage des enregistrements

Les enregistrements peuvent être conservés dans n’importe quelle destination de stockage d’objets dès lors qu’elle est compatible S3, ce qui rend OpenReplay compatible avec tous les principaux services de cloud public. Voici les étapes pour configurer une destination différente pour vos enregistrements :

Créer les buckets nécessaires

Section titled Créer les buckets nécessaires

Vous devez créer les buckets ci-dessous dans votre service de stockage d’objets. Leurs noms peuvent être différents, mais nous utiliserons les références ci-dessous dans le reste de cette section :

  • openreplay-recordings : où les enregistrements seront conservés
  • openreplay-assets : où les ressources (telles que le css et les polices) seront copiées
  • openreplay-sourcemaps : pour stocker les source maps (voir comment les téléverser)

Une fois le bucket créé :

  1. Activez CORS pour chacun des buckets ci-dessus. Si vous êtes sur AWS, cela se trouve sous ‘Permissions > Cross-origin resource sharing (CORS)’ en utilisant la configuration suivante :
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": []
    }
]
  1. Activez l’accès public uniquement au bucket openreplay-assets. Ce dernier contient uniquement les feuilles de style, icônes et polices nécessaires à une bonne relecture des sessions. Si vous êtes sur AWS, accédez d’abord à ‘Permissions > Block public access (bucket settings)’ et désactivez-le, puis allez dans ‘Permissions > Bucket policy’ et utilisez la configuration suivante :
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::openreplay-assets/*"
        }
    ]
}
  1. Enfin, assurez-vous de générer les clés d’accès appropriées uniquement pour ces 3 buckets afin que le backend OpenReplay puisse y accéder de manière programmatique pour téléverser des fichiers. Les permissions S3 requises sont :
"s3:PutObject",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:GetObjectTagging",
"s3:ListBucket",
"s3:PutObjectTagging",
"s3:GetBucketLocation"

Mettre à jour les services du backend

Section titled Mettre à jour les services du backend
  1. Connectez-vous à votre instance OpenReplay et exécutez openreplay -e pour mettre à jour les variables d’environnement ci-dessous dans la section s3 :
VariableDescription
accessKeyLa clé d’accès de votre stockage d’objets (votre ID de clé d’accès IAM si vous êtes sur AWS ; sur Google Cloud, ce serait votre clé HMAC pour le compte de service)
secretKeyLe secret de votre stockage d’objets
endpointL’URL (commençant par https) de votre service de stockage d’objets (c.-à-d. consultez la liste des endpoints S3 si vous êtes sur AWS ; sur Google Cloud Storage, ce serait https://storage.googleapis.com)
regionLa région (le cas échéant) de vos buckets (c.-à-d. si vous utilisez AWS S3, ce serait quelque chose comme us-east-1)
assetsBucketLe nom du bucket des ressources (c.-à-d. openreplay-assets)
recordingsBucketLe nom du bucket des enregistrements (c.-à-d. openreplay-recordings)
sourcemapsBucketLe nom du bucket des source maps (c.-à-d. openreplay-sourcemaps)
  1. Enregistrez et quittez en utilisant :wq pour que les modifications prennent effet

Les sessions nouvellement enregistrées devraient désormais être stockées et récupérées (lors de la relecture) depuis votre nouvelle destination/service de stockage d’objets.

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