IntelliJ IDEA には deployment というファイルをリモートに送信することができる機能があります。踏み台サーバ経由でデプロイするときにひと手間必要だったので備忘録。
目次
デプロイしたいサーバーに ssh でトンネリング
ssh の L オプションを使ってトンネルを掘ります。踏み台サーバーの Global IP が XXX.XXX.XXX.XXX
で、デプロイしたいサーバの Private IP が 10.0.0.1
のとき、ローカルのポート 122
にトンネルを掘るには以下のようなコマンドを使います。
ssh ec2-user@XXX.XXX.XXX.XXX -i ~/.ssh/id_rsa -L 122:10.0.0.1:22
簡単に説明すると
ssh [踏み台サーバーへ接続するための情報] -L [トンネリング用にローカルで待ち受けるポート]:[デプロイしたいサーバのIP]:[デプロイしたいサーバのポート番号]
SSH のプロンプトが開きっぱなしになるのが嫌な場合は、f と N オプションでプロセスをバックグラウンドにすることもできます。
ssh ec2-user@XXX.XXX.XXX.XXX -i ~/.ssh/id_rsa -L 122:10.0.0.1:22 -f -N
使い終わったら ps
コマンドでプロセスを探して kill
しましょう。
IntelliJ IDEA の deployment の設定
あとはこんな感じでローカルのポート 122
に対して deployment の設定をしてあげると、対象のサーバーにつながります。