Almacenamiento externo

Cómo cambiar el destino de almacenamiento predeterminado de tus grabaciones.

Almacenamiento externo

Las grabaciones de sesiones de OpenReplay se almacenan de forma predeterminada en tu instancia, pero el destino puede cambiarse a cualquier servicio de almacenamiento de objetos compatible con S3, lo que permite una mayor escalabilidad y menores costos de implementación.

Cambiar el destino de almacenamiento de las grabaciones

Section titled Cambiar el destino de almacenamiento de las grabaciones

Las grabaciones pueden persistirse en cualquier destino de almacenamiento de objetos siempre que sea compatible con S3, lo que hace que OpenReplay sea compatible con todos los principales servicios de nube pública. A continuación se indican los pasos para configurar un destino diferente para tus grabaciones:

Debes crear los siguientes buckets en tu servicio de almacenamiento de objetos. Sus nombres pueden ser distintos, pero usaremos las siguientes referencias en el resto de esta sección:

  • openreplay-recordings: donde se persistirán las grabaciones
  • openreplay-assets: donde se copiarán los recursos (como css y fuentes)
  • openreplay-sourcemaps: para almacenar los source maps (consulta cómo subirlos)
  • openreplay-spots: para almacenar las grabaciones de spots

Una vez creado el bucket:

  1. Habilita CORS para cada uno de los buckets anteriores. Si estás en AWS, esto se encuentra en ‘Permissions > Cross-origin resource sharing (CORS)’ usando la siguiente configuración:
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": []
    }
]
  1. Habilita el acceso público al bucket openreplay-assets únicamente. Este último contiene solo hojas de estilo, iconos y fuentes que son necesarios para la correcta reproducción de la sesión. Si estás en AWS, primero navega a ‘Permissions > Block public access (bucket settings)’ y desactívalo, luego ve a ‘Permissions > Bucket policy’ y usa la siguiente configuración:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::openreplay-assets/*"
        }
    ]
}
  1. Por último, asegúrate de generar las claves de acceso adecuadas para estos 4 buckets únicamente de modo que el backend de OpenReplay pueda acceder a ellos de forma programática para subir archivos. Los permisos de S3 requeridos son:
"s3:PutObject",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:GetObjectTagging",
"s3:ListBucket",
"s3:PutObjectTagging",
"s3:GetBucketLocation"

Actualizar los servicios del backend

Section titled Actualizar los servicios del backend
  1. Inicia sesión en tu instancia de OpenReplay y ejecuta openreplay -e para actualizar las siguientes variables de entorno en la sección s3:
VariableDescripción
accessKeyLa clave de acceso de tu almacenamiento de objetos (tu ID de clave de acceso de IAM si estás en AWS; en Google Cloud sería tu clave HMAC para la cuenta de servicio)
secretKeyEl secreto de tu almacenamiento de objetos
endpointLa URL (que comienza con https) de tu servicio de almacenamiento de objetos (es decir, consulta la lista de endpoints de S3 si estás en AWS; en Google Cloud Storage sería https://storage.googleapis.com)
regionLa región (si corresponde) de tus buckets (es decir, si usas AWS S3, sería algo como us-east-1)
assetsBucketEl nombre del bucket de recursos (es decir, openreplay-assets)
recordingsBucketEl nombre del bucket de grabaciones (es decir, openreplay-recordings)
sourcemapsBucketEl nombre del bucket de source maps (es decir, openreplay-sourcemaps)
spotsBucketEl nombre del bucket de spots (es decir, openreplay-spots)
  1. Guarda y sal usando :wq para que los cambios surtan efecto

Las sesiones recién grabadas ahora deberían almacenarse y recuperarse (al reproducirse) desde tu nuevo destino/servicio de almacenamiento de objetos.

En caso de cualquier problema, conéctate a nuestro Slack o consulta nuestro Foro y obtén ayuda de nuestra comunidad.