今回、HeidiSQLを使ってAmazon RDSのMySQLデータベースにSSH経由で接続する方法をご紹介します。前提として、RDSのアカウント情報を把握しており、かつEC2にSSH接続が可能な状態とします。

HeidiSQLとは

HeidiSQLはオープンソースで提供されているデータベースを管理するソフトウェアです。クライアント側で起動したソフトウェアからサーバー上のデータベースに接続して、新しくデータベースを構築したり、ユーザー、テーブルの作成やデータの挿入、更新、削除といった一通りの操作をすることができます。もちろんSQL文も実行可能です。

HeidiSQLには多くの機能が用意されていますが、何度か触ることで「なんとなく」使い方がわかるような操作しやすいUIになっています。SSH接続にも対応しているため、安心して利用できますね。

インストールがまだ済んでいない場合は以下のリンクからインストーラをダウンロードして、インストールしましょう。

https://www.heidisql.com/download.php?download=installer

HeidiSQLの設定

aws-rds-heidisql-image

HeidiSQLを起動すると「セッションマネージャー」が開きます。左下の「新規」>「セッションを追加」を選択し、セッション名に任意の名前を付け、右側の「設定」タブに移動して以下の情報を入力します。

設定

RDSに接続する際の設定項目です。

ネットワーク種別 MySQL(SSH tunnel)
ホスト名 / IP Amazon RDSのEndpoint
(127.0.0.1やlocalhostだと失敗するため)
ユーザー データベースのユーザー名
パスワード データベースのパスワード
ポート データベースのポート番号(3306)

データベースとコメント欄は空のままで問題ないので、続いて「SSHトンネル」のタブに移ります。

SSHトンネル

EC2に接続する際のSSH情報を入力します。

plink.exe plink.exeをダウンロードしてexeを含めたパスを指定します。以下からダウンロードして、HeideSQLと同じディレクトリに入れておきます。
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
SSHホスト + ポート EC2のSSHホストとポート番号を指定します。SSHホスト欄はElastic IPを、ポート番号欄は空にしておくか(22)を入力します。
ユーザー名 EC2に接続する際のユーザー名を入力します。
パスワード SSHのパスフレーズが設定されている場合は、それを入力します。
plink.exeのタイムアウト時間 30(タイムアウト時間が短すぎると接続に失敗するため)
秘密鍵ファイル SSHの鍵ファイルを指定します。.pem形式のファイルだと失敗するため、pemをppk形式に変換してあげます。pem→ppkの変換はPuTTYgenが直感的に使えておすすめです。以下のリンクからページ内検索で「puttygen.exe」と調べてダウンロードします。
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
ローカルポート こちらはデフォルトの値(3307)のままで問題ありません。

上記の設定をして「開く」を押せばつながるはず…ですので、接続後は快適な操作を楽しみましょう!私の場合は「設定」の「ホスト名 / IP」にローカルIPやlocalhostを指定したり、pemをppkに変えずに何度も試行しては失敗していました。。。が無事に接続できたのでよしとします!

以上、Amazon RDS for MySQLのデータベースにHeidiSQLでSSH接続する方法のご紹介でした!

最後まで読んでいただきありがとうございました!