VPC が苦手だったので少し勉強してみました。
VPC
AWSの VPC(Virtual Private Cloud)は、AWS上に構築できる仮想ネットワーク環境のことです。
基本構成
VPC には、以下の主要なコンポーネントがあります。
サブネット(Subnet)
- VPC内で分割されたネットワークセグメント
- パブリックサブネット(インターネットアクセス可能)とプライベートサブネット(インターネットアクセス不可)に分けるのが一般的
インターネットゲートウェイ(Internet Gateway, IGW)
- VPCのサブネットからインターネットに接続するためのゲートウェイ
- パブリックサブネットには必須
ルートテーブル(Route Table)
- ネットワークのトラフィックをどこに送るかを決定するルールを定義
- インターネットゲートウェイやNATゲートウェイを経由する設定を行う
NAT ゲートウェイ / NAT インスタンス
- プライベートサブネットの EC2 からインターネットへアクセスするために利用
- NAT ゲートウェイは AWS が管理するサービス
- NAT インスタンスはユーザーが手動で管理する EC2 インスタンス
セキュリティグループ(Security Group, SG)
- VPC 内のリソースに対する仮想ファイアウォール
- インバウンド(受信)とアウトバウンド(送信)トラフィックを制御するルールを設定
ネットワークACL(NACL, Network Access Control List)
- サブネットレベルでのトラフィック制御を行う
- ステートレス(リクエストごとに許可/拒否を評価)で、より細かい制御が可能
VPC エンドポイント
- AWS サービス(S3, DynamoDB など)にインターネットを経由せずにアクセスするためのゲートウェイ
- セキュリティの向上や通信の最適化に役立つ
VPC の利用パターン
単一 VPC
- 小規模環境では1つのVPCにすべてのリソースを配置
VPCピアリング
- 別の VPC と直接通信するための接続方式
- 例えば、異なる AWS アカウントのVPC同士を接続可能
Transit Gateway
- 複数のVPCやオンプレミス環境を中央ハブを介して接続
- 大規模環境でよく使用される
ハイブリッド接続(VPN / Direct Connect)
- オンプレミスとAWSのVPCをVPNまたは専用線(Direct Connect)で接続
VPC を作成する方法
AWS マネジメントコンソールで作成
- VPC の作成: IP アドレス範囲(CIDR ブロック)を指定して VPC を作成
- サブネットの作成: パブリック・プライベートサブネットを作成
- インターネットゲートウェイのアタッチ: VPC に接続してルートテーブルを設定
- ルートテーブルの編集: インターネットゲートウェイや NAT ゲートウェイをルートとして設定
AWS CLI で作成
aws ec2 create-vpc --cidr-block 10.0.0.0/16
Terraform で作成
resource "aws_vpc" "my_vpc" {
cidr_block = "10.0.0.0/16"
}