Amazon RDS para MySQL

Encriptar el tráfico de red

Looker recomienda que se encripte el tráfico de red entre la aplicación de Looker y su base de datos. Considera una de las opciones que se describen en la página de documentación Habilita el acceso seguro a la base de datos.

Si te interesa usar la encriptación SSL, consulta la documentación de MySQL en RDS.

Opciones

Por motivos de rendimiento, es común usar las bases de datos de réplica de solo lectura (también llamadas réplicas de lectura) con Looker. Esto libera a la base de datos de producción para que realice su función principal sin ninguna consulta que pueda ralentizarla.

En este documento, se describe cómo realizar las siguientes acciones:

  • Modifica una base de datos de réplica existente para que funcione con Looker
  • Crea una base de datos de réplica de lectura nueva y configúrala para que funcione con Looker

Modifica una réplica existente

Usuarios y seguridad

Cambia <some_password_here> a una contraseña única y segura:

CREATE USER looker;
SET PASSWORD FOR looker = PASSWORD ('<some_password_here>');
GRANT SELECT ON database_name.* TO 'looker'@'%';

RDS y tablas temporales

De forma predeterminada, las réplicas de lectura de RDS tienen una marca de solo lectura que impide que Looker escriba en tablas temporales. Looker nunca cambia los datos existentes, pero MySQL aún requiere acceso de escritura para usar tablas temporales. Para solucionar este problema, cambia la marca en RDS. A partir de las Preguntas frecuentes sobre el RDS:

**P: ¿Mi réplica de lectura solo acepta operaciones de lectura de base de datos?** Las réplicas de lectura están diseñadas para entregar tráfico de lectura. Sin embargo, puede haber casos de uso en los que los usuarios avanzados deseen completar instrucciones de SQL del lenguaje de definición de datos (DDL) en una réplica de lectura. Algunos ejemplos pueden ser agregar un índice de base de datos a una réplica de lectura que se usa para generar informes empresariales, sin agregar el mismo índice a la instancia de base de datos de origen correspondiente. Si quieres habilitar operaciones que no sean lecturas para una réplica de lectura determinada, deberás modificar el [DB Parameter Group](#aws_step_4) activo para la réplica de lectura y establecer el parámetro "read_only" en "0".

Si modificas el Grupo de parámetros de DB, deberás reiniciar la réplica de lectura para que se apliquen los cambios.

Crea una base de datos y otorga permisos

Crea una base de datos temporal y otorga al usuario looker los derechos para escribir en ella. La declaración CREATE TEMPORARY en MySQL debe estar asociada a una base de datos para los permisos.

CREATE SCHEMA looker_tmp;
GRANT
  SELECT,
  INDEX,
  INSERT,
  UPDATE,
  DELETE,
  CREATE,
  DROP,
  ALTER,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';

Crea una réplica nueva

Ten en cuenta que AWS RDS solo puede crear réplicas de lectura con instancias de bases de datos que tengan la retención de copia de seguridad activada.

Pasos previos a AWS

Paso 1

mysql en la base de datos que será la instancia de base de datos principal:

mysql -h hostname.uid.region.rds.amazonaws.com -P 3306 -u root -p

Paso 2

Crea un usuario llamado looker (reemplaza <some_password_here> por una contraseña única y segura):

CREATE USER looker IDENTIFIED BY '<some_password_here>';

Paso 3

Crea una base de datos temporal y otorga privilegios de lectura a Looker para otras bases de datos y tablas. En general, Looker no escribe en la base de datos looker_tmp, pero la usa para ejecutar comandos CREATE TEMPORARY TABLE.

CREATE SCHEMA looker_tmp;
GRANT
  SELECT,
  INDEX,
  INSERT,
  UPDATE,
  DELETE,
  CREATE,
  DROP,
  ALTER,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';

GRANT
  SELECT,
  SHOW DATABASES
ON *.* TO 'looker'@'%';

Paso 4

Vaciar privilegios:

FLUSH PRIVILEGES;

Pasos de AWS

Paso 1

Accede y ve al panel de AWS. Selecciona RDS en Database:

Paso 2

En el panel de RDS, selecciona la instancia de base de datos que deseas especificar como base de datos principal. Haz clic en Acciones de la instancia y selecciona Crear réplica de lectura:

Paso 3

En la ventana emergente Crear instancia de base de datos de réplica de lectura, configura la base de datos de réplica de lectura y haz clic en Sí, crear réplica de lectura:

Paso 4

Mientras espera a que se cree la base de datos de réplica de lectura, puede configurar el Grupo de parámetros de base de datos, que contendrá los valores de configuración del motor que se aplican a la instancia de base de datos de réplica de lectura. Haz clic en la página DB Parameter Groups y, luego, en el botón Create DB Parameter Group:

Paso 5

Selecciona DB Parameter Group Family y DB Parameter Group Name. Luego, ingresa una DB Parameter Group Description. Luego, haga clic en Yes, Create.

Paso 6

Haz clic en el ícono de lupa en la fila que contiene el grupo de parámetros de base de datos de réplica de lectura o selecciona esa fila y haz clic en Editar parámetros.

Paso 7

En el campo Filtros en Parámetros, busque "read_only". Cambia el valor del parámetro a 0. Luego, haga clic en Guardar cambios.

Paso 8

Cuando finalice la creación de la réplica de lectura, selecciónala en la lista de instancias de base de datos, haz clic en el botón Acción de la instancia y selecciona Modificar en la acción de la instancia.

Paso 9

En la ventana emergente Modificar instancia de base de datos, cambia el Grupo de parámetros de la instancia de base de datos al nuevo grupo de parámetros de réplica de lectura. Luego, marque la casilla Aplicar inmediatamente, haga clic en Continuar y, luego, en Modificar instancia de base de datos.

Paso 10

Con el cliente MySQL, conéctate a la instancia de base de datos de réplica de lectura como looker y prueba si se puede acceder a los datos.

Compatibilidad de características

Para que Looker admita algunas funciones, el dialecto de la base de datos también debe admitirlas.

En la versión más reciente de Looker, MySQL admite las siguientes características de Looker:

Próximos pasos

Después de completar la configuración de la base de datos, puedes conectarte a la base de datos de Looker mediante estas instrucciones.