Push-to-Warehouse Setup: Postgres (RDS or Aurora)

📘

In this guide, you will be setting up a connection to a data warehouse destination you own. Reach out to your Customer Success Manager or [email protected] to confirm that your Modern Treasury plan includes the Push to Warehouse capability.

Prerequisites

  • If your Postgres database is protected by security groups or other firewall settings, please reference our Push to Warehouse IP Address documentation to complete Step 1.

Step 1: Allow access

Allow write access to a portion of your RDS or Aurora PostgreSQL database.

Configure the Security Group

  1. In your Amazon RDS > Databases list, click the PostgreSQL instance you want to send data to.
  2. In the database page, in the Connectivity & security tab, make note of the Endpoint and the Port number.

  1. In the Security section, ensure that set the Publicly accessible setting is set to Yes to ensure that the destination is accessible from outside your VPC. Note that it is still only accessible through whitelisted IPs at this point.

  1. Click one of the VPC security groups (usually default). Note: VPC groups are permissive (vs. restrictive) and for instances with multiple VPC security groups, only one needs to be configured with the new inbound rule.

  1. In the Security Groups section, select the Inbound rules tab.
  2. Click Edit inbound rules and then click Add rule.
  3. Edit the newly created rule of type Custom TCP with the Port range noted in the first step (usually 5432) and a Custom Source value that includes all of the service IPs. Note: you will need to add /32 to the end of each IP (CIDR notation).
  4. Click Save rules.

Configure network ACLs (access control list)

For database instances in a VCP

  1. In your RDS dashboard, select the PostgreSQL instance.
  2. Click the link to the instance's VPC.
  3. Click the VPC ID.

  1. In the Details section, click on the link under Main network ACL.

  1. Click on the network ACL ID.

Edit the inbound rules

  1. Click on the Inbound rules tab, and check if there is an existing rule with a Source of 0.0.0.0/0 set to Allow. (This is a default rule created by AWS. If this rule already exists, skip to Edit outbound rules.)

  1. Create the inbound rule (if it doesn't exist). Click Edit inbound rules and either Add new rule or edit an existing rule to allow access to the port number of your database instance (usually 5432) from the Prequel static IP. Click Save changes.

Edit the outbound rules

  1. In the ACL menu, select the Outbound rules tab, and check if there is an existing rule with a Destination of 0.0.0.0/0 set to Allow. (This is a default rule created by AWS. If this rule already exists, skip to the next step.)

  1. Create the outbound rule (if it doesn't exist). Click Edit outbound rules and edit the rules to allow outbound traffic to ports 1024-65535 for Destination 0.0.0.0/0.

Step 2: Create writer user

Create a database user to perform the writing of the source data.

  1. Open a connection to your Amazon RDS PostgreSQL database.
  2. Create a user for the data transfer by executing the following SQL command.
CREATE USER <username> PASSWORD '<some-password>';
  1. Grant user create and temporary privileges on the database. create allows the service to create new schemas and temporary allows the service to create temporary tables.
GRANT CREATE, TEMPORARY ON DATABASE <database> TO <username>;

🚧

If the schema already exists:

By default, the service creates a new schema based on the destination configuration (in the next step). If you prefer to create the schema yourself before connecting the destination, you must ensure that the writer user has the proper permissions on the schema, using GRANT ALL ON schema <schema> TO <username>;

Step 3: Add your destination

Securely share your host name, database name, port, your chosen schema name, username, and password with us to complete the connection.