VPCとは
Amazon Virtual Private Network の略
AWSクラウド上で論理的に分離された仮想プライベートネットワーク
- リージョンを跨いでの作成は不可
- IPアドレスの範囲をIPv4 CIDRブロックの形式(16~28のサイズ範囲内)で指定する
サブネット
1つのアベイラビリティーゾーン内に含まれる論理的なネットワークの分割区分
- アベイラビリティーゾーンごとに1つ以上のサブネットを追加する
- 1つのサブネットは複数のアベイラビリティーゾーンに跨って設定出来ない
- VPC内に複数設置可能(作成上限数はデフォルトで200)
1. パブリックサブネット
インターネットゲートウェイへのルーティングを含むルートテーブルがアタッチされ、インターネットとの通信が可能になったサブネット
2. プライベートサブネット
アタッチされたルートテーブルにインターネットゲートウェイへのルーティングが含まれず、インターネットとの通信が不可能なサブネット
インターネットゲートウェイ
VPCとインターネットとの間の通信を可能にするVPCコンポーネント
- VPCに対して明示的にアタッチすることでVPCとインターネットを接続する
- インターネットゲートウェイを経由してEC2がインターネットと通信するためには、ルートテーブルの設定が必要
NATゲートウェイ
プライベートサブネットからインターネットにアクセスする際、プライベートIPアドレスからパブリックIPアドレスにアドレス変換を行う場合に利用するゲートウェイ
- アベイラビリティゾーン単位で作成する
- AWSのマネージド型サービスなので、NATゲートウェイ自体のサーバー運用はAWSが代行する
- パブリックサブネットに作成し、Elastic IPを割り当て、プライベートサブネットのルートテーブルのターゲットにNATゲートウェイのIDを設定することで機能する
ルートテーブル
VPC内で発生する通信に対して、ルーティング設定を行う機能
- 適用したいサブネットに対してルートテーブルを明示的に関連付けする必要がある
- VPC作成時にデフォルトで1つ作成される
VPCエンドポイント
本来インターネットからしかアクセス出来ないAWSのサービスに対し、VPC内部からプライベートに接続することを可能にするサービス
1. インターフェイスエンドポイント
サポートされるサービスを宛先とするトラフィックのエントリポイントとして機能するサブネットのIPアドレス範囲のプライベートIPアドレスを持つElastic Network Interface
2. ゲートウェイエンドポイント
サポートされるAWSのサービス(S3, DynamoDB)を宛先とするトラフィックのルートテーブルで、ルートのターゲットとして指定するゲートウェイ
トラフィック制御
1. NACL(Network ACL)
- ステートレス:戻りトラフィックも許可設定が必要
- サブネット単位で適用
- 許可・拒否をIn/Outで指定
- デフォルトでは全ての送信元IPを許可
- 番号の順番通りに適用
2. セキュリティグループ
- ステートフル:戻りトラフィックの考慮は不要
- サーバー単位で適用
- 許可のみをIn/Outで指定
- デフォルトでは同じセキュリティグループ内通信のみ許可
- 全てのルールを適用
VPC Flow Logs
VPCのネットワークインターフェイスとの間で行き来するIPトラフィックに関する情報をキャプチャ出来るようにする機能
- フローログデータは Amazon CloudWatch Logs または Amazon S3 に発行可能
- フローログを作成すると、選択した送信先でそのデータを取得して表示出来る
(例)
fl-aaa
→ インスタンス A1 のネットワークインターフェイスで受け入れられたトラフィックをキャプチャし、フローログレコードを Amazon S3 バケットに発行するフローログ
fl-bbb
→ サブネット B のすべてのネットワークインターフェイスのトラフィックをキャプチャし、フローログレコードを Amazon CloudWatch Logs に発行するフローログ
設定上限
リソース | 数 |
---|---|
リージョンあたりのVPCの上限数 | 5 |
VPCあたりのサブネットの上限数 | 200 |
AWSアカウントあたりの1リージョン内のEIP | 5 |
ルートテーブルあたりのルート上限数 | 100 |
VPCあたりのセキュリティグループの上限数 | 500 |
セキュリティグループあたりのルールの上限数 | 50 |
設計ポイント
- 将来の拡張も見据えたアドレッシング、他ネットワークとの接続性を考慮する
- CIDRは、既存のVPC、社内のDCやオフィスと被らないアドレス帯を指定し、組織構成やシステム構成の将来像も考えて計画する
- VPC構成は、VPC全体の関係性を視野に入れてる
- 組織とシステム境界からVPCをどのように分割するかを将来構成も考慮して検討する
- 複数AZを利用して可用性の高いシステムを構築する
- サブネットは大きいサブネットを使い、パブリックサブネット・プライベートサブネットへのリソースの配置をインターネットアクセス可否から検討する
- セキュリティグループを使ってリソース間のトラフィックを適切に制御する
- 実装や運用を補助するツールを有効利用し、VPC Flow Logsを使ってモニタリング出来るようにする