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 se puede cambiar a cualquier servicio de almacenamiento de objetos compatible con S3, lo que permite una mayor escalabilidad y menores costos de despliegue.

Cambiar el destino de almacenamiento de las grabaciones

Section titled Cambiar el destino de almacenamiento de las grabaciones

Las grabaciones se pueden conservar 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 diferentes, pero usaremos las siguientes referencias en el resto de esta sección:

  • openreplay-recordings: donde se conservará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, eso estaría en ‘Permissions > Cross-origin resource sharing (CORS)’ usando la siguiente configuración:
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": []
    }
]
  1. Habilita el acceso público únicamente al bucket openreplay-assets. Este último contiene solo hojas de estilo, iconos y fuentes que son necesarios para la correcta reproducción de las sesiones. 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 solo para estos 4 buckets para que el backend de OpenReplay pueda acceder a ellos programáticamente 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 empieza 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 deberían ahora 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.