前提・実現したいこと
2つのAWSアカウントでEC2が構築されており、片方をA、もう片方をBとします。BのほうではRDSも構築されており、AからPythonを起動し、Bを踏み台にしてRDSに接続することを目的としています。
発生している問題・エラーメッセージ
途中でフリーズして、エラーも出てこないので原因を知りたい。
"SSH接続開始"のコメント以降でTimeoutにもならず、 先にも進まない状態でフリーズしてしまいます。
該当のソースコード
Python
1import mysql.connector 2from sshtunnel import SSHTunnelForwarder 3 4(中略) 5 6def AAAAA(): 7 try: 8 sshtunnel.SSH_TIMEOUT = 10.0 9 10 with sshtunnel.SSHTunnelForwarder( 11 ('XXXXXXXXXXXX', 22), 12 ssh_host_key=None, 13 ssh_username='ec2-user', 14 ssh_password=None, 15 ssh_pkey='./XXXXXXXXX.pem', 16 remote_bind_address=('XXXXXXXXX.ap-northeast-1.rds.amazonaws.com', 3306), 17 local_bind_address=('0.0.0.0', 3306) 18 ) as tunnel: 19 print("SSH接続開始") 20 conn = mysql.connector.connect( 21 host='127.0.0.1', 22 port=3306, 23 user='admin', 24 db='XXXXXX', 25 passwd='XXXXXX', 26 charset="utf8" 27 ) 28 29 print('c-con start') 30 c = conn.cursor() 31 print(c) 32 c.execute("SELECT * FROM XXXXXX ORDER BY Rand() LIMIT 50") 33
試したこと
AおよびBのインバウンド、アウトバウンドの問題かと思い、Portの22、3306、3389の開放は行いましたが、解決しませんでした。
同じプログラムでローカルPCからBを踏み台にしてRDSへの接続は確認できています。
tunnelの情報を取得しました。
Python
1<class 'sshtunnel.SSHTunnelForwarder'> object 2ssh gateway: XXXXXXXXX 3proxy: no 4username: ec2-user 5authentication: {'pkeys': [('ssh-rsa', b'XXXXXXXX')]} 6hostkey: not checked 7status: started 8keepalive messages: disabled 9tunnel connection check: disabled 10concurrent connections: allowed 11compression: not requested 12logging level: ERROR 13local binds: [('0.0.0.0', 3306)] 14remote binds: [('XXXXXXX.ap-northeast-1.rds.amazonaws.com', 3306)]
あなたの回答
tips
プレビュー