> ## Documentation Index
> Fetch the complete documentation index at: https://www.integrate.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Aurora PostgreSQL source for ELT & CDC

> Configure Aurora PostgreSQL as a source in Integrate.io ELT & CDC. Enable logical replication on your Aurora cluster and grant rds_replication.

This page covers the **Aurora-specific** steps to prepare your cluster for ELT & CDC. After completing them, follow the common setup (sync user grants, heartbeat table, publication, and replication slot) on the [PostgreSQL source for ELT & CDC](/cdc/postgresql) page.

## Requirements

* Aurora PostgreSQL **version 10 or above**.
* Connect to the cluster **writer endpoint**. Logical replication only works on the primary instance.
* Tables with a `PRIMARY KEY`.

## Enable logical replication

<Steps>
  <Step>
    Go to AWS RDS dashboard
  </Step>

  <Step title="Open the AWS RDS dashboard">
    Go to the AWS RDS console.
  </Step>

  <Step>
    Create and configure parameter group - select your Aurora PostgreSQL version (e.g. shown below is postgres12). Choose **aurora-postgres10 or above**.
  </Step>

  <Step title="Create or open a DB cluster parameter group">
    Create a **DB Cluster Parameter Group** that matches your Aurora PostgreSQL version (for example, `aurora-postgresql12`). Skip this step if you already have one.

    <Frame>
      <img src="https://mintcdn.com/integrateio/SIDFEDRgXpxG0yrn/images/cdc/sources/image-79.png?fit=max&auto=format&n=SIDFEDRgXpxG0yrn&q=85&s=86cf91005438a0788a7ad19646a69ac9" alt="Creating a DB Cluster Parameter Group for Aurora PostgreSQL in AWS RDS" width="2234" height="1196" data-path="images/cdc/sources/image-79.png" />
    </Frame>
  </Step>

  <Step>
    Choose type as **DB Cluster Parameter Group**.

    <Note>
      **NOTE:**

      You can skip this step if you have already created a parameter group.
    </Note>

    <Frame>
      <img src="https://mintcdn.com/integrateio/SIDFEDRgXpxG0yrn/images/cdc/sources/image-79.png?fit=max&auto=format&n=SIDFEDRgXpxG0yrn&q=85&s=86cf91005438a0788a7ad19646a69ac9" alt="Creating a DB Cluster Parameter Group for Aurora PostgreSQL in AWS RDS" width="2234" height="1196" data-path="images/cdc/sources/image-79.png" />
    </Frame>

    Next, go to the parameter group page, search for `rds.logical_replication`. Select this row and click the `Edit parameters` button. Set this value to `1`

    <Frame>
      <img src="https://mintcdn.com/integrateio/SIDFEDRgXpxG0yrn/images/cdc/sources/image-80.png?fit=max&auto=format&n=SIDFEDRgXpxG0yrn&q=85&s=1113525cc45622671a348e66fe8c12ca" alt="Setting rds.logical_replication parameter to 1 in the parameter group" width="1326" height="582" data-path="images/cdc/sources/image-80.png" />
    </Frame>

    Apply the parameter group to the database

    <Frame>
      <img src="https://mintcdn.com/integrateio/SIDFEDRgXpxG0yrn/images/cdc/sources/image-81.png?fit=max&auto=format&n=SIDFEDRgXpxG0yrn&q=85&s=1d9eb78a27356e5e339c596ce60b7ae2" alt="Applying the parameter group to the Aurora PostgreSQL database instance" width="1530" height="604" data-path="images/cdc/sources/image-81.png" />
    </Frame>
  </Step>

  <Step title="Set rds.logical_replication to 1">
    On the parameter group page, search for `rds.logical_replication`, select the row, click **Edit parameters**, and set the value to `1`.

    <Frame>
      <img src="https://mintcdn.com/integrateio/SIDFEDRgXpxG0yrn/images/cdc/sources/image-80.png?fit=max&auto=format&n=SIDFEDRgXpxG0yrn&q=85&s=1113525cc45622671a348e66fe8c12ca" alt="Setting rds.logical_replication parameter to 1 in the parameter group" width="1326" height="582" data-path="images/cdc/sources/image-80.png" />
    </Frame>
  </Step>

  <Step title="Apply the parameter group and reboot">
    Apply the parameter group to the cluster and reboot the writer instance so the change takes effect.

    <Frame>
      <img src="https://mintcdn.com/integrateio/SIDFEDRgXpxG0yrn/images/cdc/sources/image-81.png?fit=max&auto=format&n=SIDFEDRgXpxG0yrn&q=85&s=1d9eb78a27356e5e339c596ce60b7ae2" alt="Applying the parameter group to the Aurora PostgreSQL database instance" width="1530" height="604" data-path="images/cdc/sources/image-81.png" />
    </Frame>
  </Step>
</Steps>

## Grant the Aurora replication role

After creating the sync user (see the [common setup](/cdc/postgresql#setup-steps-customer-managed)), grant the managed Aurora replication role instead of `ALTER ROLE ... WITH REPLICATION`:

```sql theme={null}
GRANT rds_replication TO integrateio;
```

## Next: common setup

Continue with the canonical PostgreSQL setup for the remaining steps — sync user privileges (`USAGE`, `SELECT`, `REFERENCES`), heartbeat table, publication, and replication slot:

<Card title="PostgreSQL source for ELT & CDC" icon="arrow-right" horizontal href="/cdc/postgresql" />

<CardGroup cols={2}>
  <Card title="SSH Tunnel" icon="arrow-right" horizontal href="/cdc/ssh-tunnel" />

  <Card title="PostgreSQL PrivateLink" icon="arrow-right" horizontal href="/cdc/postgresql-privatelink-set-up" />
</CardGroup>
