0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MySQL WorkBentchから複数の踏み台サーバーを経由してRDSへ接続する方法

Posted at

やりたいこと

例えば、下記の図のようなインフラ構成でDBへアクセスしようと思うと
一旦踏み台サーバーを経由してから、本番のWEBサーバーへ接続し、そこからRDSへ接続する必要があります。

MySQL WorkBentch単体ではoverSSHを使っても一台しか経由ができません。

とはいえコマンドライン上でDBを操作し続けるのはつらいので、
このような場合にMySQL WorkBentchのようなクライアントツールを使う方法を解説します。

image.png

解決方法

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を押すと接続できるか確認ができます。
※ポイントはポートをポートフォワーディングで指定した時のものをしっかり合わせることです。

mysql

以上となります。
もしもっと便利な方法がございましたら教えて頂ければ幸いです。

今後もう少し詳しく追記させて頂く予定です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?