VPC

VPC(Virtual Private Cloud)は、AWS上に作成する仮想的な専用ネットワーク環境です。

利用者自身で CIDR(Classless Inter-Domain Routing)を割り当て、AZ(Availability Zone)ごとにPublic SubnetPrivate Subnetを構成し、Route TableIGW(Internet Gateway)NAT GatewaySG(Security Group)NACL(Network ACL)などを組み合わせて、EC2 や RDS などのリソースを安全に配置・分離することができます。

各リソースには Private IP(内部通信用)と、必要に応じて Public IP(インターネット通信用)を割り当てることができます。また、ENI(Elastic Network Interface) と呼ばれる仮想ネットワークインターフェースを利用することで、1つのインスタンスに複数のネットワークアドレスやサブネットを柔軟に付与できます。

VPC内部からAWSの他サービスへ安全に接続する際は、VPC Endpointを利用することで、インターネットを経由せずにS3やDynamoDBなどへプライベート接続が可能です。

VPC内のトラフィックを監視・可視化するには、VPC Flow Logs を有効化します。これにより、ネットワーク通信の送信元・宛先・許可/拒否情報などをCloudWatch LogsやS3に記録し、セキュリティ監査やトラブルシューティングに活用できます。

オンプレミス環境とVPCを接続する場合は、Direct Connect や Site-to-Site VPN を利用します。

VPC間の接続には、VPC Peering、Transit Gateway、PrivateLink などを用いて、複数のVPCを安全かつ効率的に連携させることができます。

このようにVPCでは、ネットワーク境界を明確に定義し、ゼロトラストを前提とした細粒度なトラフィック制御が可能です。

重要用語

ユースケース

Webアプリケーションの安全な構築公開するWebサーバーをパブリックサブネットに、データベースをプライベートサブネットに配置し、セキュリティグループで外部からのアクセスを制御する構成をとる。
社内ネットワークとつなぐハイブリッドクラウドオンプレミス環境とVPCをSite-to-Site VPNやDirect Connectで接続し、社内システムとクラウド上のシステムを同一ネットワークのように扱う。
マイクロサービスごとのネットワーク分離サービスごとにサブネットやセキュリティグループを分け、最小限のポート・通信経路だけを許可することでマイクロサービス間の影響範囲を限定する。

ベストプラクティス

複数AZにまたがるサブネット設計高可用性のために少なくとも2つ以上のAZにパブリック/プライベートサブネットを配置する。
最小権限のセキュリティグループインバウンド・アウトバウンドは必要最小限のポートとCIDR範囲のみを許可する。
VPCフローログの有効化トラフィックをCloudWatch LogsやS3に記録し、監査やトラブルシューティングに活用する。

高可用性・バックアップ・リトライ

高可用性・バックアップ・リトライ設計のポイント
【デフォルト】AWS内部で冗長化
 ・VPCルーター(暗黙的ルーター)
 ・Internet Gateway (IGW)
 ・VPC DNS(Route 53 Resolver)
 ・DHCPサービス
 ・セキュリティグループ処理基盤
 ・ネットワークACL処理基盤
 ・VPCエンドポイント(ゲートウェイ型)
 ・VPC Peering接続
サブネットの複数AZ設計
NAT Gatewayの複数AZ配置
VPCエンドポイント(インターフェース型)の複数AZ配置
Transit Gateway Attachmentの複数AZ配置
Direct Connect接続の冗長化
VPN接続のCustomer Gateway冗長化

セキュリティ

関連サービス設定内容
CloudTrail(操作履歴の記録・監査・追跡)【自動記録】
作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI)
データ操作は追跡できない(データプレーンAPI)
Config(リソースの構成状態・設定変更を記録)【Configが有効な場合】
サブネット/ルートテーブル/SG/NACL等の変更履歴・パブリック露出/不適切ポート開放の準拠評価
GuardDuty(脅威を自動検出)【GuardDutyが有効な場合】
Flow Logs由来のネットワーク/DNS異常通信検知

ログ・監視

ログ出力先ログの種類
CloudWatch Logs【有効化が必要】
VPCフローログ
CloudWatch Logs優先の原則
標準メトリクス(NAT Gateway)
メトリクス名説明
BytesInFromDestination宛先からの受信バイト数
BytesInFromSourceソースからの受信バイト数
BytesOutToDestination宛先への送信バイト数
BytesOutToSourceソースへの送信バイト数
ConnectionAttemptCount接続試行回数
ConnectionEstablishedCount確立された接続数
PacketsInFromDestination宛先からの受信パケット数
PacketsInFromSourceソースからの受信パケット数
PacketsOutToDestination宛先への送信パケット数
PacketsOutToSourceソースへの送信パケット数
ActiveConnectionCountアクティブ接続数
ErrorPortAllocationポート割り当てエラー数
IdleTimeoutCountアイドルタイムアウト数
PacketsDropCountドロップされたパケット数
カスタムメトリクス(VPC Flow Logs+メトリクスフィルター)
メトリクス名説明
BytesInVPC内受信バイト(フローログメトリクスなど)
BytesInFromAWSAWS内部からの受信バイト数
BytesInFromInternetインターネットからの受信バイト数
BytesOutVPC内送信バイト
BytesOutToAWSAWS内部への送信バイト数
BytesOutToInternetインターネットへの送信バイト数
PacketsIn受信パケット数
PacketsOut送信パケット数
RejectedPackets拒否されたパケット数

制限値(固定値/ハードリミット/ソフトリミット)

ハードリミット制限値
IPv6 CIDR ブロック数/VPC5
フローログ数/リソース2

ソフトリミット制限値
VPC数/リージョン5
サブネット数/VPC200
IPv4 CIDR ブロック数/VPC5(最大50)
Elastic IP数/リージョン5
インターネットゲートウェイ数/リージョン5
カスタマーゲートウェイ数/リージョン50
VPNゲートウェイ数/リージョン5
セキュリティグループ数/VPC2,500
セキュリティグループルール数/グループ60(インバウンド)、60(アウトバウンド)
ネットワークACL数/VPC200
ルートテーブル数/VPC200
ルート数/ルートテーブル50
NATゲートウェイ数/AZ5
VPCピアリング接続数/VPC50

AWS CLIのサンプルコード

①VPC を作成する
VPC ID を表示する
❶VPC を削除する(VPC ID 指定)

②Subnet を作成する(VPC ID 指定)
Subnet IDを表示する
❷Subnet を削除する(Subnet ID 指定)

③RouteTable を作成する(VPC ID 指定)
RouteTable ID、関連付けを表示する
③RouteTableをSubnetに関連付ける(RouteTable ID、Subnet ID 指定)
❸RouteTableとSubnetの関連付けを解除する(関連付けID 指定)
❸RouteTable を削除する(RouteTable ID 指定)

④Internet GW を作成する
Internet GW ID 、アタッチ状態を表示する
④Internet GW を VPC にアタッチする(Internet GW ID、VPC ID 指定)
⑤RouteTable に Internet GW 用のルートを追加する(RouteTable ID、Internet GW ID 指定)
❹Internet GW を VPC からデタッチする(Internet GW ID、VPC ID 指定)
❹Internet GW を 削除する(Internet GW ID 指定)

➅Elastic IP(NAT GW用)を作成する
Elastic IP の Allocation IDを表示する
⑦NAT GW をPublic Subnet に作成する(Subnet ID、Allocation ID 指定)
NAT GW ID を表示する
⑧RouteTable に NAT GW 用のルートを追加する(RouteTable ID、NAT GW ID 指定)
❼NAT GW を 削除する(NAT GW ID 指定)
❻Elastic IP(NAT GW用)を解放する(Allocation ID 指定)

CloudFormationのサンプルコード

Terraformのサンプルコード

料金計算

課金項目説明
VPC自体は無料-
NAT GatewayNAT Gatewayの稼働時間と処理データ量
VPCエンドポイントInterfaceエンドポイントの時間とデータ処理
GLBエンドポイントの時間とデータ処理
VPCピアリングアベイラビリティゾーン間データ転送
リージョン間のデータ転送
パブリックIPv4アドレスパブリックIPv4アドレスの使用料金

公式ページ

AWSドキュメント VPC