AWS RDSにHeidiSQLでSSHトンネル接続を行う


HeidiSQL(ハイジSQL)で AWS RDS に接続するメモです。

概要

VPCのサブネットで、RDSをPrivateに置いている場合、踏み台EC2を作成して、SSHトンネル接続を行います。RDSはPrivate で、Webはpublicです。DBに直接にアクセスできないようにしています。

社内 パブリック プライベート
PC 22 SSH
3307 仮
踏み台EC2 3306 MySQL RDS

踏み台EC2の作成

  1. AWS EC2 を作成します(Linuxのt2.microでOK)
  2. 踏み台 EC2 の Security Groups(3307は他でもOK)
  3. AWS RDS の Security Groups に追加します(SourceはIPでなくsgでもOK)
Type Protocol Port range Source
SSH TCP 22 グローバルIP
Custom TCP TCP 3307 グローバルIP
Type Protocol Port range Source
MYSQL/Aurora TCP 3306 sg-1234xxxx (test-tunnel-ssh)

HeidiSQLの設定

  1. plink.exe をダウンロードします。DLページはSSHトンネルのリンクを押します。
  2. pem から ppk を作成します。plink.exe と同じサイトから puttygen.exe をDLします。Load で pem を選んで、Save private を押します。
  3. HeidiSQLで接続。plink のタイムアウトを40秒に変更します。



ポイント

  • SQL Error (2003) のとき、HeidiSQL のバージョンが古いです(←ハマりました)
  • RDS側のSecurity Groupsで、踏み台のsgを登録すれば、IPの登録は不要です(知らなかった)

まとめ

結果的に HeidiSQL をバージョンアップをするだけでした。以前のものは接続できて、作成したものは接続できないという中途半端な状態になり、1日くらいハマりました。