BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【AWS,SSH SCP】 最終章【悲報】もしかしてTeraTermのGUI、踏み台サーバにしか対応してない...??

はじめに

こんにちは!

株式会社BFT名古屋支店・新卒の「なる」と「もな」です!

まだまだたくさん乗り越えた試練はありますが、、今回をもって最終章とさせていただきます。。

前回【第2章】ではsquidを使うことで踏み台サーバであるWEBサーバにフォワードプロキシの役割を持たせ、プライベートサブネットにあるDBサーバで無事にyumを打てるようになりました!

bftnagoya.hateblo.jp

今回APサーバのTomcatは作業用PCのローカルから入れるしyumいらんから楽勝やん!と思っていたところ、、、

いざ、Tomcatインストール!

新卒研修でシステムを構築した際、クライアントPCのローカルにあるTomcatのファイルを、APサーバに直接SSH接続してファイル転送を行いました。

そのため研修と同じように、【第1章】で説明したWEBサーバを踏み台サーバにしてAPサーバにつなげ、TeraTermからSSH SCPでファイル転送をしようとポチポチしてました。

まず、クライアントPCでWEBサーバにSSH接続。
次にWEBサーバからAPサーバにSSH接続し、 「ファイル」-「SSH SCP」、ファイル選択して、ポチポチっと...

すると、

もな「あれ、Tomcat、APサーバにいなくね?」
なる「あれ、Tomcat、WEBサーバに転送されてね、、??」

コンソール画面上はAPサーバにいるものの、TeraTermGUI操作するとWEBサーバにファイル転送されていることがわかりました。

あれ、よくよく考えたら普通のことやん!

私たちがクライアントPCでSSH接続しているのはWEBサーバ。
あくまでWEBサーバがAPサーバにSSH接続してるんやった!

なら、WEBサーバにファイル転送させるしかないじゃない...!

ということはGUI操作ではなく、コマンドラインでファイル転送させるしかない!

解決法

私たちは以下のコマンドにたどり着きました!

$ sudo scp -i /home/ec2-user/.ssh/【(秘密鍵の名称).pem】【ファイルの存在するディレクトリ】/【ファイル名】 ec2-user@XXX.XXX.XXX:/【コピー先のディレクトリ名】

※コピー先のディレクトリのパーミッションを気にしないとエラーが出力されます。(私たちは一時的にディレクトリのパーミッションを777に変更して、ファイル転送後すぐに戻しました)

これは、一旦WEBサーバにSSH SCPでローカルからファイル転送し、WEBサーバからAPサーバにファイルをコピーするというやり方です。

第2章でも苦労したように、インターネット接続が必要な作業をプライベートサブネットに属するサーバーで行うのはとても面倒ですね、、、

では、全体の手順を見ていきたいと思います。
1.WEBサーバにTeraTermSSH接続
2.「ファイル」-「SSH SCP」から、ローカルにあるTomcatのファイルをWEBサーバに転送
3.WEBサーバからAPサーバに以下のコマンドを使って、ファイルをコピーする

$ sudo scp -i /home/ec2-user/.ssh/【(秘密鍵の名称).pem】【ファイルの存在するディレクトリ】/【ファイル名】 ec2-user@XXX.XXX.XXX:/【コピー先のディレクトリ名】

送信先ディレクトリのパーミッションに注意

以上でWEBサーバを介して、プライベートサブネットに属するサーバにファイル転送ができました~!!

終わりに

苦労したことはたくさんあったけど、立ち止まった分調べて、知らなかったことも学べて、AWSの知識がとっっても深まったぞ~!AWSさいこう~!!

私たちのようなひよっこエンジニアの拙い文章をここまで読んでいただきありがとうございました><
これからも今回の経験を活かして、システムエンジニア頑張ります!

....【次回!!?】次はAzure上に再現してみます!!!!