January 09, 2019
理解を深めるための備忘録です。 こちらの講座をもとに作業しました。詳しい解説はそちらを閲覧してください。(有料です)
https://www.udemy.com/aws-14days/
前回の続きです。
プライベートサブネットをつくる
プライベートサブネット内にEC2をつくる
プライベートサブネットからVPCの外に出るためパブリックサブネットにNAT Gatewayをつくる
「サブネットの作成」からプライベートサブネットを作成する
入力画面
VPCは前回作成したものを選択して、アベイラビリティゾーン1aを選択。保存後、続いてアベイラビリティゾーン1cに作成する。
入力画面
作成されたもの確認
次に、上で自動でルートテーブルが作られたが、ルートテーブルを新規に作成してプライベートサブネットに利用させる
作成されたルートテーブル確認。比較としてpublic用のルーティング設定とprivate用のルーティング設定を下記に。
パブリック用ルーティング
プライベート用ルーティング
プライベートサブネットに今作ったルートテーブルを適用させる
サブネット画面のmy-private-subnet-1aを選択して、「ルートテーブルの関連付けの編集」を押下、
ルートテーブルIDに、上で作成したプライベート用ルートテーブルを選択、保存
設定されたことを確認
my-private-subnet-1cも同様にプライベート用ルートテーブルを設定させる。
Amazon Linux 2 AMI (HVM), SSD Volume Type を選択
お好きなインスタンスタイプを選択
VPCは前回作成したVPC ネットワークはprivateサブネットの1a パプリックIP自動割当は、このサーバーはグローバルにさらす必要がないので、無効化を選択。他はそのままで次に。
タグはDB-1aと入力
セキュリティーグループは新規に作成。 前回作成したセキュリティーグループ「web-sg」が設定されているインスタンスのみ(今回はsshとmysqlの)通信を許可する、という振る舞いをしたいので、ソースの入力欄でweb-sgを選択。
他は特に変更せず作成。作成されているか確認
web-1aのサーバーを踏み台にしてdb-1aのサーバーにsshログインできるか確認
db-1aにログインするためにはweb-1aに秘密鍵をコピー(アップロード)する必要がある
現時点では、db-1a内からインターネットの外にいくことができないこと確認
$ ping yahoo.co.jp
~~
^C
--- yahoo.co.jp ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3054ms
パブリックサブネット1aのサブネットIDをコピーしておく
NAT Gatewayの作成
入力画面
サブネットにさきほどコピーしておいたサブネットIDを入力(貼り付け)
NAT Gatewayが外に出ていくためのプロキシーサーバーとして振る舞ってくれる。グローバルIPが必要とのことなので、「新しいEIPの作成」ボタンを押下。
作成後、「ルートテーブルの編集」ボタン押下。
5.png
プライベートサブネットでNAT Gatewayを利用していくので、private-subnetを選択、ルート(Routes)タブから「Edit routes」ボタン押下。
入力画面
VPC内の通信はそのまま許可します、他はNATゲートウェイを通ります、という設定をする
パブリックサブネットとプライベートサブネットの比較 パブリックサブネットはインターネットゲートウェイを利用していて、プライベートサブネットはNATゲートウェイという設定になっている
外に接続できることを確認。
一応NATゲートウェイのスクショもとっておく
プライベートサブネット内で外へ出ていく作業も終えたらNATゲートウェイを削除してしまう。(コスト削減のため)
NATゲートウェイ削除したら、プライベートサブネットに適用しているルートテーブルのルーティング設定も修正する。
プライベートサブネットのルートテーブルを選択し、「Edit Routes」ボタンを押下
NATゲートウェイの振り分けレコードを削除して保存
NATゲートウェイ作成時に、Elastic IPも作成しましたので削除しました。
以上になります。
Written by Ta Toshio who lives and works in Saitama, Japan .You should follow him on Twitter