BFT名古屋 TECH BLOG

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

【squid, フォワードプロキシ】 第2章【悲報】DBサーバ、インターネットにつながってないからyumコマンド使えないじゃん、、

はじめに

こんにちは!
株式会社BFT名古屋支店・新卒の「なる」と「もな」です。

前回の「第1章【悲報】プライベートサブネットのインスタンスってクライアントPCからSSH接続できなくない...??」では、プライベートサブネットに属しておりパブリックIPアドレスを持たないインスタンスに、どのようにしてクライアントPCからSSH接続するかについてお話ししました。

そして、踏み台サーバを利用することでプライベートサブネットに属しているインスタンスSSH接続できることを発見しました。

bftnagoya.hateblo.jp

DBサーバ潜入、いざMariaDBインストール!

問題が解決し、無事踏み台サーバからDBサーバにたどり着いた私たちは、SSH接続できた安心から完全に油断していました。

「これで新卒研修で行った通りDBサーバにSSH接続して、yumコマンドでMariaDB入れて...」

...通らない。

yumコマンドが通りません。
どうやらDBサーバはyumコマンドを実行するとインターネットからMariaDBをインストールしようとしてしまうようです。

君はインターネットに接続できていないのよ、、

そこで私たちはいくつかの方法を考えました。

・DBサーバ内で何とかしてyumコマンドを実行する→どうやって?
・別サーバでMariaDBをインストール、後にファイル転送→関連パッケージの扱いに難あり、、
・ローカルでMariaDBをダウンロードしSSH SCPで転送→Amazon Linuxサポートないかも?
・NATゲートウェイをプライベートサブネットに配置→コストがかかる

んー、どれも難しそう...一人で考えていても埒が明かないので、こんな時は先輩に相談!

見つけた!解決策

どうやらインターネットに接続しているWEBサーバを介してインターネットに接続し、インストールしてくるんだよとDBサーバに教えてあげないといけないようです。

そんな時に使えるのがこのソフトウェア!

squid」!!

今回はこれを使って、WEBサーバにフォワードプロキシさせていきます。

手順は以下の通りです。
1.WEBサーバにsquidをインストール

$ sudo yum install squid

2.WEBサーバのセキュリティグループのインバウンドルールを編集し、3128番ポート(カスタムTCP)をDBサーバ用に開放
3.DBサーバにSSH接続し、yumの設定ファイル(/etc/yum.conf)に下記のプロキシの設定を追記

Proxy=http://(webサーバのプライベートIPアドレス):3128

※同じVPC内でEC2がそれぞれやり取りする際にはプライベートIPアドレスの方を使うので、プライベートIPアドレスの方を記載してあげましょう

以上でフォワードプロキシの設定は終了です。
これでプライベートサブネットのインスタンスでもyumコマンドが実行できるようになりました!
インターネットに接続しているWEBサーバを介す、ということが肝だったんですねえ、、

これで無事、DBサーバはyumコマンドを使ってMariaDBをインストールすることができました!
よかったよかった。

今回はかなり苦戦したけど、APサーバのTomcatは作業用PCのローカルから入れるし、SSH SCPでファイル転送するだけだから余裕よね!

...次回「最終章【悲報】もしかしてTeraTermGUI、踏み台サーバにしか対応してない...?」

bftnagoya.hateblo.jp