LoginSignup
1
3

More than 5 years have passed since last update.

Elastic Beanstalkで作ったRDSにSequel Proで接続する

Last updated at Posted at 2018-07-29

概要

  • 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 ec2-user@xx.xxx.xxx.xxx
  • 上記コマンドのオプションについては下記の通り(参考)。
オプション 説明
-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 ec2-user@xx.xxx.xxx.xxx
 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

Sequel_Pro.png

  • 「接続」ボタンをクリックすると、無事に接続できるはず。
  • ちなみにコマンドラインからMySQLにリモートログインしたい場合は下記コマンドを使う。
$ mysql -u xxxx -h 127.0.0.1 -P 3307 -p
Enter password: xxxxx

補足

  • SSH鍵は暗号鍵ではなくpemファイルでも良いらしい
  • EC2のパブリックIPアドレスはパブリックDNSでも良いらしい
  • どうでもいいけど beanstalk はビーンスターク(bean-stalk)と読むらしい

参考

1
3
3

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
1
3