Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Guía de configuración de RDS MariaDB como fuente

Esta es una guía paso a paso para configurar su instancia de RDS MariaDB a fin de replicar sus datos mediante ClickPipe para MySQL.


Habilitar la retención del binlog

El binlog es un conjunto de archivos de log que contienen información sobre las modificaciones de datos realizadas en una instancia del servidor MySQL. Los archivos de binlog son necesarios para la replicación. Deben seguirse ambos pasos que se indican a continuación:

Habilitar el binary logging mediante copias de seguridad automatizadas

La función de copias de seguridad automatizadas determina si el binary logging está activado o desactivado para MySQL. Se puede configurar en la consola de AWS:

Habilitación de copias de seguridad automatizadas en RDS

Es recomendable establecer la retención de copias de seguridad en un valor razonablemente largo en función del caso de uso de la replicación.

Horas de retención del binlog

Amazon RDS para MariaDB utiliza un método distinto para configurar la duración de retención del binlog, es decir, el tiempo durante el que se conserva un archivo de binlog que contiene cambios. Si algunos cambios no se leen antes de que se elimine el archivo de binlog, la replicación no podrá continuar. El valor predeterminado de las horas de retención del binlog es NULL, lo que significa que los logs binarios no se conservan.

Para especificar la cantidad de horas durante las que se conservarán los logs binarios en una instancia de base de datos, use la función mysql.rds_set_configuration con un período de retención del binlog lo bastante largo como para que se produzca la replicación. 24 hours es el mínimo recomendado.

mysql=> call mysql.rds_set_configuration('binlog retention hours', 24);

Configurar los ajustes de binlog en el grupo de parámetros

Puede encontrar el grupo de parámetros haciendo clic en su instancia de MariaDB en la RDS Console y, a continuación, navegando a la pestaña Configurations.

Dónde encontrar el grupo de parámetros en RDS

Al hacer clic en el enlace del grupo de parámetros, accederá a la página del grupo de parámetros. Verá un botón Edit en la esquina superior derecha:

Editar grupo de parámetros

Los ajustes binlog_format, binlog_row_metadata y binlog_row_image deben establecerse de la siguiente manera:

  1. binlog_format en ROW.
Formato de binlog en ROW
  1. binlog_row_metadata en FULL
Metadatos de fila de binlog en FULL
  1. binlog_row_image en FULL
Imagen de fila de binlog en FULL

A continuación, haga clic en Save Changes en la esquina superior derecha. Es posible que deba reiniciar su instancia para que los cambios surtan efecto. Si ve Pending reboot junto al enlace del grupo de parámetros en la pestaña Configurations de la instancia de RDS, es un buen indicio de que debe reiniciar la instancia.


Habilitación del modo GTID

Los identificadores globales de transacción (GTID) son identificadores únicos asignados a cada transacción confirmada en MySQL/MariaDB. Simplifican la replicación del binlog y facilitan la resolución de problemas. MariaDB habilita el modo GTID de forma predeterminada, por lo que no es necesario que el usuario realice ninguna acción para usarlo.

Configurar un usuario de base de datos

Conéctese a su instancia de RDS MariaDB como administrador y ejecute los siguientes comandos:

  1. Cree un usuario específico para ClickPipes:

    CREATE USER 'clickpipes_user'@'host' IDENTIFIED BY 'some-password';
  2. Conceda permisos sobre el esquema. El siguiente ejemplo muestra permisos para la base de datos mysql. Repita estos comandos para cada base de datos y host que desee replicar:

    GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host';
  3. Conceda permisos de replicación al usuario:

    GRANT REPLICATION CLIENT ON *.* TO 'clickpipes_user'@'%';
    GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';

Uso de la autenticación de IAM (opcional)

Instead of a password, you can authenticate the ClickPipes user with an AWS IAM role. This lets ClickPipes connect to your Amazon RDS instance without storing database credentials.

Enable IAM authentication

  1. Log in to your AWS account and go to the RDS instance you want to configure.
  2. Click Modify.
  3. Scroll to the Database authentication section.
  4. Select Password and IAM database authentication.
  5. Click Continue.
  6. Review the changes and select Apply immediately.

Create the ClickPipes user

Create the ClickPipes user with IAM authentication enabled, then grant it the same schema and replication privileges shown above:

CREATE USER 'clickpipes_iam_user' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';

Obtain the ClickHouse service IAM role ARN

  1. Log in to your ClickHouse Cloud account.
  2. Select the ClickHouse service you want to connect.
  3. Select the Settings tab.
  4. Scroll to the Network security information section at the bottom of the page.
  5. Copy the service's Service role ID (IAM) value, shown below.
Service role ID (IAM) value in the Network security information section

This value is your {ClickHouse_IAM_ARN} — the role ClickPipes uses to access your RDS instance.

Obtain the resource ID

  1. Log in to your AWS account and go to the RDS instance you want to configure.
  2. Select the Configuration tab.
  3. Note the Resource ID value — it looks like db-xxxxxxxxxxxxxx. This is your {RDS_RESOURCE_ID}, which you reference in the permissions policy.

Create the IAM role

  1. Log in to your AWS account with an IAM user that has permission to create and manage IAM roles.
  2. Open the IAM console.
  3. Create a new IAM role with the following trust and permissions policies.

    Trust policy (replace {ClickHouse_IAM_ARN} with the IAM role ARN of your ClickHouse instance):

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "{ClickHouse_IAM_ARN}"
          },
          "Action": [
            "sts:AssumeRole",
            "sts:TagSession"
          ]
        }
      ]
    }

    Permissions policy (replace {RDS_RESOURCE_ID} with the resource ID of your RDS instance, {RDS_REGION} with its region, and {AWS_ACCOUNT} with your AWS account ID):

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "rds-db:connect"
          ],
          "Resource": [
            "arn:aws:rds-db:{RDS_REGION}:{AWS_ACCOUNT}:dbuser:{RDS_RESOURCE_ID}/clickpipes_iam_user"
          ]
        }
      ]
    }
  4. Once the role is created, copy its ARN. This is your {RDS_ACCESS_IAM_ROLE_ARN}.

You can now use this IAM role to authenticate with your RDS instance from ClickPipes.

Configurar el acceso de red

Control de acceso basado en IP

Si desea restringir el tráfico hacia su instancia de RDS, añada las IP estáticas de NAT documentadas a las reglas de entrada de su grupo de seguridad de RDS.

¿Dónde encontrar el grupo de seguridad en RDS?
Editar las reglas de entrada del grupo de seguridad anterior

Para conectarse a su instancia de RDS a través de una red privada, puede utilizar AWS PrivateLink. Siga nuestra guía de configuración de AWS PrivateLink para ClickPipes para establecer la conexión.

Navigation