AWSを始める 〜 7.プライベートサブネットにDBサーバ用のインスタンスを構築する
◎これまでの学習
「AWSを始める 〜 1.仮想サーバの立ち上げ」
「AWSを始める 〜 2.SSHを使用した仮想サーバへの接続」
「AWSを始める 〜 3.仮想ネットワークの作成」
「AWSを始める 〜 4.設定したVPCにインスタンスを作成する」
「AWSを始める 〜 5.新しく作成したインスタンスにSSHで接続する(※プライベートキーを無くした)」
「AWSを始める 〜 6.ミドルウェアのインストール 〜 Apache Web サーバ」
◎今回の内容
1.プライベートサブネットの構築
2.DBサーバ用のインスタンスを構築
1.プライベートサブネットの構築
今回の対象は次図の色付けした部分。
そういいつつ、実はプライベートサブネットは既に構築済みである(「AWSを始める 〜 3.仮想ネットワークの作成」)。
少しだけ復習しておく。
パブリックサブネットとプライベートサブネットの違いは何かと言うと、ルートテーブルの設定の違い。
パブリックサブネットの場合だと、destination「0.0.0.0/0」に対するターゲットをインターネットゲートウェイにしているが、プライベートサブネットの場合はそれがない。つまり自身のネットワークに対するルーティングの設定を行うということだ。
それでは、プライベートサブネットにDBマシン用のインスタンスを作成する。
2.DBサーバ用のインスタンスを構築
EC2→Launch Instanceから「AMI」を選択する(「AWSを始める 〜 4.設定したVPCにインスタンスを作成する」と同じ)。
Subnetには、作成したプライベートサブネットを指定する。インターネットからアクセスさせないため「Auto-assign Public IP」はDisableに設定する。
これ以降は、「AWSを始める 〜 4.設定したVPCにインスタンスを作成する」と同じ。
EC2の管理画面から起動を確認する。たしかにPublic IPはふられていない。
次に、パブリックサブネットに構築したWEBサーバ用インスタンスから、DBサーバインスタンスへの疎通確認を行う。
セキュリティグループでICMPを許可してから、pingをうつと、疎通できた。
[ec2-user@ip-172-31-1-20 ~]$ ping 172.31.2.171 PING 172.31.2.171 (172.31.2.171) 56(84) bytes of data. 64 bytes from 172.31.2.171: icmp_seq=1 ttl=64 time=0.455 ms 64 bytes from 172.31.2.171: icmp_seq=2 ttl=64 time=0.488 ms 64 bytes from 172.31.2.171: icmp_seq=3 ttl=64 time=0.512 ms
次に、WEBサーバからDBサーバへSSHで接続するために、プライベートキーをWEBサーバにコピーする。
TeratermでWEBサーバにログインして、Teratermのメニューから「SSH SCP」を選択する。
秘密鍵ファイルのパーミッションを自分しか読めないように変更する。
[ec2-user@ip-172-31-1-20 ~]$ ls -l total 4 -rw-r--r-- 1 ec2-user ec2-user 1692 Sep 26 04:57 my-db-key.pem [ec2-user@ip-172-31-1-20 ~]$ chmod 400 my-db-key.pem [ec2-user@ip-172-31-1-20 ~]$ ls -l total 4 -r-------- 1 ec2-user ec2-user 1692 Sep 26 04:57 my-db-key.pem
WEBサーバからsshを使用してDBサーバにログインする。
[ec2-user@ip-172-31-1-20 ~]$ ssh -i my-db-key.pem ec2-user@172.31.2.171 __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2014.09-release-notes/ [ec2-user@ip-172-31-2-171 ~]$ hostname ip-172-31-2-171
これで完了。