第2回目はネットワーク編ということで、主にネットワーク部分を作成していきます。
第1回目は以下になります。
https://iret.media/64051
具体的には以下の設定になります。
- VPC
- Publicサブネット
- Privateサブネット
- InternetGateway
- NAT Gateway
- ルートテーブル
構成図
VPC作成
AWSマネジメントコンソールからVPCへ移動します。
次に「VPCのみ」を選択しvpcの名前を入力します。例では「vpc-web-system」としています。
CIDRは構成図のとうりに「10.150.0.0/16」としました。
入力したら「VPCを作成」をクリックします。
次にサブネットを作成します。VPC画面の左側メニューよりサブネットを選択します。
Publicサブネット作成
次にサブネットの設定をします。
先ほど作成したVPCを選択します。サブネットの名前を入力します。例では「public-subnet-web-system」としています。
CIDRは構成図のとうりに「10.150.10.0/24」としました。
Privateサブネット作成
同じ要領でPrivateサブネットを作成します。
先ほど作成したVPCを選択します。サブネットの名前を入力します。例では「private-subnet-web-system」としています。
CIDRは構成図のとうりに「10.150.20.0/24」としました。
インターネットゲートウェイ作成
次にインターネットゲートウェイを作成します。
インターネットゲートウェイを作成することによりVPCとインターネットで通信できるようになります。
AWSマネジメントコンソールからVPCし、右側のメニューから「インターネットゲートウェイ」をクリックします。
インターネットゲートウェイの名前を入力します。例では「web-system-igw」としています。
名前を入力したら「インターネットゲートウェイの作成」をクリックします。
ここまではまだインターネットゲートウェイのを作成しただけでVPCとインターネットで通信することができません。
VPCにインターネットゲートウェイをアタッチすることでインターネット通信可能になります。
作成したVPCを選択して「インターネットゲートウェイ」のアタッチをクリックします。
状態が「Attached」になっていることを確認します。
これでVPCからインターネット接続できるようになりました。
NAT Gateway作成
次にNAT Gatewayを作成します。
NAT GatewayはVPC内部からインターネット向けへの通信は許可するがインターネット側からVPC内への通信を許可しない環境が必要な場合に作成します。
今回の構成ですとWEBサーバでPApache用のパッケージを取得するためにインターネット通信が必要だがインターネット側から直接WEBサーバへの通信は必要ないためNAT Gatewayを作成します。
AWSマネジメントコンソールからVPCの画面へ遷移して、右側のメニューから「NATゲートウェイ」をクリックします。
NAT Gatewayの名前を入力します。例では「web-system-nat」とします。
サブネットは今回作成したPublicサブネットを選択します。
その次に「Elastic IPを割り当て」をクリックします。インターネットと通信するために必要なElastic IPを取得しNAT Gatewayに割り当ててくれます。
Elastic IPアドレスが割り当てられたことを確認し、「NATゲートウェイを作成」をクリックします。
ルートテーブル作成
次にルートテーブルを作成します。先ほどPublicサブネットとPrivateサブネットを作成しました。
作成しましたが、CIDRを設定だけでそれぞれの役割を持ったサブネットにはなっていません。
それぞれの役割とは今回の構成ですと以下になります。
Publicサブネット
- Publicサブネットからインターネット、インターネットからPublicサブネットへの通信が可能
- VPC内の通信可能
Privateサブネット
- Privateサブネットからインターネットへの通信可能。インターネットからPrivateサブネットへの通信不可
- VPC内の通信可能
サブネットに上記の役割を持たせるためにルートテーブルが必要になります。
ルートテーブルを作成して、サブネットに「関連付け」をしていきます。
AWSマネジメントコンソールからVPCの画面へ遷移して、左側のメニューから「ルートテーブル」をクリックします。
まずPublicサブネット用のルートテーブルを作成します。
ルートテーブルの名前を入力して、VPCは作成したVPCを選択します。例ではpublic-subnet-rt-web-systemとします。
入力したら「ルートテーブルを作成」をクリックします。
ルートテーブルが作成できたら、次に「ルートの編集」をクリックします。
最初から「10.150.0.0/16」が入っているので、インターネット通信するための設定を入れていきます。
「ルート追加」をクリックして、送信先はインターネット通信用なので「0.0.0.0/0」としてターゲットを先ほど作成したインターネットゲートウェイを選びます。
最後に「変更を保存」をクリックします。
ルートが追加できましたので、次に作成したルートテーブルをサブネットに関連付けます。AWSだと「アタッチ」という言葉がよく出ますが、ここではサブネットの関連付けと呼びます。
「サブネットの関連付け」のタブを選択します。
次にPublicサブネットを選択します。
「関連付けを保存」をクリックします。
明示的なサブネット関連付けに選択したPublicサブネットが表示されていればOKです。
続いてPrivateサブネット用のルートテーブルを作成します。
ルートテーブルの名前を入力して、VPCは作成したVPCを選択します。例ではprivate-subnet-rt-web-systemとします。
入力したら「ルートテーブルを作成」をクリックします。
ルートテーブルが作成できたら、次に「ルートの編集」をクリックします。
最初から「10.150.0.0/16」が入っているので、Privateサブネットからインターネット通信するための設定を入れていきます。今回はPrivateサブネットからインターネット通信は許可するがインターネット側からPrivateサブネットに通信を許可しないためNATゲートウェイを選択します。
「ルート追加」をクリックして、送信先は「0.0.0.0/0」としてターゲットを先ほど作成したNATゲートウェイ選びます。
最後に「変更を保存」をクリックします。
ルートが追加できましたので、次に作成したルートテーブルをサブネットに関連付けます。
「サブネットの関連付け」のタブを選択します。
次にPrivateサブネットを選択します。
「関連付けを保存」をクリックします。
明示的なサブネット関連付けに選択したPrivateサブネットが表示されていればOKです。
長くなりましたが以上でネットワーク編は終了です。