Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Guide de configuration de la source RDS Postgres

Versions de Postgres prises en charge

ClickPipes prend en charge Postgres à partir de la version 12.

Activer la réplication logique

Vous pouvez ignorer cette section si votre instance RDS est déjà configurée avec le paramètre suivant :

  • rds.logical_replication = 1

Ce paramètre est généralement préconfiguré si vous avez déjà utilisé un autre outil de réplication des données.

postgres=> SHOW rds.logical_replication ;
 rds.logical_replication
-------------------------
 on
(1 row)

Si ce n’est pas déjà configuré, suivez ces étapes :

  1. Créez un nouveau groupe de paramètres pour votre version de Postgres avec les paramètres requis :
    • Définissez rds.logical_replication sur 1
Où trouver les groupes de paramètres dans RDS ?
Modification de rds.logical_replication
  1. Appliquez le nouveau groupe de paramètres à votre base de données RDS Postgres
Modification de RDS Postgres avec le nouveau groupe de paramètres
  1. Redémarrez votre instance RDS pour appliquer les modifications
Redémarrage de RDS Postgres

Configurer l’utilisateur de la base de données

Connectez-vous à votre instance RDS Postgres en tant qu’utilisateur administrateur et exécutez les commandes suivantes :

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

    CREATE USER clickpipes_user PASSWORD 'some-password';
  2. Accordez à l’utilisateur créé à l’étape précédente un accès en lecture seule au niveau du schéma. L’exemple suivant montre les privilèges pour le schéma public. Répétez ces commandes pour chaque schéma contenant des tables que vous souhaitez répliquer :

    GRANT USAGE ON SCHEMA "public" TO clickpipes_user;
    GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user;
    ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user;
  3. Accordez les privilèges de réplication à l’utilisateur :

    GRANT rds_replication TO clickpipes_user;
  4. Créez une publication avec les tables que vous souhaitez répliquer. Nous vous recommandons vivement de n’inclure dans la publication que les tables nécessaires afin d’éviter tout surcoût de performances.

  • Pour créer une publication pour des tables spécifiques :

    CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
    • Pour créer une publication pour toutes les tables d’un schéma spécifique :

      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";

La publication clickpipes définit l’ensemble des tables dont les événements de modification seront transmis à ClickPipes. Nous vous déconseillons d’utiliser FOR ALL TABLES, sauf si vous comptez répliquer toutes les tables, car inclure des tables inutiles augmente le trafic WAL de Postgres vers ClickPipes et réduit l’efficacité globale de la réplication.

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;
GRANT rds_iam TO clickpipes_iam_user;

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 l’adresse IP

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

Où trouver le groupe de sécurité dans RDS Postgres ?
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.

Solutions de contournement pour RDS Proxy

RDS Proxy ne prend pas en charge les connections de réplication logique. Si vous utilisez des adresses IP dynamiques dans RDS et que vous ne pouvez pas utiliser un nom DNS ni une fonction Lambda, voici quelques alternatives :

  1. À l’aide d’une tâche cron, résolvez périodiquement l’adresse IP de l’endpoint RDS et mettez à jour le NLB si elle a changé.
  2. Utiliser les notifications d’événements RDS avec EventBridge/SNS : déclenchez automatiquement les mises à jour à l’aide des notifications d’événements AWS RDS.
  3. EC2 stable : déployez une instance EC2 pour servir de service de polling ou de proxy basé sur l’IP.
  4. Automatisez la gestion des adresses IP à l’aide d’outils comme Terraform ou CloudFormation.

Et ensuite ?

Vous pouvez maintenant créer votre ClickPipe et commencer à ingérer des données depuis votre instance Postgres dans ClickHouse Cloud. Veillez à noter les informations de connexion utilisées lors de la configuration de votre instance Postgres, car vous en aurez besoin lors de la création du ClickPipe.

Navigation