Amazon VPC
1. サービス概要¶
Amazon VPC (Amazon Virtual Private Cloud) は、仮想ネットワーク環境を AWS 上に作成するサービスで、ユーザーが自由にネットワーク構成 (IP アドレス範囲、サブネット、ルーティングなど) を定義できる点が特徴である。
オンプレミスのように細かなルールでセキュリティや接続構成を管理したい場合でも、VPC で独立したネットワーク空間を構築し、プライベート通信を実現できる。
主なユースケースとして、
- 社内システムをクラウドへ移行する際の安全なネットワーク環境構築
- Web サーバと DB サーバを異なるサブネットに分離してセキュリティを高める設計
- VPC Peering/Transit Gateway を使った複数 VPC 間通信
などが挙げられる。
2. 主な特徴と機能¶
2.1 カスタム IP アドレス範囲¶
VPC 作成時にプライベート IP アドレス範囲 (CIDR ブロック) を指定でき、10.0.0.0/16 のようにオンプレミスとの重複を回避しつつ柔軟に構成できる。
必要に応じてサブネットに分割し、AZ ごとに高可用性を確保できる。
2.2 サブネット (Public/Private)¶
VPC 内のサブネットは、インターネットゲートウェイへのルートがある場合“Public サブネット”になり、外部からアクセス可能である。
一方、ゲートウェイを持たない“Private サブネット”は閉じた環境で、EC2 インスタンスなどをセキュアに運用できる。
2.3 ルーティングとゲートウェイ¶
インターネットゲートウェイ (IGW) をアタッチすることで、Public サブネットから外部ネットワークへ通信できるようとなる。
また、NAT ゲートウェイを用いて Private サブネットのリソースからインターネットへアウトバウンド接続することが可能。
さらに、Virtual Private Gateway や、Transit Gateway を利用すれば、オンプレミスとの VPN 接続や VPC 間通信を簡単に構築できる。
2.4 セキュリティグループとネットワーク ACL¶
セキュリティグループはステートフルな仮想ファイアウォールとして機能し、インスタンスごとにポートやプロトコルを制御。
ネットワーク ACL はサブネット単位のステートレスルールで、細かい許可・拒否を設定できる。両方を組み合わせることで多層防御が可能である。
2.5 柔軟な拡張性と統合¶
VPC は他の AWS サービス (EC2、RDS、ECS、Lambda (VPC エンドポイント) など) と密接に連携する。
スケーラビリティの高いネットワーク設計を実現しながら、S3 や DynamoDB などに対してもプライベートリンクを使った安全なアクセスが可能である。
3. アーキテクチャおよび技術要素¶
- VPC 作成時に CIDR ブロックを指定 (例: 10.0.0.0/16)
- 複数 AZ に跨ってサブネットを作成 (Public サブネットと Private サブネットを分離)
- IGW を VPC にアタッチし、ルートテーブルでインターネット経路を設定 (Public サブネット)
- NAT ゲートウェイを配置し、Private サブネットのアウトバウンド通信をサポート
- セキュリティグループ/ネットワーク ACL で通信制御
- 必要に応じて VPC Peering や VPN/Direct Connect で外部ネットワークと接続
このように、論理的なネットワークセグメントを自由に設計することで、オンプレ同様のセキュアかつ拡張性の高いネットワークを AWS 上で構築できる。
4. セキュリティと認証・認可¶
VPC のセキュリティを確保するためには以下のポイントが重要である:
- ネットワーク分割: Public/Private サブネットを適切に分離し、公開が必要なリソースのみパブリック側に配置
- セキュリティグループ: ステートフルなインバウンド/アウトバウンドルールでインスタンス単位の通信を制御
- ネットワーク ACL: サブネット単位のステートレスフィルタとして、より詳細な IP/ポート制限を追加
- VPC エンドポイント: S3 や DynamoDB 等へインターネット経由ではなくプライベート接続でアクセスし、セキュリティを強化
- 監査ログ: VPC Flow Logs を活用してトラフィックログを取得し、CloudWatch Logs などで分析
5. 料金形態¶
VPC 自体の作成や利用に対しては追加料金はありません。
ただし、以下の場合はコストが発生する:
- NAT ゲートウェイ: 時間単位とデータ処理量に応じた課金
- VPC エンドポイント: ゲートウェイ/インターフェイスエンドポイントの時間単位課金(インターフェイスエンドポイントの場合)
- VPN 接続: Site-to-Site VPN でトンネル維持費用が時間従量で発生
- Transit Gateway: アタッチやデータ転送量に応じた課金
- VPC Flow Logs: CloudWatch Logs や S3 へのログ保存コスト
6. よくあるアーキテクチャ・設計パターン¶
VPC は基盤となるサービスのため、さまざまなパターンがある。
代表例は以下の通り:
- Public/Private サブネット分割: Web サーバを Public サブネット、DB サーバを Private サブネットに配置する基本構成
- VPC Peering: 複数 VPC 間を直接接続し、アプリケーション間通信を安全に行う
- Transit Gateway: 大規模環境で多 VPC・オンプレミスネットワークを一括接続してガバナンスを効率化
- セキュアな S3 アクセス: S3 VPC エンドポイントでデータ転送をプライベートに行う
- Site-to-Site VPN や Direct Connect: オンプレミスとのハイブリッドクラウド実装
7. 設定・デプロイ手順 (ハンズオン例)¶
- AWS コンソールで「VPC」を検索し、「VPC の作成」をクリック
- CIDR ブロック(例: 10.0.0.0/16)を指定し、VPC 名を入力して作成
- 「サブネットの作成」で複数の AZ に対し、Public/Private サブネットを設定
- 「インターネットゲートウェイ」を作成し、VPC へアタッチ。Public サブネットのルートテーブルに 0.0.0.0/0 → IGW ルートを追加
- Private サブネットで NAT ゲートウェイ利用なら、NAT ゲートウェイを作成し、Private サブネットルートテーブルに 0.0.0.0/0 → NAT ルートを設定
- セキュリティグループやネットワーク ACL を調整し、EC2 インスタンスを起動して動作確認
8. 試験で問われやすいポイント¶
8.1 Public サブネットと Private サブネットの違い¶
- Public サブネット: IGW へルートがあるサブネットで、インターネットからアクセス可能
- Private サブネット: IGW へルートがなく、NAT ゲートウェイや VPN 等を経由しないと外部通信できない
8.2 NAT ゲートウェイと NAT インスタンス¶
- NAT ゲートウェイ: 高可用性かつスケーラブルな AWS マネージド NAT
- NAT インスタンス: 自己管理が必要で、スケーリングも手動。NAT ゲートウェイへの移行が推奨される
8.3 セキュリティグループ vs. ネットワーク ACL¶
- セキュリティグループ: インスタンス単位、ステートフル
- ネットワーク ACL: サブネット単位、ステートレス
- 使い分け: SG で主要制御し、さらに NACL で補強する二重防御
8.4 VPC Peering と Transit Gateway¶
- VPC Peering: 1 対 1 の接続、トランジットできない
- Transit Gateway: 多数の VPC/オンプレ接続を集中管理、トランジットが可能
8.5 VPC エンドポイント¶
- ゲートウェイ型: S3 や DynamoDB へのプライベートアクセスに使用
- インターフェイス型: 他の AWS サービス(EC2 API、SNS など)への VPC 内プライベート接続
8.6 試験で頻出となる具体的な問われ方と答え¶
- Q: Public サブネットの要件は?
- A: ルートテーブルにデフォルトルート(0.0.0.0/0)が IGW を指している。
- Q: Private サブネットの EC2 からインターネットにアクセスする方法は?
- A: NAT ゲートウェイ(または NAT インスタンス)を介し、Private サブネットのルートを NAT へ向ける。
- Q: セキュリティグループでステートフルとは?
- A: インバウンドが許可されると、対応するアウトバウンドは自動的に許可される仕組み。
- Q: VPC 同士を接続したいがトランジットも必要な場合は?
- A: Transit Gateway を使用し、複数 VPC・オンプレを一元管理。
- Q: S3 とプライベート通信をしたいがインターネットに出したくない。方法は?
- A: S3 ゲートウェイエンドポイントを作成し、VPC 内から直接 S3 へプライベート接続する。