VPC(Virtual Private Cloud)
ネットワーク環境を提供しているサービス
・AWS上に、利用者ごとのプライベートなネットワーク空間を提供
・外部ネットワークと接続も可能
VPCを構築するステップ
1.VPCの作成
・リージョンを選択
・ネットワーク空間の範囲(CIDRブロック範囲)を指定する
例) 10.0.0.0/16
2.サブネットの作成
・サブネット = VPCを分割したモノ
・サブネットごとにサーバーの役割/機能に応じて作ることが望ましい
・1つのAZを指定する(複数のAZにまたがって作成できないため)
・「故障に備えた設計で障害を回避」を実現するため、サーバーを各AZに冗長的に配置するのが一般的
3.ゲートウェイの作成
ネットワーク間の通信を中継する仕組みの総称
IGW(インターネットゲートウェイ)
インターネットとの出入り口になるゲートウェイ
VGW(バーチャルプライベートゲートウェイ)
オンプレミスとVPNや専用線で通信するためのゲートウェイ
4. ルートテーブルの設定
ルートテーブルによって、パブリックサブネットかプライベートサブネットかが決まる
ルートテーブル内のlocal設定は変更・削除不可。
→ VPC内のサブネットであればサブネット間の通信は可能
パブリックサブネット
インターネットとのアクセスを許可するサブネット
ルートテーブルにデフォルトゲートウェイ(送信先:0.0.0.0/0)が適用されている
プライベートサブネット
インターネットとのアクセスを許可しないサブネット
ルートテーブルにデフォルトゲートウェイ(送信先:0.0.0.0/0)が適用されていない
5. NAT(Network Address Translation)インスタンスの作成
プライベートサブネット内からインターネットにアクセスするための設定
例) プライベートサブネット内に作成したDBのバージョンアップを行いたい場合
NATインスタンスの仕組み
・実態はEC2インスタンス
- プライベートサブネット内のEC2インスタンスからトラフィックを受け付ける
- 受け付けたEC2インスタンスのプライベートIPアドレスを変換
- NATインスタンスがインターネットへアクセスする
送信元/送信先チェック
・EC2インスタンスは、デフォルトで流れてきたトラフィックがを自身のIPアドレス宛かチェックして、宛先が自身のIPアドレスでなければトラフィックを破棄する。
・NATインスタンスとして利用するにはこの機能をOFFにする必要がある
トラフィック
一定時間内にネットワーク上で転送されるデータ量のこと
AWSのグローバルIPアドレスの種類
Public IP
動的なグローバルIPアドレス
EC2インスタンスが起動した際にランダムに割り当てられる
Elastic IP
固定のグローバルIPアドレス
アカウントに割り当てられる
VPCが提供するファイアウォール機能
セキュリティグループとNACLがある
セキュリティグループ
・インスタンス単位で適用
→ 各インスタンスには少なくとも1つのセキュリティグループを適用する必要がある
・デフォルトルール
インバウンド:全て拒否 → どこからのアクセスも受け付けてない状態
アウトバウンド:全て許可
・ステートフル
→戻りのトラフィックについて追加で設定が 不要
ネットワークACL(NACL)
・サブネット単位で適用
・デフォルトルール
インバウンド:全て許可
アウトバウンド:全て許可
・ステートレス
→戻りのトラフィックについてインバウンド/アウトバウンドの設定で許可しておく必要がある
用語
インバウンド
アクセス制御
受信
送信先のIPアドレスとアクセスを受け付けるポート番号のアクセスを許可
アウトバウンド
アクセス制御
送信
送信先のIPアドレスとアクセス先のポート番号へのアクセスを許可
ステートレス/ステートフル
こちらの記事がイメージつきやすかったので参照
ステートレスとは
VPCピア接続
2つのVPCを接続する機能。
VPC間でVPCピア接続を確立させると、双方のVPCに PCX (ゲートウェイに相当するもの)が作成される
VPCピア接続の制限
- 接続するVPC同士が、同じリージョンの存在すること
- プライベートネットワークアドレス空間が重複していないこと
- 1:1の接続であること
A <-> B <-> C
の場合、AからCへの接続はできない。
したい場合あ、A <-> Cへピア接続させる必要がある