![見出し画像](https://assets.st-note.com/production/uploads/images/22258426/rectangle_large_type_2_6f6d61439a94450442528445ef5194dc.jpg?width=1200)
【ネットワーク】MySQL Workbench から踏み台サーバーを経由して AWS DBに接続する方法(SSH ポートフォワード)
AWSなどクラウドにDBを構築している場合、DB開発をローカルPCから行うためにMySQL Workbenchで接続させたい場合があります。
今回、その方法について説明します。
1. 目的
ローカルPCの『MySQL Workbench』から『AWSのクラウドDB』に接続させることで、DB開発環境を整備します。
2. 前提
下記のような、踏み台サーバーであるWebサーバーを経由してDBに接続するシステム構成とします。
この構成に対して、ローカルPCから『DBサーバーのMySQL』へMySQL Workbenchを用いて接続します。
3. 手順
ローカルPCから踏み台サーバーを経由してDBに接続するには、ターミナル(コマンドプロンプト)からSSHで穴(ポートフォワード)を構築し、その後にMySQL Workbenchから接続します。
3.1. ポートフォワードによるDBサーバーへの接続
(1) .sshフォルダに①秘密鍵と②configファイルを保存
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 で下記の設定を追加します。
これでAWSのMySQL DBへ接続可能となります。
以上です。