¿Cómo puedo crear una réplica de lectura para una instancia de base de datos de Amazon Aurora MySQL?

7 minutos de lectura
0

Tengo un clúster de Amazon Aurora MySQL. Me gustaría crear una réplica de lectura dentro de una región o entre regiones, o agregar regiones para mi clúster de base de datos de Aurora. ¿Cómo puedo hacerlo?

Breve descripción

Las réplicas de Aurora aumentan la capacidad de procesamiento del clúster de base de datos de Aurora MySQL. Ayudan a distribuir la carga de trabajo de lectura (escalado de lectura) dentro de la región y también actúan como destinos de conmutación por error. Esto significa que si se produce un error en la instancia de base de datos principal, una réplica de Aurora pasará a ser la instancia principal.

Una réplica de lectura entre regiones utiliza el registro binario de MySQL para replicar los datos en un clúster de otra región. Esto le permite escalar las operaciones de lectura a una región secundaria más cercana a sus usuarios. Esto ayuda a mejorar las capacidades de recuperación de desastres. También facilita la migración de una región de AWS a otra.

Las bases de datos globales de Amazon Aurora pueden abarcar varias regiones de AWS. Permiten realizar lecturas globales de baja latencia y recuperarse tras una interrupción poco frecuente que podría afectar a toda una región de AWS. Aurora replica los datos en las regiones de AWS secundarias mediante su propio protocolo de replicación y su infraestructura dedicada, lo que da lugar a latencias que suelen ser inferiores a un segundo.

Siga los siguientes pasos para crear una réplica de lectura dentro de una región o entre regiones, o para agregar una nueva región a su clúster de base de datos de Aurora MySQL.

Además del registro binario administrado por Aurora, puede configurar y administrar su propio entorno de replicación de registros binarios. En este entorno, Aurora puede ser el origen o el destino.

Nota: Estos pasos no se aplican a los clústeres de Aurora sin servidor o con varios maestros.

Solución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la versión más reciente de AWS CLI.

Creación de una réplica de lectura dentro de la región para un clúster de Aurora MySQL

Utilización de la consola de Amazon RDS

1.Abra la consola de Amazon RDS**** y elija Bases de datos en el panel de navegación.

2.Elija el clúster de base de datos al que desee agregar la nueva instancia de base de datos.

3.En la sección Acciones, elija Agregar lector.

4.En la página Agregar lector, personalice las opciones para su réplica de Aurora.

5.Elija Agregar lector para crear la réplica.

Uso de la AWS CLI

Para crear una réplica de Aurora en su clúster de base de datos mediante AWS CLI, ejecute el comando create-db-instance. Incluya el nombre del clúster de base de datos mediante la opción --db-cluster-identifier. También puede especificar una zona de disponibilidad (AZ) para la réplica de Aurora mediante el parámetro availability-zone.

Este comando de ejemplo crea una réplica de lectura para Aurora MySQL (misma región y compatible con las versiones 5.7 y 8.0 de Aurora MySQL).

Linux, macOS o Unix:

aws rds create-db-instance --db-instance-identifier sample-instance-us-west-2a \
    --db-cluster-identifier sample-cluster --engine aurora-mysql --db-instance-class db.r6g.large \
    --availability-zone us-west-2a

Windows:

aws rds create-db-instance --db-instance-identifier sample-instance-us-west-2a ^
    --db-cluster-identifier sample-cluster --engine aurora-mysql --db-instance-class db.r6g.large ^
    --availability-zone us-west-2a

Nota: Si desea crear una réplica de lectura para un clúster compatible con Aurora MySQL 5.6, modifique el parámetro --engine por --engine aurora en este comando.

Creación de una réplica de lectura entre regiones para un clúster de Aurora MySQL

Antes de poder crear una réplica de lectura entre regiones, debe activar el registro binario para el clúster de base de datos de origen de Aurora MySQL. La replicación entre regiones utiliza la replicación binaria de MySQL para reproducir los cambios en el clúster de réplica de lectura entre regiones. A continuación, cree un clúster entre regiones mediante la consola de Amazon RDS o AWS CLI. 

Nota: No puede crear una réplica de Aurora cifrada para un clúster de base de datos de Aurora sin cifrar. No puede crear una réplica de Aurora sin cifrar para un clúster de base de datos de Aurora cifrado.

Activación del registro binario para su clúster de base de datos

1.Actualice el parámetro binlog_format para su clúster de base de datos de origen. Se trata de un parámetro en el nivel de clúster que se encuentra en el grupo de parámetros del clúster predeterminado.

2.Si su clúster de base de datos utiliza el grupo de parámetros del clúster de base de datos predeterminado, cree otro grupo de parámetros de clúster de base de datos para modificar la configuración de binlog_format. Se recomienda definir binlog_format como MIXED. También puede definir binlog_format como ROW o STATEMENT si necesita un formato binlog específico.

3.    Reinicie el clúster de base de datos de Aurora para que los cambios surtan efecto.

Creación de un clúster entre regiones mediante la consola de Amazon RDS

1.Abra la consola de Amazon RDS y, a continuación, elija la región de AWS que sirve de host a su clúster de base de datos de origen.

2.En el panel de navegación, elija Instancias.

3.Marque la casilla de selección de la instancia de base de datos para la que desee crear una réplica de lectura entre regiones.

4.En Acciones, seleccione Crear réplica de lectura entre regiones.

5.En la página Crear réplica de lectura entre regiones, seleccione la configuración de la opción para su clúster de base de datos de réplica de lectura entre regiones.

Creación de un clúster entre regiones mediante AWS CLI

Para crear un clúster entre regiones mediante AWS CLI, primero cree el clúster propiamente dicho en la región de destino mediante la llamada create-db-cluster. A continuación, utilice la llamada create-db-instance para crear la instancia de lector.

Este ejemplo crea una réplica entre regiones con Linux, macOS o Unix y es compatible con las versiones 5.7 y 8.0 de Aurora MySQL.

1.Cree el clúster mediante la ejecución de un comando similar al siguiente:

aws rds create-db-cluster \
  --db-cluster-identifier sample-replica-cluster \
  --engine aurora-mysql \
  --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-source-cluster

2.Compruebe si el clúster está disponible:

aws rds describe-db-clusters --db-cluster-identifier sample-replica-cluster

3.Cree una instancia en el clúster:

aws rds create-db-instance \
  --db-cluster-identifier sample-replica-cluster \
  --db-instance-class db.r6g.large \
  --db-instance-identifier sample-replica-instance \
  --engine aurora-mysql

Para realizar una creación como con la CLI en Windows, siga los mismos pasos, pero utilice el símbolo ^ como delimitador de línea en lugar de ****.

Adición de una región de AWS a un clúster aprovisionado por Aurora para crear una base de datos global de Aurora

Utilización de la consola de Amazon RDS

  1. Abra la consola de Amazon RDS.

  2. En el panel de navegación, seleccione Bases de datos.

  3. Elija la base de datos global de Aurora que necesite un clúster secundario de base de datos de Aurora. Asegúrese de que el clúster de base de datos principal de Aurora tenga el estado Disponible.

  4. En Acciones, seleccione Añadir región.

  5. Elija la región de AWS que desee añadir. 

**Nota:**No puede elegir una región de AWS que ya tenga un clúster secundario de base de datos de Aurora para la misma base de datos global de Aurora. Además, no puede elegir la misma región de AWS que la del clúster principal de base de datos de Aurora. 

  1. Complete los campos restantes del clúster secundario de Aurora en la nueva región de AWS. A continuación, seleccione Añadir región

Uso de la AWS CLI

Ejecute el siguiente script en AWS CLI.

Nota: Si utiliza Windows, reemplace el delimitador de línea \ por el símbolo ^.

aws rds --region us-east-2 \
  create-db-cluster \
    --db-cluster-identifier secondary_cluster_id \
    --global-cluster-identifier global_database_id \
    --engine aurora-mysql \
    --engine-version version

aws rds --region us-east-2 \
  create-db-instance \
    --db-instance-class db.r6g.large \
    --db-cluster-identifier secondary_cluster_id \
    --db-instance-identifier db_instance_id \
    --engine aurora-mysql

Información relacionada

Adición de réplicas de Aurora a un clúster de base de datos

Replicación de clústeres de base de datos de Amazon Aurora MySQL en regiones de AWS

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años