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
- Go to AWS Console > Redshift > Clusters > select your cluster
- Under the Properties tab, find the VPC security group
- Click the security group link to open it in the EC2 console
- Click Edit inbound rules
- Add a rule:
- Type: Custom TCP
- Port range: 5439
- Source: Custom, and enter Landed's static IPs
Landed's Static IPs
| Environment | IPs |
|---|---|
| Production | 34.170.185.84, 35.192.90.94 |
| Staging | 34.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
- Go to AWS Console > Redshift > Clusters > select your cluster
- Under General information, find the Endpoint
- The endpoint looks like:
cluster-name.abc123xyz.us-east-1.redshift.amazonaws.com:5439/dev - Split this into:
- Host:
cluster-name.abc123xyz.us-east-1.redshift.amazonaws.com - Port:
5439 - Database:
dev
- Host:
Step 4: Configure in Landed
| Field | Value |
|---|---|
| Host | Your cluster endpoint (without port and database) |
| Port | 5439 (default) |
| Database | dev (or your database name) |
| User | landed (the user you created) |
| Password | The password you set |
| Schema | public (or your custom schema) |
Common Errors
| Error | Cause | Fix |
|---|---|---|
Connection refused | Security group not configured | Add Landed's IPs to the inbound rules |
Connection timed out | Cluster not publicly accessible | Enable public access on the cluster |
Password authentication failed | Wrong credentials | Verify username and password |
Permission denied for schema | Missing grants | Run the GRANT statements from Step 1 |
Disk space full | Cluster storage exhausted | Resize 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.