Escalado de lecturas para su base de datos MySQL con Amazon Aurora - Amazon Aurora

Escalado de lecturas para su base de datos MySQL con Amazon Aurora

Puede usar Amazon Aurora con su instancia de base de datos MySQL para aprovechar las capacidades de escalado de lectura de Amazon Aurora y ampliar la carga de trabajo de lectura para su instancia de base de datos MySQL. Para usar Aurora para escalar las lecturas de su instancia de base de datos de MySQL, cree un clúster de base de datos de Amazon Aurora MySQL y haga que sea una réplica de lectura de su instancia de base de datos de MySQL. Esto es válido para una instancia de base de datos de RDS for MySQL o una base de datos de MySQL que se ejecute fuera de Amazon RDS.

Para obtener más información acerca de la creación de un clúster de base de datos Amazon Aurora, consulte Creación de un clúster de base de datos de Amazon Aurora.

Cuando configure la replicación entre su instancia de base de datos MySQL y su clúster de base de datos de Amazon Aurora, asegúrese de seguir estas directrices:

  • Use la dirección del punto de enlace del clúster de base de datos Amazon Aurora cuando haga referencia a su clúster de base de datos Amazon Aurora MySQL. Si se produce una conmutación por error, la réplica de Aurora que se asciende a instancia principal del clúster de base de datos Aurora MySQL seguirá usando la dirección del punto de enlace del clúster de base de datos.

  • Mantenga los binlogs en la instancia de escritor hasta que haya comprobado que se han aplicado a la réplica de Aurora. Este mantenimiento garantiza que puede restaurar la instancia de escritor si se produce un error.

importante

Si usa la replicación autoadministrada, será responsable de monitorizar y resolver los problemas de replicación que se pueden producir. Para obtener más información, consulte Diagnóstico y resolución de retardos entre réplicas de lectura.

nota

Los permisos requeridos para comenzar la replicación en un clúster de base de datos de Aurora MySQL están restringidos y no están disponibles para su usuario maestro de Amazon RDS. Por este motivo, debe usar los procedimientos mysql.rds_set_external_master (Aurora MySQL versión 2), mysql.rds_set_external_source (Aurora MySQL versión 3) y mysql.rds_start_replication para configurar la replicación entre su clúster de base de datos de Aurora MySQL y su instancia de base de datos de MySQL.

Comience la replicación entre una instancia de origen externa y un clúster de base de datos de Aurora MySQL

  1. Configure la instancia de base de datos MySQL de origen como de solo lectura:

    mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
  2. Ejecute el comando SHOW MASTER STATUS en la instancia de base de datos MySQL para determinar la ubicación del binlog. Se recibe un resultado similar al del siguiente ejemplo:

    File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------
  3. Copie la base de datos la instancia de base de datos MySQL externa en el clúster de base de datos Amazon Aurora MySQL usando mysqldump. Para bases de datos muy grandes, recomendamos usar el procedimiento de Importación de datos a una instancia de base de datos de MySQL o MariaDB con tiempo de inactividad reducido en la Guía del usuario de Amazon Relational Database Service.

    Para Linux, macOS o:Unix

    mysqldump \ --databases <database_name> \ --single-transaction \ --compress \ --order-by-primary \ -u local_user \ -p local_password | mysql \ --host aurora_cluster_endpoint_address \ --port 3306 \ -u RDS_user_name \ -p RDS_password

    En:Windows

    mysqldump ^ --databases <database_name> ^ --single-transaction ^ --compress ^ --order-by-primary ^ -u local_user ^ -p local_password | mysql ^ --host aurora_cluster_endpoint_address ^ --port 3306 ^ -u RDS_user_name ^ -p RDS_password
    nota

    Asegúrese de que no haya ningún espacio entre la opción -p y la contraseña que haya escrito.

    Use las opciones --host, --user (-u), --port y -p del comando mysql para especificar el nombre de host, el nombre de usuario, el puerto y la contraseña para conectarse a su clúster de base de datos Aurora. El nombre de host es el nombre DNS del punto de enlace del clúster de base de datos Amazon Aurora, por ejemplo, mydbcluster.cluster-123456789012.us-east-1.rds.amazonaws.com. Puede encontrar el valor del punto de enlace en los detalles del clúster en la Management Console de Amazon RDS.

  4. Haga que la instancia de base de datos MySQL de origen vuelva a admitir la escritura:

    mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;

    A fin de obtener más información sobre cómo realizar copias de seguridad para su uso con la reproducción, consulte Backing up a source or replica by making it read only en la documentación de MySQL.

  5. En la Management Console de Amazon RDS, añada la dirección IP del servidor que aloja la base de datos MySQL de origen al grupo de seguridad de VPC para el clúster de base de datos Amazon Aurora. Para obtener más información acerca de la modificación de un grupo de seguridad de VPC, consulte Grupos de seguridad de su VPC en la Guía del usuario de Amazon Virtual Private Cloud.

    Es posible que también necesite configurar su red local para permitir las conexiones desde la dirección IP de su clúster de base de datos de Amazon Aurora con el fin de que se pueda comunicar con la instancia de MySQL de origen. Para encontrar la dirección IP del clúster de base de datos Amazon Aurora, use el comando host.

    host aurora_endpoint_address

    El nombre de host es el nombre DNS del punto de enlace del clúster de base de datos Amazon Aurora.

  6. Utilice el cliente que prefiera para conectarse a la instancia de MySQL externa y cree un usuario de MySQL que se usará para la replicación. Esta cuenta se usa únicamente para la replicación y debe estar limitada a su dominio para mejorar la seguridad. A continuación se muestra un ejemplo.

    CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
  7. Para la instancia de MySQL externa, conceda a REPLICATION CLIENT y a REPLICATION SLAVE privilegios para el usuario de replicación. Por ejemplo, para conceder los privilegios REPLICATION CLIENT y REPLICATION SLAVE en todas las bases de datos al usuario "repl_user" del dominio, ejecute el siguiente comando.

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com' IDENTIFIED BY 'password';
  8. Tome una instantánea manual del clúster de base de datos de Aurora MySQL para que sea la réplica de lectura antes de configurar la replicación. Si tiene que restablecer la replicación con el clúster de base de datos como réplica de lectura, puede restaurar el clúster de base de datos de Aurora MySQL desde esta instantánea en lugar de tener que importar los datos desde su instancia de base de datos de MySQL en un nuevo clúster de base de datos de Aurora MySQL.

  9. Convierta el clúster de base de datos de Amazon Aurora DB en la réplica. Conéctese al clúster de base de datos de Amazon Aurora como usuario maestro e identifique la base de datos origen de MySQL como origen de replicación usando los procedimientos mysql.rds_set_external_master (Aurora MySQL versión 2) o mysql.rds_set_external_source (Aurora MySQL versión 3) y mysql.rds_start_replication.

    Use la posición y el nombre del archivo binlog que determinó en el paso 2. A continuación, se muestra un ejemplo.

    For Aurora MySQL version 2: CALL mysql.rds_set_external_master ('mymasterserver.example.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 0); For Aurora MySQL version 3: CALL mysql.rds_set_external_source ('mymasterserver.example.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 0);
  10. En el clúster de base de datos de Amazon Aurora, ejecute el procedimiento mysql.rds_start_replication para comenzar la replicación.

    CALL mysql.rds_start_replication;

Una vez que haya establecido la replicación entre su instancia de base de datos MySQL de origen y su clúster de base de datos Amazon Aurora, podrá añadir réplicas de Aurora a su clúster de base de datos Amazon Aurora. A continuación, puede conectarse a las réplicas de Aurora para escalar la lectura de sus datos. Para obtener más información acerca de la creación de una réplica de Aurora, consulte Adición de réplicas de Aurora a un clúster de base de datos.