Skip to content

Instantly share code, notes, and snippets.

@dexter0201
Forked from jshahriddhi/connect_private_rds.py
Created December 24, 2020 11:30
Show Gist options
  • Save dexter0201/bd8f0cb21b0993a7542c57422594d53c to your computer and use it in GitHub Desktop.
Save dexter0201/bd8f0cb21b0993a7542c57422594d53c to your computer and use it in GitHub Desktop.
Connecting to a private AWS RDS instance in python
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!!")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment