MacでSSHポートフォワーディング管理Coccinellida & ローカルでrails console実行してサーバDBに接続


最近借りているサーバのDBに安全につなぐ方法はないものかと
物色している家庭でSSHポートフォワーディングの便利さをようやく理解しました(恥ずかしながら)。

この便利さを自作アプリケーションとかでも応用できるようにMacの起動時に自動で接続して、それを維持し続けるようにしてくれる無料アプリケーション
Coccinellida - Simple SSH Tunnel Manager for Mac OS X
(正確にはそのためのterminalコマンドを設定できる)を見付け足ので紹介です。


🚌 ターミナルコマンド

まずはターミナルからSSHのポートフォワーディングをするためのコマンドがこちら。

ssh ログイン名@経由サーバ -L 自分のポート:目的サーバ:目的サーバのポート

🍮 Coccinellidaを使った設定方法

基本的には次のことをすればいいです。

これでlocalhostのポートをサーバ内のDBのポートと同じように扱うことができます。
(SSHを使っているので安全に接続、データをやりとりできるはず)

😼 RailsコンソールからサーバDBに接続する場合

これを応用すると、ローカルでRailsコンソールするとリモートのDBに接続するといったことも可能になります。

今回はリモートの環境(remote)を作ります。config/environments/remote.rbをdevelopmentあたりをコピーして作成。
次にconfig/database.ymlに以下を追加します。

remote:
adapter: postgresql
encoding: unicode
database:
pool: 5
username: <ユーザー名>
password: <パスワード>
port: <ポートフォワーディングしているport番号>
host: localhost

たったのこれだけ、あとは普通にローカルで次のコマンドを実行するとリモートのDBにつないで好き勝手できます。
(hostがなかった場合、localのsocketを探しに行ってしまうので、必ずhostは設定してください)

RAILS_ENV=remote bundle exec rails console

🎳 参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍