How to connect to Amazon redshift cluster from within my Amazon EC2 instance
12:14 11 Sep 2017

I have a Redshift Cluster in my AWS account. I am able to connect to it in python and when I run the script locally, it runs perfectly fine:

import psycopg2
con = psycopg2.connect(dbname='some_dbname', host='hostname.us-east-2.redshift.amazonaws.com', port='port#', user='username', password='password')
    cursor=con.cursor()
    query = "select * from table;"
    cursor.execute(query)
    data = np.array(cursor.fetchall())
cursor.close()
con.commit()
con.close()

But, when I copy the above script to my EC2 instance (Amazon Linux AMI), and then try running it, I get the following error:

conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: could not connect to server: Connection timed out
    Is the server running on host "hostname.us-east-2.redshift.amazonaws.com" and accepting
    TCP/IP connections on port port#?

Can anybody help me out in how to connect to my Redshift cluster from my EC2 instance? Thanks!

python amazon-web-services amazon-ec2 amazon-redshift psycopg2