はじめに
DB関連のエラー調査のため、psqlのメタコマンドを実行する必要があった。
使用PCはWindowsです。
問題
psqlコマンドでDBへ接続したいが、踏み台サーバーを経由する必要があるが、方法が不明だったため調査。
解決方法
sshでポートフォワーディングによる接続を行う必要がある。
私の参加していた案件ではpemファイルを利用していたので、pemファイルも指定する。
ssh -o StrictHostKeyChecking=no -f -N -L {ローカルで待ち受けるポート}:{RDSのエンドポイント}:5432 ec2-user@{踏み台サーバーのIP} -i {秘密鍵のパス} 2>&1
※ローカルで待ち受けるポートは他と重複しない任意のポート番号
接続できているか確認する。
netstat -na
結果
状態がLISTENINGになっていることを確認。
...
TCP 127.0.0.1:{指定したローカルのポート} 0.0.0.0:0 LISTENING
...
psqlコマンドで接続する。
$ psql -h localhost -p {指定したローカルのポート} -U {DBユーザー} -d {データベース名}
ーザー [DBユーザー] のパスワード:
psql (16.2、サーバー 15.4)
SSL接続(プロトコル: TLSv1.3、暗号化方式: TLS_AES_256_GCM_SHA384、圧縮: オフ)
"help"でヘルプを表示します。
[データベース名]=>
無事接続できた。
おわりに
普段あまりやらない事を突然(しかも緊急で)やらないといけなくなるとテンパりますね。
とにかく落ち着いて調べていけば大丈夫、と自分へ。