見出し画像

【ネットワーク】MySQL Workbench から踏み台サーバーを経由して AWS DBに接続する方法(SSH ポートフォワード)

AWSなどクラウドにDBを構築している場合、DB開発をローカルPCから行うためにMySQL Workbenchで接続させたい場合があります。

今回、その方法について説明します。

1. 目的

ローカルPCの『MySQL Workbench』から『AWSのクラウドDB』に接続させることで、DB開発環境を整備します。

2. 前提

下記のような、踏み台サーバーであるWebサーバーを経由してDBに接続するシステム構成とします。

画像1

この構成に対して、ローカルPCから『DBサーバーのMySQL』へMySQL Workbenchを用いて接続します。

3. 手順

ローカルPCから踏み台サーバーを経由してDBに接続するには、ターミナル(コマンドプロンプト)からSSHで穴(ポートフォワード)を構築し、その後にMySQL Workbenchから接続します。

3.1. ポートフォワードによるDBサーバーへの接続
(1) .sshフォルダに①秘密鍵と②configファイルを保存

画像2

configファイルはtxtファイルを作成して、拡張子を削除すれば準備できます。

(2)configファイルの中身を記載
configファイルに下記を記載します。

Host host_wp
 hostname AA.AAA.AA.AAA
 port 22
 user ec2-user
 IdentityFile ~/.ssh/(AWS秘密鍵の名前).pem
Host host_wp_db
 hostname bb.bbb.bb.bbb
 port 22
 user ec2-user
 IdentityFile ~/.ssh/(AWS秘密鍵の名前).pem
 ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -l %r -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null host_wp  -W %h:%p
 GatewayPorts   yes
 LocalForward   9999   localhost:3306

Webサーバーへの接続 → host_wp
DBサーバーへの接続 → host_wp_db が対応 しています。

DBサーバーへの接続は、ProxyCommand で host_wp 接続を経由するように指定しております。

---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
(補足)

今回の例では、DBサーバーへの接続(host_wp_db)に、ローカルPCのポート『9999』を利用しています。
ポート9999は任意の番号で構いませんが、別アプリケーションで使用されていないことが条件となります。
【確認方法 】
コマンドプロンプトで使用されていないポート番号を確認

netstat -nao|find "9999"

上記の実行後、何もコメントが返ってこなければ利用していない。

---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----

(3)コマンドプロンプトからSSH接続
コマンドプロンプトでDBサーバーに接続します。

ssh host_wp_db

これで、ローカルPCからWebサーバー(踏み台経由)で接続できます。

コマンドプロンプトを閉じてしまうとSSH接続が切れてしまうので、コマンドプロンプトを立ち上げたままにしておいてください。

3.2. MySQL Workbench によるDB接続
MySQL Workbench の Manage Server Connection で下記の設定を追加します。

画像3

これでAWSのMySQL DBへ接続可能となります。

以上です。


この記事が気に入ったらサポートをしてみませんか?