Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Guide de configuration de la source RDS MariaDB

Voici un guide pas à pas expliquant comment configurer votre instance RDS MariaDB pour répliquer ses données via le MySQL ClickPipe.


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 effectuées sur une instance de serveur MySQL. Les fichiers du journal binaire sont requis pour la réplication. Les deux étapes ci-dessous doivent être suivies :

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 désactivée pour MySQL. Elle peut être configurée dans la console AWS :

Activation des sauvegardes automatisées dans RDS

Il est conseillé de définir une durée de conservation des sauvegardes suffisamment longue en fonction du cas d’usage de la réplication.

Heures de conservation des binlogs

Amazon RDS for MariaDB utilise une méthode différente pour définir la durée de conservation des binlogs, c’est-à-dire la durée pendant laquelle un fichier binlog contenant des modifications est conservé. Si certaines modifications ne sont pas lues avant la suppression du fichier binlog, la réplication ne pourra pas se poursuivre. La valeur par défaut des heures de conservation des binlogs est NULL, ce qui signifie que les journaux binaires ne sont pas conservés.

Pour spécifier le nombre d’heures pendant lesquelles conserver les journaux binaires sur une instance de base de données, utilisez la fonction mysql.rds_set_configuration avec une période de conservation des binlogs suffisamment longue pour permettre la réplication. 24 hours correspond au minimum recommandé.

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

Configurez les paramètres du binlog dans le groupe de paramètres

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

Où trouver le groupe de paramètres dans RDS

En cliquant sur le lien du groupe de paramètres, vous serez redirigé vers sa page. Vous verrez un bouton Edit en haut à droite :

Modifier le groupe de paramètres

Les paramètres binlog_format, binlog_row_metadata et binlog_row_image doivent être définis comme suit :

  1. binlog_format sur ROW.
Définir le format du binlog sur ROW
  1. binlog_row_metadata sur FULL
Définir les métadonnées de ligne du binlog sur FULL
  1. binlog_row_image sur FULL
Définir l’image de ligne du binlog sur FULL

Ensuite, cliquez sur Save Changes en haut à droite. Vous devrez peut-être redémarrer votre instance pour que les modifications prennent effet. Si la mention Pending reboot apparaît à côté du lien du groupe de paramètres dans l’onglet Configurations de l’instance RDS, cela indique généralement qu’un redémarrage de votre instance est nécessaire.


Activation du mode GTID

Les identifiants de transaction globaux (GTID) sont des identifiants uniques attribués à chaque transaction validée dans MySQL/MariaDB. Ils simplifient la réplication du binlog et facilitent le dépannage. MariaDB active le mode GTID par défaut, donc aucune action n'est requise de la part de l'utilisateur pour l'utiliser.

Configurer un utilisateur de base de données

Connectez-vous à votre instance RDS MariaDB en tant qu'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 les autorisations sur le schéma. L'exemple suivant montre les autorisations pour la base de données mysql. Répétez ces commandes pour chaque base de données et chaque hôte que vous souhaitez répliquer :

    GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host';
  3. Accordez à l'utilisateur les autorisations 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 réseau

Contrôle d’accès basé sur l’adresse IP

Si vous souhaitez restreindre le trafic vers votre instance RDS, ajoutez les adresses IP NAT statiques documentées aux Inbound rules du groupe de sécurité de votre instance RDS.

Où trouver le groupe de sécurité dans RDS ?
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 notre guide de configuration d’AWS PrivateLink pour ClickPipes pour établir la connexion.

Navigation