AWS勉強 -プライベートサブネットにサーバーを構築する-


プライベートサブネットにサーバーを構築する

プライベートサブネットができたので次にサーバーを構築していく!

サーバーを構築する

からの,

ステップ3までは上記参考に🙇‍♂️

からの,

からの,

からの,

正常に作られたのか確認する,

pingコマンドで疎通確認できるようにする

このDBサーバーがWebサーバーからアクセスできるかどうか確認してみる.

サーバー間での疎通を確認するときによく用いるのが「pingコマンド」だ.

pingコマンドを実行するとネットワーク疎通を確認したいホストに対して「ICMPエコー要求」というパケットを送信する.
それを受け取ったホストは「ICMPエコー応答」というパケットを返信する.
このコマンドでは「ICMPエコー要求」と「ICMPエコー応答」のやりとりから疎通確認や相手に届くまでの時間を計測したりする.

ICMPが通るように構成する

手順1 -インバウンドの設定を始める-

からの,

からの,

疎通を確認する

ICMPプロトコルを通るように構成したのでpingコマンドを使って疎通確認できる.
実際にWebサーバーからDBサーバーへの疎通確認をしてみる.

SSHでログインする

$ ssh -i ~/Downloads/my-key.pem [email protected]

DBサーバーのIPに対してpingを実行してみる

$ ping 10.0.2.10

上記みたいな感じになる.

ローカル環境からWebサーバーに疎通できるようにする

さらにpingコマンドを使って疎通確認を続ける.

接続してみる

ローカル環境からこのWebサーバーに対してpingコマンドを実行してみる.

$ ping ec2-18-179-47-97.ap-northeast-1.compute.amazonaws.com

しかし,上記のようにTimeOutしてしまう.
これはWebサーバーと疎通不可能なわけではなく,Webサーバーに適用されているセキュリティグループにおいてICMPを許可していないからだ.

ICMPを許可する設定を加える

そうすると疎通確認することができる.

踏み台サーバーを経由してSSHで接続する

ここまでで作成したDBサーバーにSSHでログインしてMySQLをインストールする.
そこで疑問なのが,DBサーバーはインターネットと接続されていないのにどうやってSSH接続するのかだ.
その解決策の1つが「踏み台サーバー」だ.
ここまでで,WebサーバーにはSSHで接続でき,WebサーバーからDBサーバーに疎通確認が取れている.
そこで,
①WebサーバーにSSHでアクセス,②WebサーバーからDBサーバーにSSHでアクセスというようにWebサーバーを踏み台とすればローカル環境からDBサーバーへとアクセスできる.

秘密鍵をアップロードする

インスタンスにSSHでアクセスするには「秘密鍵」をWebサーバーに置く必要がある.
サーバーにファイルを転送するには「SCP(Secure Copy)」というプロトコルを使う.

ファイルを転送してみる

Macで行う!
ターミナルで以下を実行.

$ scp -i ~/Downloads/my-key.pem ~/Downloads/my-key.pem [email protected]:~/

WebサーバーからSSHで接続する

接続しましょう!(雑

鍵ファイルのパーミッションを変更する

下記コマンドを入力

$ chmod 400 my-key.pem

こんな感じ.

Webサーバーを踏み台にしてDBサーバーにSSH接続

Webサーバー上から下記コマンドを入力

$ ssh -i my-key.pem [email protected]

できた❣️

感想

会社でAWSのDBサーバーにアクセスするとき,
二回SSHログインしていた意味がわかった.
こんな構成になっていたんだ...
もっと勉強するぞ.