Crear una réplica de AWS RDS para MySql
Amazon RDS es un servicio de base de datos gestionado por AWS fácil de configurar. Amazon RDS soporta dos tipos de funciones de replicación: 1) Despliegues Multi-AZ 2) Réplicas de lectura.
En el despliegue Multi-AZ, RDS almacena una réplica de la base de datos en espera en otra zona de disponibilidad. Aquí las actualizaciones de la base de datos se aplican simultáneamente al nodo principal y al nodo réplica. Si se produce una conmutación por error, RDS trasladará automáticamente las operaciones al nodo réplica en espera sin heredar ninguna interrupción en las operaciones de la base de datos.
En el caso de una réplica de lectura, también hay una réplica en espera, pero no se puede acceder a esta réplica directamente antes de cualquier conmutación por error. Este comportamiento puede utilizarse para el escalado elástico de una instancia de BD. Para cargas de trabajo de bases de datos de lectura intensiva, se pueden crear varias réplicas de una instancia de base de datos de origen dentro de la misma región de AWS o en una región de AWS diferente.
A partir del 11 de enero de 2018, las réplicas de lectura de Amazon RDS para bases de datos MySQL y su bifurcación MariaDB vienen ahora con una facilidad de despliegue en zonas de disponibilidad múltiple.
Las actualizaciones de la base de datos primaria o maestra se transfieren de forma asíncrona a las réplicas de lectura. Además de proporcionar escalabilidad, las réplicas de lectura también pueden utilizarse para la recuperación de desastres. Por ejemplo, si la instancia de la base de datos primaria falla, la réplica puede ser impulsada como una instancia independiente y trabajar en nombre de la base de datos primaria.
¿Qué vamos a cubrir?
En esta guía, veremos cómo crear una réplica de lectura de una instancia de base de datos MySql RDS.
Notas clave sobre la réplica de lectura
Antes de seguir adelante, ten en cuenta algunas de las notas clave relativas a las réplicas de lectura:
- Es una buena práctica configurar una réplica de lectura de la misma manera que se configura una instancia de base de datos maestra.
- Los únicos motores de bases de datos compatibles con las réplicas de lectura son MariaDB, Microsoft SQL Server, MySQL, Oracle y PostgreSQL.
- El tipo de almacenamiento por defecto de una réplica de lectura es el mismo que el de la instancia de la BD de origen. El tipo de almacenamiento también puede cambiarse al crear la réplica de lectura.
- Ten en cuenta que al cambiar el tamaño de almacenamiento asignado a una réplica de lectura, no puedes aumentarlo en un valor inferior al 10 por ciento.
- La replicación circular no está soportada por Amazon RDS.
- Las réplicas de diferentes motores de BD tienen varias diferencias.
- Al crear una réplica de lectura se produce una breve suspensión de E/S.
- Para crear una réplica de lectura, las copias de seguridad automáticas deben estar activadas en la instancia de la BD de origen. Esto puede hacerse estableciendo el valor del periodo de retención de las copias de seguridad mayor que «0».
Creación de réplicas de lectura desde la consola de administración de AWS
Antes de proceder a la réplica de lectura, pon en marcha tu instancia de base de datos. Ahora dirígete a la consola de administración de RDS, aquí podemos ver que nuestra instancia de BD ‘base de datos-1’, que está basada en la BD MySQL, se está ejecutando:
Nota: Para crear una réplica de lectura podemos utilizar la consola de AWS, la CLI de AWS y la API de RDS.
La configuración de nuestra base de datos principal es la siguiente:
DB instance identifier: ‘database-1’
Database engine: MySql
Database version: 8.0.28
Master username: ‘Your-username’
Master password: ‘Your-password’
DB instance class: db.t2.micro (Free-tier)
Storage size: 20 GiB
Public Access: ‘No’
Automated backups: ‘Enabled’
Con la configuración de la base de datos anterior vamos a continuar con la réplica de lectura:
Paso 1. En la consola de administración de RDS, selecciona la instancia de la BD de destino. Ahora haz clic en el menú desplegable «Acción» situado arriba y elige la opción «Crear réplica de lectura»:
Paso 2. En la siguiente página, algunas configuraciones ya están preseleccionadas según el enfoque de las mejores prácticas. Aquí nos ceñimos a las mejores prácticas, pero somos libres de cambiarlas.
Paso 3. En «Origen de la réplica», elige la instancia de la BD de origen para la réplica de lectura. Introduce un nombre para la instancia de la BD de réplica de lectura («DBreplica» en nuestro caso). Elige también una región para lanzar la réplica de lectura. Hemos seleccionado la misma región para la réplica de lectura que la de la instancia de BD.
Nos ceñimos a la configuración preseleccionada para la clase de instancia de BD y los detalles de almacenamiento.
La opción de autoescalado del almacenamiento ya está activada en la sección Almacenamiento.
Paso 4. En el despliegue Multi-AZ puedes crear un soporte de reserva o standby para la réplica seleccionando «sí». Por ahora omitimos esta opción:
Paso 5. Nuestra réplica de lectura no es accesible públicamente ya que hemos elegido la opción «No accesible públicamente». Además, la autentificación de la base de datos se basa en la «autentificación por contraseña».
Paso 6. Como no hemos activado la opción de encriptación para la instancia de la BD de origen, también la hemos omitido aquí. Del mismo modo, la opción de monitorización, registro y protección de borrado se dejan sin tocar.
Paso 7. Dentro de la opción Configuración adicional de la base de datos, se puede cambiar el valor del puerto a otro distinto del valor por defecto. Paso 8. Para copiar las etiquetas en las instantáneas, marca la casilla «Copiar etiquetas en las instantáneas». Se puede habilitar la autenticación IAM DB para gestionar la base de datos a través de un usuario IAM. Otra cosa opcional que puedes hacer es habilitar las actualizaciones menores de la base de datos.
Paso 8. Ahora haz clic en el botón «Crear réplica de lectura» para iniciar el proceso de creación de la réplica.
Si prefieres utilizar la forma de la CLI de AWS, puedes crear la réplica de lectura utilizando el comando ‘create-db-instance-read-replica’ con las opciones cli necesarias:
$ aws rds create-db-instance-read-replica --db-instance-identifier DBreplica --source-db-instance-identifier database-1 --max-allocated-storage 1000
Conclusión
En esta guía hemos visto cómo crear una réplica de lectura para una base de datos MySql. Las réplicas de lectura te proporcionan una versión de sólo lectura copiada asíncronamente de la base de datos primaria, lo que te proporciona escalabilidad y una base de datos de recuperación en espera.