AWS Redshift
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.
- Integrating Redshift: All analytical data is stored and queried from Redshift warehouse
- Create S3 Bucket: Sprinkle stores all intermediate data and report caches in this bucket
Step by Step Guide
Section titled βStep by Step GuideβIntegrating Redshift
Section titled βIntegrating RedshiftβSTEP-1: Allow Redshift to accept connection from Sprinkle
Section titled β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
Section titled β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
Section titled β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
Section titled β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
Section titled β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