Skip to main content

Redshift Destination

Prerequisites

  • An Amazon Redshift cluster (any node type)
  • AWS IAM permissions to manage Redshift cluster security groups
  • A database user with CREATE and INSERT privileges

Step 1: Create a Dedicated User

Connect to your Redshift cluster (via psql, SQL Workbench, or the Redshift Query Editor) and run:

-- Create a dedicated user for Landed
CREATE USER landed PASSWORD '<strong-password>' CREATEDB;

-- Grant schema privileges
GRANT USAGE ON SCHEMA public TO landed;
GRANT CREATE ON SCHEMA public TO landed;

-- If using a custom schema:
-- CREATE SCHEMA IF NOT EXISTS landed_data;
-- GRANT USAGE ON SCHEMA landed_data TO landed;
-- GRANT CREATE ON SCHEMA landed_data TO landed;

Step 2: Allow Network Access

  1. Go to AWS Console > Redshift > Clusters > select your cluster
  2. Under the Properties tab, find the VPC security group
  3. Click the security group link to open it in the EC2 console
  4. Click Edit inbound rules
  5. Add a rule:
    • Type: Custom TCP
    • Port range: 5439
    • Source: Custom, and enter Landed's static IPs

Landed's Static IPs

EnvironmentIPs
Production34.170.185.84, 35.192.90.94
Staging34.171.93.34

Important: Your Redshift cluster must also be publicly accessible. Check under cluster Properties > Network and security > Publicly accessible = Yes. If it's not, you'll need to modify the cluster.

Step 3: Find Your Cluster Endpoint

  1. Go to AWS Console > Redshift > Clusters > select your cluster
  2. Under General information, find the Endpoint
  3. The endpoint looks like: cluster-name.abc123xyz.us-east-1.redshift.amazonaws.com:5439/dev
  4. Split this into:
    • Host: cluster-name.abc123xyz.us-east-1.redshift.amazonaws.com
    • Port: 5439
    • Database: dev

Step 4: Configure in Landed

FieldValue
HostYour cluster endpoint (without port and database)
Port5439 (default)
Databasedev (or your database name)
Userlanded (the user you created)
PasswordThe password you set
Schemapublic (or your custom schema)

Common Errors

ErrorCauseFix
Connection refusedSecurity group not configuredAdd Landed's IPs to the inbound rules
Connection timed outCluster not publicly accessibleEnable public access on the cluster
Password authentication failedWrong credentialsVerify username and password
Permission denied for schemaMissing grantsRun the GRANT statements from Step 1
Disk space fullCluster storage exhaustedResize your cluster or delete unused data

Performance Notes

  • Redshift uses columnar storage. Landed creates tables with appropriate sort keys for time-series data.
  • Connections use SSL (sslmode=require) by default.
  • For large data volumes, consider using a dc2.large or ra3 node type.