Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Guide de configuration de la source RDS MySQL

Ce guide étape par étape vous montre comment configurer Amazon RDS MySQL afin de répliquer des données dans ClickHouse Cloud à l’aide de MySQL ClickPipe. Pour les questions fréquentes sur le MySQL CDC, consultez la page des FAQ MySQL.

Activer la rétention du journal binaire

Le journal binaire est un ensemble de fichiers de log contenant des informations sur les modifications de données apportées à une instance de serveur MySQL, et ces fichiers sont nécessaires à la réplication. Pour configurer la rétention du journal binaire dans RDS MySQL, vous devez activer la journalisation binaire et augmenter l’intervalle de rétention du binlog.

Activer la journalisation binaire via la sauvegarde automatisée

La fonctionnalité de sauvegardes automatisées détermine si la journalisation binaire est activée ou non pour MySQL. Vous pouvez configurer les sauvegardes automatisées pour votre instance dans la RDS Console en accédant à Modify > Additional configuration > Backup, puis en cochant la case Enable automated backups (si ce n’est pas déjà fait).

Activation des sauvegardes automatisées dans RDS

Nous recommandons de définir la Backup retention period sur une valeur suffisamment longue, selon votre cas d’usage de la réplication.

Augmenter l’intervalle de rétention du binlog

Par défaut, Amazon RDS purge le journal binaire dès que possible (c’est-à-dire avec une purge différée). Nous recommandons d’augmenter l’intervalle de rétention du binlog à au moins 72 heures afin de garantir la disponibilité des fichiers de journal binaire pour la réplication en cas de défaillance. Pour définir un intervalle de rétention du journal binaire (binlog retention hours), utilisez la procédure mysql.rds_set_configuration :

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

Si cette configuration n'est pas définie, ou si l'intervalle configuré est trop court, cela peut entraîner des trous dans les logs binaires et compromettre la capacité de ClickPipes à reprendre la réplication.

Configurer les paramètres du binlog

Vous trouverez le groupe de paramètres en cliquant sur votre instance MySQL dans la RDS Console, puis en accédant à l’onglet Configuration.

Où trouver le groupe de paramètres dans RDS

Cliquez sur le lien du groupe de paramètres pour accéder à sa page dédiée. Vous devriez voir un bouton Edit en haut à droite.

Modifier le groupe de paramètres

Les paramètres suivants doivent être définis comme suit :

  1. binlog_format sur ROW.
Format du binlog défini sur ROW
  1. binlog_row_metadata sur FULL
Métadonnées de ligne du binlog définies sur FULL
  1. binlog_row_image sur FULL
Image de ligne du binlog définie sur FULL

Ensuite, cliquez sur Save Changes dans l’angle supérieur droit. Vous devrez peut-être redémarrer votre instance pour que les modifications prennent effet. Vous le saurez si Pending reboot apparaît à côté du lien du groupe de paramètres dans l’onglet Configuration de l’instance RDS.

Activer le mode GTID

Les Global Transaction Identifiers (GTIDs) sont des identifiants uniques attribués à chaque transaction validée dans MySQL. Ils simplifient la réplication du binlog et facilitent le dépannage. Nous recommandons d’activer le mode GTID afin que MySQL ClickPipe puisse utiliser la réplication basée sur GTID.

La réplication basée sur GTID est prise en charge pour Amazon RDS for MySQL versions 5.7, 8.0 et 8.4. Pour activer le mode GTID pour votre instance Aurora MySQL, suivez ces étapes :

  1. Dans la RDS Console, cliquez sur votre instance MySQL.
  2. Cliquez sur l’onglet Configuration.
  3. Cliquez sur le lien du groupe de paramètres.
  4. Cliquez sur le bouton Edit dans l’angle supérieur droit.
  5. Définissez enforce_gtid_consistency sur ON.
  6. Définissez gtid-mode sur ON.
  7. Cliquez sur Save Changes dans l’angle supérieur droit.
  8. Redémarrez votre instance pour que les modifications prennent effet.
GTID activé

Configurer un utilisateur de base de données

Connectez-vous à votre instance RDS MySQL avec un utilisateur administrateur, puis exécutez les commandes suivantes :

  1. Créez un utilisateur dédié pour ClickPipes :

    CREATE USER 'clickpipes_user'@'host' IDENTIFIED BY 'some-password';
  2. Accordez des permissions sur le schéma. L'exemple suivant montre les permissions pour la base de données mysql. Répétez ces commandes pour chaque base de données et chaque hôte dont vous souhaitez répliquer les données :

    GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host';
  3. Accordez à l'utilisateur les permissions de réplication :

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

Utiliser l’authentification IAM (facultatif)

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.

Configurer l’accès au réseau

Contrôle d’accès basé sur les adresses IP

Pour restreindre le trafic vers votre instance Aurora MySQL, ajoutez les adresses IP NAT statiques documentées aux Inbound rules de votre groupe de sécurité RDS.

Où trouver le groupe de sécurité dans RDS MySQL ?
Modifier les règles entrantes du groupe de sécurité ci-dessus

Pour vous connecter à votre instance RDS via un réseau privé, vous pouvez utiliser AWS PrivateLink. Suivez le guide de configuration d’AWS PrivateLink pour ClickPipes pour configurer la connexion.

Étapes suivantes

Maintenant que votre instance Amazon RDS MySQL est configurée pour la réplication via le binlog et qu’une connexion sécurisée à ClickHouse Cloud est établie, vous pouvez créer votre premier MySQL ClickPipe. Pour les questions fréquentes sur MySQL CDC, consultez la page des FAQ MySQL.

Navigation