AWS Redshift

Guide to integrate your Redshift with Sprinkle

This page covers the details about integrating Redshift with Sprinkle.

When setting up Redshift connection, Sprinkle additionally requires S3 bucket. This guide covers the role of all the components and steps to setup.

Step by Step Guide

Integrating Redshift

STEP-1: Allow Redshift to accept connection from Sprinkle

  • Redshift cluster should be there with Publicly Accessible as Enabled. If not, enable it.

  • The case-sensitive identifier parameter should be enabled for the parameter group assigned to the Redshift cluster.

  • Create a security group to allow inbound connection on port 5439 from Sprinkle IPs (34.93.254.126, 34.93.106.136).

  • Add the security group to your Redshift cluster.

STEP-2: Configure Redshift Connection

  • Log into Sprinkle application

  • Navigate to Admin -> Warehouse -> New Warehouse Connection

  • Select Redshift

  • Provide all the mandatory details

    • Distinct Name: Name to identify this connection

    • Host : Provide cluster string (e.g. mycluster.cmeaswqeuae.us-east-2.redshift.amazonaws.com). For more details see this.

    • Port :Provide the Port number.

    • Database : Provide database name if there is any, it should be an existing database.

    • Username

    • Password

  • SSH Tunnel in Redshift:

    • Connect via SSH Host: Click on "Yes" to configure SSH Tunnel.

    • SSH Host* : IP address or hostname of the SSH server

    • SSH Public Key* : Copy the SSH public key and paste it into the ~/.ssh/authorized_keys file of the SSH user on the ssh host machine

    • SSH Login Username* : Provide the SSH Login Username where you added the public key. Further, verify the provided details by testing the connection.

    • Networking rules from your end:

      • Make sure SSH Host has public IP

      • Whitelist Sprinkle IPs (34.93.254.126, 34.93.106.136) in your SSH Host. SSH host should be able to accept traffic from these Sprinkle IPs.

      • Make sure SSH port 22 is open.

      Once this setting is completed you can try test-connection and if successful, you can update the changes.

  • Test Connection

  • Create

Create S3 Bucket

Sprinkle requires S3 Bucket to store intermediate data and report caches. Follow the below steps to create and configure S3 bucket:

STEP-1: Create a S3 bucket

Create a S3 bucket, provide any name like “sprinkle” in the same location/region as the Redshift cluster.

STEP-2: Create an IAM user for S3 access

Create a new IAM user, provide any name like “sprinkle-s3-user”. Select credential type as Access key. Create an inline policy as below. Make sure to use the actual bucket name in place of BUCKET_NAME:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::<BUCKETNAME>/*",
                "arn:aws:s3:::<BUCKETNAME>"
            ]
        }
    ]
}

From the credentials tab, get the Access Key Id and Secret Key of the IAM user.

STEP-3: Configure S3 connection in Sprinkle

  • Log into Sprinkle application

  • Navigate to Admin -> Warehouse -> New Warehouse Connection -> Add Storage

  • Select S3

  • Provide all the mandatory details

    • Distinct Name: Name to identify this connection

    • Access Key: Created in STEP-2

    • Secret Key: Created in STEP-2

    • Region: Region of the bucket, example: ap-south-1

    • Bucket Name: Name of the bucket created above

  • Test Connection

  • Create

Last updated