質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

0回答

2110閲覧

AWSのEC2間をSSHTunnelForwarderで接続できない。

Yuki_S

総合スコア356

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

0クリップ

投稿2020/09/09 12:57

編集2020/09/10 02:39

前提・実現したいこと

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)]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問