VPC

AWS 上に論理的に隔離されたプライベートネットワークを構築するサービス

AWSネットワーク
VPC」の技術書を見る (14 冊) →

VPC とは

VPC (Virtual Private Cloud) は、AWS 上に論理的に隔離されたプライベートネットワークを構築するサービスである。IP アドレス範囲、サブネット、ルートテーブル、セキュリティグループを自由に設定し、リソースのネットワーク環境を制御する。

VPC の構成要素

VPC の構成要素を以下にまとめる。

要素説明
CIDR ブロックVPC の IP アドレス範囲 (例: 10.0.0.0/16)
サブネットVPC 内のネットワーク分割 (パブリック/プライベート)
ルートテーブルトラフィックの経路制御
インターネットゲートウェイVPC とインターネットの接続
NAT ゲートウェイプライベートサブネットからの外部通信
セキュリティグループインスタンスレベルのファイアウォール
ネットワーク ACLサブネットレベルのファイアウォール

典型的な構成

典型的な構成を図で示す。

VPC (10.0.0.0/16)
├── パブリックサブネット (10.0.1.0/24) - AZ-a
│   ├── ALB
│   └── NAT Gateway
├── パブリックサブネット (10.0.2.0/24) - AZ-c
│   └── ALB
├── プライベートサブネット (10.0.10.0/24) - AZ-a
│   ├── Lambda
│   └── RDS (プライマリ)
└── プライベートサブネット (10.0.20.0/24) - AZ-c
    ├── Lambda
    └── RDS (スタンバイ)

パブリック vs プライベートサブネット

パブリックとプライベートサブネットの違いを以下にまとめる。

観点パブリックプライベート
インターネットアクセス直接 (IGW)NAT Gateway 経由
配置するリソースALB, NAT GWLambda, RDS, ElastiCache
セキュリティ外部からアクセス可能外部からアクセス不可

Lambda と VPC

Lambda を VPC 内に配置すると、プライベートサブネットの RDS や ElastiCache にアクセスできる。ただし、インターネットアクセスには NAT Gateway が必要 (コストがかかる)。

MyFunction:
  Type: AWS::Serverless::Function
  Properties:
    VpcConfig:
      SubnetIds:
        - !Ref PrivateSubnet1
        - !Ref PrivateSubnet2
      SecurityGroupIds:
        - !Ref LambdaSG

VPC エンドポイント

NAT Gateway を使わずに、VPC 内から AWS サービス (S3, DynamoDB) にプライベート接続する。

タイプ対象コスト
ゲートウェイ型S3, DynamoDB無料
インターフェース型その他の AWS サービス時間課金

セキュリティグループ

セキュリティグループはインスタンスレベルのファイアウォールで、インバウンド (受信) とアウトバウンド (送信) のトラフィックを制御する。許可ルールのみを定義するホワイトリスト方式で、明示的に許可されていないトラフィックはすべて拒否される。セキュリティグループ同士を参照することで、特定のリソース間のみ通信を許可できる。

LambdaSG:
  Type: AWS::EC2::SecurityGroup
  Properties:
    VpcId: !Ref VPC
    SecurityGroupEgress:
      - IpProtocol: tcp
        FromPort: 5432
        ToPort: 5432
        DestinationSecurityGroupId: !Ref RDSSG  # RDS への接続のみ許可

VPC の背景や設計思想は関連書籍に詳しい。

この記事は役に立ちましたか?

関連用語

関連する記事