Trabajo con réplicas de lectura de clústeres de base de datos Multi-AZ - Amazon Relational Database Service

Trabajo con réplicas de lectura de clústeres de base de datos Multi-AZ

Una réplica de lectura de clúster de base de datos es un tipo especial de clúster que se crea a partir de una instancia de base de datos de origen. Después de crear una réplica de lectura, cualquier actualización realizada en la instancia de base de datos principal se copia de forma asíncrona en la réplica de lectura del clúster de base de datos multi-AZ. Puede reducir la carga de la instancia de la base de datos principal enrutando las consultas de lectura de sus aplicaciones a la réplica de lectura. Las réplicas de lectura le permiten ajustar la escala de manera elástica por encima de las restricciones de capacidad de una instancia de base de datos para las cargas de trabajo de las bases de datos con operaciones intensivas de lectura.

También puede crear una o varias réplicas de lectura de instancia de base de datos desde un clúster de base de datos multi-AZ. Las réplicas de lectura de instancia de base de datos permiten escalar por encima de la capacidad de computación o de E/S del clúster de base de datos multi-AZ de origen al dirigir el exceso de tráfico de lectura a las réplicas leídas. Actualmente, no puede crear una réplica de lectura de clúster de base de datos multi-AZ a partir de un clúster de base de datos multi-AZ existente.

Migración a un clúster de base de datos Multi-AZ mediante una réplica de lectura

Para migrar una implementación Single-AZ o una implementación de instancia de base de datos Multi-AZ a una implementación de clúster de base de datos Multi-AZ con un tiempo de inactividad reducido, puede crear una réplica de lectura de clúster de base de datos Multi-AZ. Para el origen, especifique la instancia de base de datos en la implementación Single-AZ o la instancia de base de datos principal en la implementación de instancia de base de datos Multi-AZ. La instancia de base de datos puede procesar transacciones de escritura durante la migración a un clúster de base de datos Multi-AZ.

Tenga en cuenta lo siguiente antes de crear una réplica de lectura de clúster de base de datos Multi-AZ:

  • La instancia de base de datos de origen debe estar en una versión que sea compatible con clústeres de base de datos Multi-AZ. Para obtener más información, consulte Regiones y motores de base de datos admitidos para clústeres de bases de datos Multi-AZ en Amazon RDS.

  • La réplica de lectura del clúster de base de datos Multi-AZ debe estar en la misma versión principal que su origen y en la misma versión secundaria o una posterior.

  • Debe habilitar las copias de seguridad automáticas en la instancia de base de datos de origen estableciendo el periodo de retención de copia de seguridad en un valor distinto de 0.

  • El almacenamiento asignado a la instancia de base de datos de origen debe ser de 100 GiB o más.

  • En el caso de RDS para MySQL, los parámetrosgtid-mode y enforce_gtid_consistency se deben definir como ON para la instancia de base de datos de origen. Debe usar un grupo de parámetros personalizado, no el grupo de parámetros predeterminado. Para obtener más información, consulte Trabajo con los grupos de parámetros en una instancia de base de datos.

  • Una transacción activa de ejecución prolongada puede ralentizar el proceso de creación de la réplica de lectura. Le recomendamos que espere a que se completen las transacciones de ejecución prolongada antes de crear una réplica de lectura.

  • Si elimina la instancia de base de datos de origen de una réplica de lectura de clúster de base de datos Multi-AZ, la réplica de lectura se promociona a un clúster de base de datos Multi-AZ independiente.

Creación y promoción de la réplica de lectura de clúster de base de datos Multi-AZ

Puede crear y promocionar una réplica de lectura de clúster de base de datos Multi-AZ mediante la AWS Management Console, la AWS CLI o la API de RDS.

nota

Recomendamos encarecidamente crear todas las réplicas de lectura en la misma nube privada virtual (VPC) basándose en la Amazon VPC de la instancia de base de datos de origen.

Si crea una réplica de lectura en una VPC que no sea la instancia de base de datos de origen, los rangos de enrutamiento entre dominios sin clases (CIDR) pueden superponerse entre la réplica y el sistema de Amazon RDS. La superposición de CIDR hace que la réplica sea inestable, lo que puede afectar negativamente a las aplicaciones que se conectan a ella. Si obtiene un error al crear la réplica de lectura, elija un grupo de subred de base de datos de destino diferente. Para obtener más información, consulte Uso de una instancia de base de datos en una VPC.

Para migrar una implementación Single-AZ o una implementación de instancia de base de datos Multi-AZ a un clúster de base de datos Multi-AZ mediante una réplica de lectura, siga estos pasos con la AWS Management Console.

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. Cree la réplica de lectura de clúster de base de datos Multi-AZ.

    1. En el panel de navegación, seleccione Databases (Bases de datos).

    2. Seleccione la instancia de base de datos que desea usar como origen de una réplica de lectura

    3. En Actions (Acciones), elija Create read replica (Crear réplica de lectura).

    4. En Availability and durability (Disponibilidad y durabilidad), elija Multi-AZ DB cluster (Clúster de base de datos Multi-AZ).

    5. En DB instance identifier (Identificador de instancias de bases de datos), escriba un nombre para la réplica de lectura.

    6. En el resto de secciones, especifique los ajustes de configuración del clúster de base de datos. Para obtener más información acerca de una configuración, consulte Configuración para la creación de clústeres de base de datos Multi-AZ.

    7. Elija Create read replica (Crear réplica de lectura).

  3. Cuando haya terminado, promocione la réplica de lectura para que sea un clúster de base de datos Multi-AZ independiente:

    1. Detenga la escritura de transacciones en la instancia de base de datos de origen y, a continuación, espere hasta que se hayan realizado todas las actualizaciones en la réplica de lectura.

      Las actualizaciones de la base de datos se producen en la réplica de lectura después de haberse producido en la instancia de la base de datos principal. Este retardo en la replicación puede variar considerablemente. Utilice la métrica ReplicaLag para determinar cuándo se han completado todas las actualizaciones en la réplica de lectura. Para obtener más información acerca del retardo de replicación, consulte Monitoreo de la replicación de lectura.

    2. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

    3. En la consola de Amazon RDS, seleccione Databases (Bases de datos).

      Aparece el panel Databases (Bases de datos). Cada réplica de lectura muestra Replica (Réplica) en la columna Role (Rol).

    4. Elija la réplica de lectura del clúster de base de datos Multi-AZ que desea promocionar.

    5. En Actions (Acciones), seleccione Promote (Promover).

    6. En la página Promote Read Replica (Promocionar réplica de lectura), escriba el periodo de retención de copia de seguridad y el periodo de copia de seguridad para el clúster de base de datos Multi-AZ que acaba de promocionar.

    7. Cuando la configuración sea la deseada, elija Promote read replica (Promocionar réplica de lectura).

    8. Espere a que el estado del clúster de base de datos Multi-AZ promocionado sea Available.

    9. Indique a sus aplicaciones que utilicen el clúster de base de datos Multi-AZ promocionado.

    Si lo desea, elimine la implementación Single-AZ o la implementación de instancia de base de datos Multi-AZ si ya no es necesaria. Para obtener instrucciones, consulte Eliminación de una instancia de base de datos.

Para migrar una implementación Single-AZ o una implementación de instancia de base de datos Multi-AZ a un clúster de base de datos Multi-AZ mediante una réplica de lectura, siga estos pasos con la AWS CLI.

  1. Cree la réplica de lectura de clúster de base de datos Multi-AZ.

    Para crear una réplica de lectura a partir de una instancia de base de datos de origen, utilice el comando de AWS CLI create-db-cluster. Para --replication-source-identifier, especifique el nombre de recurso de Amazon (ARN) de la instancia de base de datos de origen.

    Para Linux, macOS o Unix:

    aws rds create-db-cluster \ --db-cluster-identifier mymultiazdbcluster \ --replication-source-identifier arn:aws:rds:us-east-2:123456789012:db:mydbinstance --engine postgres \ --db-cluster-instance-class db.m5d.large \ --storage-type io1 \ --iops 1000 \ --db-subnet-group-name defaultvpc \ --backup-retention-period 1

    En Windows:

    aws rds create-db-cluster ^ --db-cluster-identifier mymultiazdbcluster ^ --replication-source-identifier arn:aws:rds:us-east-2:123456789012:db:mydbinstance --engine postgres ^ --db-cluster-instance-class db.m5d.large ^ --storage-type io1 ^ --iops 1000 ^ --db-subnet-group-name defaultvpc ^ --backup-retention-period 1
  2. Detenga la escritura de transacciones en la instancia de base de datos de origen y, a continuación, espere hasta que se hayan realizado todas las actualizaciones en la réplica de lectura.

    Las actualizaciones de la base de datos se producen en la réplica de lectura después de haberse producido en la instancia de la base de datos principal. Este retardo en la replicación puede variar considerablemente. Utilice la métrica Replica Lag para determinar cuándo se han completado todas las actualizaciones en la réplica de lectura. Para obtener más información acerca del retardo de replicación, consulte Monitoreo de la replicación de lectura.

  3. Cuando esté listo, promocione la réplica de lectura para que sea un clúster de base de datos Multi-AZ independiente:

    Para promocionar una réplica de lectura de clúster de base de datos Multi-AZ, utilice el comando de la AWS CLI promote-read-replica-db-cluster. En --db-cluster-identifier, especifique el identificador de la réplica de lectura del clúster de base de datos Multi-AZ.

    aws rds promote-read-replica-db-cluster --db-cluster-identifier mymultiazdbcluster
  4. Espere a que el estado del clúster de base de datos Multi-AZ promocionado sea Available.

  5. Indique a sus aplicaciones que utilicen el clúster de base de datos Multi-AZ promocionado.

Si lo desea, elimine la implementación Single-AZ o la implementación de instancia de base de datos Multi-AZ si ya no es necesaria. Para obtener instrucciones, consulte Eliminación de una instancia de base de datos.

Para migrar una implementación Single-AZ o una implementación de instancia de base de datos Multi-AZ a un clúster de base de datos Multi-AZ mediante una réplica de lectura, siga estos pasos con la API de EDS.

  1. Cree la réplica de lectura de clúster de base de datos Multi-AZ.

    Para crear una réplica de lectura de clúster de base de datos Multi-AZ, utilice la operación CreateDBCluster con el parámetro requerido DBClusterIdentifier. Para ReplicationSourceIdentifier, especifique el nombre de recurso de Amazon (ARN) de la instancia de base de datos de origen.

  2. Detenga la escritura de transacciones en la instancia de base de datos de origen y, a continuación, espere hasta que se hayan realizado todas las actualizaciones en la réplica de lectura.

    Las actualizaciones de la base de datos se producen en la réplica de lectura después de haberse producido en la instancia de la base de datos principal. Este retardo en la replicación puede variar considerablemente. Utilice la métrica Replica Lag para determinar cuándo se han completado todas las actualizaciones en la réplica de lectura. Para obtener más información acerca del retardo de replicación, consulte Monitoreo de la replicación de lectura.

  3. Cuando esté listo, promocione la réplica de lectura para que sea un clúster de base de datos Multi-AZ independiente.

    Para promocionar una réplica de lectura de clúster de base de datos Multi-AZ, utilice la operación PromoteReadReplicaDBCluster con el parámetro requerido DBClusterIdentifier. Especifique el identificador de la réplica de lectura del clúster de base de datos Multi-AZ.

  4. Espere a que el estado del clúster de base de datos Multi-AZ promocionado sea Available.

  5. Indique a sus aplicaciones que utilicen el clúster de base de datos Multi-AZ promocionado.

Si lo desea, elimine la implementación Single-AZ o la implementación de instancia de base de datos Multi-AZ si ya no es necesaria. Para obtener instrucciones, consulte Eliminación de una instancia de base de datos.

Limitaciones para crear una réplica de lectura del clúster de base de datos Multi-AZ

Las siguientes limitaciones se aplican a la creación de una réplica de lectura del clúster de base de datos Multi-AZ a partir de una implementación Single-AZ o una implementación de instancia de base de datos Multi-AZ.

  • No puede crear una réplica de lectura del clúster de base de datos multi-AZ en una Cuenta de AWS que no sea la Cuenta de AWS que posee la instancia de base de datos de origen.

  • No puede crear una réplica de lectura del clúster de base de datos Multi-AZ en una cuenta de Región de AWS diferente de la instancia de base de datos de origen.

  • No se puede recuperar una réplica de lectura del clúster de base de datos Multi-AZ en un punto en el tiempo.

  • El cifrado de almacenamiento debe tener la misma configuración en la instancia de base de datos de origen y en el clúster de base de datos Multi-AZ.

  • Si la instancia de base de datos de origen está cifrada, la réplica de lectura del clúster de base de datos Multi-AZ debe cifrarse con la misma clave de KMS.

  • Si la instancia de base de datos de origen utiliza almacenamiento SSD de uso general (gp3) y tiene menos de 400 GiB de almacenamiento asignado, no puede modificar las IOPS aprovisionadas para la réplica de lectura del clúster de base de datos multi-AZ.

  • Para realizar una actualización de la versión secundaria en la instancia de base de datos de origen, primero debe realizarla en la réplica de lectura del clúster de base de datos Multi-AZ.

  • Al realizar una actualización de la versión secundaria en una réplica de lector de un clúster de base de datos multi-AZ de RDS para PostgreSQL, la instancia de base de datos del lector no cambia a la instancia de base de datos del escritor después de la actualización. Por lo tanto, es posible que su clúster de base de datos experimente un tiempo de inactividad mientras Amazon RDS actualiza la instancia de escritor.

  • No se puede realizar una actualización de la versión principal en una réplica de lectura de un clúster de base de datos multi-AZ.

  • Puede realizar una actualización de la versión principal en la instancia de base de datos de origen de una réplica de lectura del clúster de base de datos Multi-AZ, pero la replicación en la réplica de lectura se detiene y no se puede reiniciar.

  • La réplica de lectura del clúster de base de datos Multi-AZ no admite réplicas de lectura en cascada.

  • En el caso de RDS para PostgreSQL, las réplicas de lectura del clúster de base de datos Multi-AZ no pueden realizar una conmutación por error.

Creación de una réplica de lectura de instancia de base de datos desde un clúster de base de datos multi-AZ

Puede crear una réplica de lectura de instancia de base de datos a partir de un clúster de base de datos multi-AZ para escalar por encima de la capacidad de computación o E/S del clúster para cargas de trabajo de las bases de datos con operaciones intensivas de lectura. Puede dirigir este exceso del tráfico de lectura a una o varias réplicas de lectura de instancia de base de datos. También puede usar réplicas de lectura para migrar desde un clúster de base de datos multi-AZ a una instancia de base de datos.

Para crear una réplica de lectura, especifique un clúster de base de datos multi-AZ como origen de la replicación. Una de las instancias de lector del clúster de base de datos multi-AZ es siempre el origen de la replicación, no la instancia del escritor. Esto garantiza que la réplica esté siempre sincronizada con el clúster de origen, incluso en casos de conmutación por error.

Comparación de instancias de base de datos del lector con réplicas de lectura de instancia de base de datos

Una réplica de lectura de instancia de base de datos de un clúster de base de datos multi-AZ se diferencia de las instancias de base de datos de lector del clúster de base de datos multi-AZ en los siguientes aspectos:

  • Las instancias de base de datos del lector actúan como destinos de la conmutación por error automática, mientras que las réplicas de lectura de instancia de base de datos no.

  • Las instancias de base de datos del lector deben reconocer un cambio en la instancia de base de datos del escritor antes de poder confirmarlo. Sin embargo, en las réplicas de lectura de instancia de base de datos, las actualizaciones se copian de forma asíncrona en la réplica de lectura sin necesidad de que se reconozcan.

  • Las instancias de base de datos del lector siempre comparten la misma clase de instancia, tipo de almacenamiento y versión de motor que la instancia de base de datos del escritor del clúster de base de datos multi-AZ. Sin embargo, las réplicas de lectura de instancia de base de datos no tienen que compartir necesariamente las mismas configuraciones que el clúster de origen.

  • Puede promocionar una réplica de lectura de instancia de base de datos a una instancia de base de datos independiente. No puede promocionar una instancia de base de datos de lector de un clúster de base de datos multi-AZ a una instancia independiente.

  • El punto de conexión del lector solo enruta las solicitudes a las instancias de base de datos del lector del clúster de base de datos multi-AZ. Nunca las enruta a una réplica de lectura de una instancia de base de datos.

Para obtener más información acerca de las instancias de base de datos de lector y escritor, consulte Información general sobre los clústeres de base de datos Multi-AZ.

Consideraciones

Tenga en cuenta lo siguiente antes de crear una réplica de lectura de instancia de base de datos desde un clúster de base de datos multi-AZ:

  • Cuando cree la réplica de lectura de la instancia de base de datos, esta debe tener la misma versión principal que su clúster de origen y la misma versión secundaria o una posterior. Después de crearla, tiene la opción de actualizar la réplica de lectura a una versión secundaria posterior a la del clúster de origen.

  • Al crear la réplica de lectura de la instancia de base de datos, el almacenamiento asignado debe ser el mismo que el del clúster de base de datos multi-AZ de origen. Puede cambiar el almacenamiento asignado después de crear la réplica de lectura.

  • El parámetro gtid-mode debe establecerse en ON para el clúster de base de datos Multi-AZ de origen. Para obtener más información, consulte Trabajo con grupos de parámetros de clúster de base de datos para clústeres de base de datos Multi-AZ.

  • Una transacción activa de ejecución prolongada puede ralentizar el proceso de creación de la réplica de lectura. Le recomendamos que espere a que se completen las transacciones de ejecución prolongada antes de crear una réplica de lectura.

  • Si elimina el clúster de base de datos multi-AZ de origen de una réplica de lectura de instancia de base de datos, todas las réplicas de lectura en las que esté escribiendo se promocionan a instancias de base de datos independientes.

Creación de una réplica de lectura de instancia de base de datos

Puede crear una réplica de lectura de instancia de base de datos desde un clúster de base de datos multi-AZ mediante la AWS Management Console, la AWS CLI o la API de RDS.

nota

Recomendamos encarecidamente crear todas las réplicas de lectura en la misma nube privada virtual (VPC) basándose en la Amazon VPC del clúster de base de datos multi-AZ de origen.

Si crea una réplica de lectura en una VPC diferente del clúster de base de datos multi-AZ de origen, los rangos de enrutamiento entre dominios sin clases (CIDR) pueden superponerse entre la réplica y el sistema RDS. La superposición de CIDR hace que la réplica sea inestable, lo que puede afectar negativamente a las aplicaciones que se conectan a ella. Si obtiene un error al crear la réplica de lectura, elija un grupo de subred de base de datos de destino diferente. Para obtener más información, consulte Uso de una instancia de base de datos en una VPC.

Para crear una réplica de lectura de instancia de base de datos desde un clúster de base de datos multi-AZ, siga estos pasos con la AWS Management Console.

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

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

  3. Elija el clúster de base de datos multi-AZ que desea usar como origen de una réplica de lectura.

  4. En Actions (Acciones), elija Create read replica (Crear réplica de lectura).

  5. En Origen de réplica, asegúrese de seleccionar el clúster de base de datos multi-AZ correcto.

  6. En Identificador de base de datos, escriba un nombre para la réplica de lectura.

  7. En el resto de secciones, especifique los ajustes de configuración de la instancia de base de datos. Para obtener más información acerca de una configuración, consulte Configuración de instancias de base de datos.

    nota

    El almacenamiento asignado para la réplica de lectura de la instancia de base de datos debe ser el mismo que el del clúster de base de datos multi-AZ de origen.

  8. Elija Create read replica (Crear réplica de lectura).

Para crear una réplica de lectura de instancia de base de datos desde un clúster de base de datos multi-AZ, utilice el comando de la AWS CLI create-db-instance-read-replica. En --source-db-cluster-identifier, especifique el identificador del clúster de base de datos multi-AZ.

Para Linux, macOS o Unix:

aws rds create-db-instance-read-replica \ --db-instance-identifier myreadreplica \ --source-db-cluster-identifier mymultiazdbcluster

En Windows:

aws rds create-db-instance-read-replica ^ --db-instance-identifier myreadreplica ^ --source-db-cluster-identifier mymultiazdbcluster

Para crear una réplica de lectura de instancia de base de datos desde un clúster de base de datos multi-AZ, utilice la operación CreateDBInstanceReadReplica.

Promoción de la réplica de lectura de instancia de base de datos

Si ya no necesita la réplica de lectura de instancia de base de datos, puede promocionarla a una instancia de base de datos independiente. Cuando se promociona una réplica de lectura, la instancia de base de datos se reinicia antes de que esté disponible. Para obtener instrucciones, consulte Promoción de una réplica de lectura para convertirla en una instancia de base de datos independiente.

Si utiliza la réplica de lectura para migrar una implementación de clúster de base de datos multi-AZ a una implementación de instancia de base de datos single-AZ o multi-AZ, asegúrese de detener cualquier transacción que se esté escribiendo en el clúster de base de datos de origen. A continuación, espere hasta que se hayan realizado todas las actualizaciones en la réplica de lectura. Las actualizaciones de la base de datos se realizan en la réplica de lectura después de haberse realizado en una de las instancias de base de datos del lector del clúster de base de datos multi-AZ. Este retardo en la replicación puede variar considerablemente. Utilice la métrica ReplicaLag para determinar cuándo se han completado todas las actualizaciones en la réplica de lectura. Para obtener más información acerca del retardo de replicación, consulte Monitoreo de la replicación de lectura.

Tras promocionar la réplica de lectura, espere a que el estado de la instancia de base de datos promocionada sea Available antes de indicar a las aplicaciones que utilicen la instancia de base de datos promocionada. Si lo desea, elimine la implementación del clúster de base de datos multi-AZ si ya no la necesita. Para obtener instrucciones, consulte Eliminación de un clúster de base de datos Multi-AZ.

Limitaciones en la creación de una réplica de lectura de instancia de base de datos desde un clúster de base de datos multi-AZ

Las siguientes limitaciones se aplican a la creación de una réplica de lectura de instancia de base de datos desde una implementación de clúster de base de datos multi-AZ.

  • No puede crear una réplica de lectura de instancia de base de datos en una Cuenta de AWS que no sea la Cuenta de AWS que posee el clúster de base de datos multi-AZ de origen.

  • No puede crear una réplica de lectura de instancia de base de datos en una Región de AWS diferente a la del clúster de base de datos multi-AZ de origen.

  • No se puede recuperar una réplica de lectura de instancia de base de datos en un punto en el tiempo.

  • El cifrado de almacenamiento debe tener la misma configuración en el clúster de base de datos multi-AZ de origen y en la réplica de lectura de instancia de base de datos.

  • Si el clúster de base de datos multi-AZ de origen está cifrado, la réplica de lectura de instancia de base de datos debe cifrarse con la misma clave de KMS.

  • Para realizar una actualización de la versión secundaria en el clúster de base de datos multi-AZ de origen, primero debe realizarla en la réplica de lectura de instancia de base de datos.

  • La réplica de lectura de instancia de base de datos no admite réplicas de lectura en cascada.

  • Para RDS para PostgreSQL, el clúster de base de datos Multi-AZ de origen debe ejecutar la versión 13.11, 14.8, 15.2.R2 o posterior de PostgreSQL para poder crear una réplica de lectura de instancia de base de datos.

  • Puede realizar una actualización de la versión principal en el clúster de base de datos multi-AZ de origen de una réplica de lectura de la instancia de base de datos, pero la replicación en la réplica de lectura se detiene y no se puede reiniciar.