from sshtunnel import SSHTunnelForwarder import pymysql with SSHTunnelForwarder( ('ec2-52-202-194-76.public-ec2-instance.amazonaws.com'), ssh_username="ec2-user", ssh_pkey="~/ssh-tunnel-rds.pem", remote_bind_address=('private-rds-instance.ckfkidfytpr4.us-east-1.rds.amazonaws.com', 3306) ) as tunnel: print("****SSH Tunnel Established****") db = pymysql.connect( host='127.0.0.1', user="rdsuser", password="rdspassword", port=tunnel.local_bind_port ) # Run sample query in the database to validate connection try: # Print all the databases with db.cursor() as cur: cur.execute('SHOW DATABASES') for r in cur: print(r) finally: db.close() print("YAYY!!")