AWS認定試験のため、まずは基本的な単語とそれらの関係性をまとめる。
VPCとは
EC2等のサービスを利用する上で必須となるプライベートなネットワーク環境
用語
VPC
AWSのネットワーク環境のこと
リージョン内に作成され、リージョンをまたいで作成することはできない
インターネットゲートウェイ(IGW)
VPCにアタッチされる、外部ネットワークとの出入り口
VPNや専用線で通信を行いたい場合はVGWをアタッチする
サブネット
VPC内を区切ったネットワーク環境のこと
サブネット内にEC2等のインスタンスを配置してシステムを構築する
AZ内に作成され、AZをまたいで作成することはできない
サブネット内のインスタンスはIGWにリクエストを送信することで外部ネットワークと通信ができる
IGWへのルーティングがあるルートテーブルを関連付けたサブネット(パブリックサブネット)と
IGWへのルーティングがないルートテーブルを関連付けたサブネット(プライベートサブネット)に大別される
メインルートテーブル
VPCに関連付けられ、通信のルーティングを行う
VPC内のサブネットすべてに暗示的に関連付けられる
カスタムルートテーブル
サブネットに関連付けられ、通信のルーティングを行う
カスタムルートテーブルが関連付けられていないサブネットは
VPCのメインルートテーブルが暗示的に関連付けられる
NATゲートウェイ
パブリックサブネットにアタッチされ、プライベートサブネットのインスタンスは
NATゲートウェイにリクエストを送信することで外部ネットワークと通信ができる
AZに依存しているサブネットにアタッチされるため、AZ障害時に影響を受ける
ネットワークACL
サブネットごとのファイアウォール
デフォルトではすべての通信が許可されている
ステートレス(受信と送信が一括りではない)なので通信を許可/拒否したい場合、
インバウンド、アウトバウンドそれぞれ許可/拒否を設定する必要がある
セキュリティグループ
インスタンスごとのファイアウォール
ステートフル(受信と送信が一括り)なので通信を許可したい場合、
受信したい場合はインバウンド、送信したい場合はアウトバウンドで許可するだけで戻りの通信も通る
インバウンド、アウトバウンドにはIPアドレスだけでなく、他のセキュリティグループIDも指定できる
その場合、そのセキュリティグループが割り当てられているインスタンスからの通信を許可できる
ピアリング接続
VPC ピアリング接続リクエスト(PCX)にルーティングすることで他VPCとの通信ができる
同一リージョン内だけでなく、他リージョンにあるVPCとのピアリングもできる
構成
リージョン配下に以下のように構成される。(例)
リージョン
┠VPC
┃ ├VPC① ← メインルートテーブル①、インターネットゲートウェイ①
┃ │ ↑サブネットⅠ
┃ │ ↑サブネットⅡ
┃ ├VPC② ← メインルートテーブル②、インターネットゲートウェイ②
┃ │ ↑サブネットⅢ
┃ ├VPC③ ← メインルートテーブル③
┃ │ ↑サブネットⅣ
┃ └...
┠サブネット
┃ ├サブネットⅠ ← ネットワークACLⅠ、カスタムルートテーブルⅠ
┃ │ ↑インスタンスA
┃ ├サブネットⅡ ← ネットワークACLⅡ
┃ │ ↑インスタンスB
┃ │ ↑インスタンスC
┃ ├サブネットⅢ ← ネットワークACLⅢ、カスタムルートテーブルⅢ
┃ │ ↑インスタンスD
┃ ├サブネットⅣ ← ネットワークACLⅣ、カスタムルートテーブルⅣ
┃ │ ↑インスタンスE
┃ └...
┠ルートテーブル
┃ ├メインルートテーブル①
┃ ├メインルートテーブル②
┃ ├メインルートテーブル③
┃ ├カスタムルートテーブルⅠ
┃ ├カスタムルートテーブルⅢ
┃ ├カスタムルートテーブルⅣ
┃ └...
┠インターネットゲートウェイ
┃ ├インターネットゲートウェイ①
┃ ├インターネットゲートウェイ②
┃ └...
┠ネットワークACL
┃ ├ネットワークACLⅠ
┃ ├ネットワークACLⅡ
┃ ├ネットワークACLⅢ
┃ ├ネットワークACLⅣ
┃ └...
┠セキュリティグループ
┃ ├セキュリティグループx
┃ ├セキュリティグループy
┃ ├セキュリティグループz
┃ └...
┗...
EC2
┠インスタンス
┃ ├インスタンスA ← セキュリティグループx
┃ ├インスタンスB ← セキュリティグループy
┃ ├インスタンスC ← セキュリティグループz
┃ ├インスタンスD ← セキュリティグループx
┃ ├インスタンスE ← セキュリティグループx
┃ └...
┗...
上記の構成の場合
- VPC③内のインスタンスは直接インターネットに接続できない
- サブネットⅠのルーティングはカスタムルートテーブルⅠに従う
- サブネットⅡのルーティングはメインルートテーブル①に従う
- インスタンスAの通信許可先はセキュリティグループxとネットワークACLⅠに従う
- セキュリティグループyでセキュリティグループxからのインバウンドを許可した場合、
インスタンスBはインスタンスA、C、Eからの通信を受信できる
※ネットワークACLⅡはインスタンスA、C、Eとの通信を許可していることが前提
各要素の役割が分かったので、次はどういった問題を解決することができるか確認していきたい