やりたいこと
例えば、下記の図のようなインフラ構成でDBへアクセスしようと思うと
一旦踏み台サーバーを経由してから、本番のWEBサーバーへ接続し、そこからRDSへ接続する必要があります。
MySQL WorkBentch単体ではoverSSHを使っても一台しか経由ができません。
とはいえコマンドライン上でDBを操作し続けるのはつらいので、
このような場合にMySQL WorkBentchのようなクライアントツールを使う方法を解説します。
解決方法
SSHポートフォワーディングを使った多段SSHを行います。
ポートフォワーディングとは
ポートを転送する機能のこと指します。
例えば
「サーバーAの100番ポートに来た通信は、サーバーBに転送する」
といったような感じです。
上記の仕組みを使うことで、
MySQL WorkBentchで100番ポートを指定すると決まったサーバーまで転送してくれるので接続することができます。
環境
Windows
GitBash
MySQL WorkBentch
手順 - ポートフォワーディング
まずはGitBashなどターミナルを開き、下記のようなコマンドを入力して本番サーバーまでポートフォワーディングさせます。
$ ssh -t -L 任意のポート番号A:localhost:任意のポート番号B -i ~/.ssh/踏み台の鍵名.pem ユーザー名@11.111.111.111 ssh -L 任意のポート番号B:RDSのホスト名:3306 ユーザー名@22.222.222.222
#コマンドの例
$ ssh -t -L 10022:localhost:44444 -i ~/.ssh/bastion.pem ec2-user@11.111.111.111 ssh -L 44444:RDSのホスト名:3306 ec2-user@22.222.222.222
コマンドを流すと本番サーバーまで接続されます。
このままGitBash(ターミナル)を閉じずに接続を維持します。
※閉じてしまうとこの後に行うMySQL WorkBentchを使っても接続することができません。
手順 - MySQL WorkBentchでの設定
以下の画像のように設定し、Test Connectionを押すと接続できるか確認ができます。
※ポイントはポートをポートフォワーディングで指定した時のものをしっかり合わせることです。

以上となります。
もしもっと便利な方法がございましたら教えて頂ければ幸いです。
今後もう少し詳しく追記させて頂く予定です。