Elastic Beanstalkで作ったRDSにSequel Proで接続する
概要
- Elastic Beanstalk経由で作ったRDSにSequel Proで接続する
- EC2を踏み台にSSHポートフォワーディングを利用してアクセスする
前提
- Elastic Beanstalkでアプリケーション作成時にEC2リモートログイン用のSSH鍵を設定している
- Elastic Beanstalkの設定画面からRDSインスタンスを起動している
手順
必要情報を洗い出す
必要な項目 | 今回の場合 |
---|---|
SSH鍵の場所 | ~/.ssh/beanstalk_key |
EC2のパブリックIPアドレス | xx.xxx.xxx.xxx |
RDSのエンドポイント | xxxxxxxxxxxxxxx.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com:3306 |
SSHコマンドを組み立てる
- ssh -f -N -L 3307:
<RDSエンドポイント>
-i<SSH鍵の場所>
ec2-user@<EC2のパブリックIPアドレス>
- 今回の場合は下記コマンドになる
$ ssh -f -N -L 3307:xxxxxxxxxxxxxxx.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com:3306 -i ~/.ssh/beanstalk_key [email protected]
- 上記コマンドのオプションについては下記の通り(参考)。
オプション | 説明 |
---|---|
-f | SSHをバックグラウンドで実行する |
-N | リモートコマンドを実行しない |
-L | バインドするホスト、ポートとリモートホストとポートを指定する |
- なお上記コマンドを実行すると、バックグラウンドで実行されるため結果が何も表示されず不安になるが、プロセスを確認すると確かに起動していることが確認できる。
$ ps ax | grep ssh
1001 ?? S 0:00.05 /usr/bin/ssh-agent -l
1117 ?? Ss 0:00.03 ssh -f -N -L 3307:xxxxxxxxxxxxxxx.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com:3306 -i ~/.ssh/beanstalk_key [email protected]
1238 s001 S+ 0:00.00 grep ssh
- 停止したい場合はプロセスをkillする
$ kill -9 1117 # 上記コマンドで確認したプロセス番号
Sequel Proでリモートログインする
- バックグラウンドでSSHポートフォワーディングが実行されている状態で、Sequel Proで下記情報を入力する
ホスト: 127.0.0.1
ユーザ名: xxxx (自身で設定したユーザー名。Elastic Beanstalkの設定画面で確認できる。)
パスワード: xxxx (自身で設定したパスワード)
データベース名: ebdb (Elastic Beanstalk経由で作成した場合のデフォルト値)
ポート: 3307
- 「接続」ボタンをクリックすると、無事に接続できるはず。
- ちなみにコマンドラインからMySQLにリモートログインしたい場合は下記コマンドを使う。
$ mysql -u xxxx -h 127.0.0.1 -P 3307 -p
Enter password: xxxxx
補足
- SSH鍵は暗号鍵ではなくpemファイルでも良いらしい
- EC2のパブリックIPアドレスはパブリックDNSでも良いらしい
- どうでもいいけど
beanstalk
はビーンスターク(bean-stalk)と読むらしい
参考
Author And Source
この問題について(Elastic Beanstalkで作ったRDSにSequel Proで接続する), 我々は、より多くの情報をここで見つけました https://qiita.com/takano-h/items/41300facca63b46b959b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .