
AWSのVPC入門ガイド
Amazon Virtual Private Cloud (Amazon VPC) はAWSクラウド内でプライベートな仮想ネットワークを構築できるサービスです。このガイドでは、VPCの基本概念から実際の設計・運用のベストプラクティスまでを解説します。
VPCとは何か
Amazon VPCは、AWS上で論理的に隔離されたセクションを提供し、その中でAWSリソースを起動できるサービスです。IPアドレス範囲の選択、サブネットの作成、ルートテーブルの設定など、仮想ネットワーク環境を完全に制御できます。
VPCの主な特徴は以下の通りです:
- 隔離されたネットワーク空間: 他のAWSユーザーのネットワークから完全に分離
- カスタマイズ可能なネットワーク設定: IPアドレス範囲、サブネット、ルートテーブルを自由に設計可能
- 複数の接続オプション: インターネット、オンプレミス環境との接続など様々な接続方法を提供
- セキュリティ機能: セキュリティグループ、ネットワークACL、フローログなど多層的なセキュリティ
- リソース配置の柔軟性: 複数のアベイラビリティゾーン(AZ)にまたがるリソース配置が可能
VPCの基本コンポーネント
VPCを構成する主要なコンポーネントについて理解しましょう。
1. サブネット
サブネットはVPC内のIP範囲です。サブネットを使用してリソースをグループ化し、セキュリティポリシーを適用します。サブネットには主に2種類あります:
- パブリックサブネット: インターネットからアクセス可能なサブネット
- プライベートサブネット: インターネットから直接アクセスできないサブネット
ベストプラクティスとして、サブネットは異なるアベイラビリティゾーンに分散配置し、高可用性を確保します。
2. ルートテーブル
ルートテーブルはサブネット内のトラフィックの行き先を制御するためのルールセットです。各サブネットには必ず1つのルートテーブルが関連付けられます。ルートテーブルは以下の要素で構成されます:
- 宛先: トラフィックの宛先IPアドレス範囲
- ターゲット: トラフィックの送信先(インターネットゲートウェイ、NATゲートウェイなど)
例えば、パブリックサブネットのルートテーブルには、インターネット向けトラフィック(0.0.0.0/0)をインターネットゲートウェイに送るルートが含まれます。
3. インターネットゲートウェイ
インターネットゲートウェイ(IGW)は、VPCとインターネットの間の通信を可能にするコンポーネントです。パブリックサブネット内のリソースがインターネットと通信するために必要です。
4. NATゲートウェイ
Network Address Translation(NAT)ゲートウェイを使用すると、プライベートサブネット内のリソースがインターネットや他のAWSサービスにアクセスできるようになります。NAT自体は一方通行で、外部からプライベートサブネットへの接続は許可しません。
5. セキュリティグループ
セキュリティグループはインスタンスレベルのファイアウォールとして機能し、インバウンドおよびアウトバウンドのトラフィックを制御します。主な特徴:
- ステートフル:許可された通信の応答トラフィックは自動的に許可
- デフォルトでは全インバウンドトラフィックを拒否、全アウトバウンドトラフィックを許可
- インスタンスごとに複数のセキュリティグループを割り当て可能
6. ネットワークACL
ネットワークアクセスコントロールリスト(NACL)はサブネットレベルのファイアウォールとして機能します。主な特徴:
- ステートレス:インバウンドとアウトバウンドのルールを個別に設定する必要がある
- ルールは番号順に評価され、最初にマッチしたルールが適用
- デフォルトでは全てのトラフィックを許可
VPCの設計と実装
CIDR範囲の選択
VPCを作成する際は、まずCIDR(Classless Inter-Domain Routing)ブロックを定義する必要があります。これはVPC内で使用可能なIPアドレスの範囲を決定します。
一般的なCIDRブロックの例:
- 10.0.0.0/16(65,536個のIPアドレス)
- 172.16.0.0/16(65,536個のIPアドレス)
- 192.168.0.0/16(65,536個のIPアドレス)
将来の拡張性を考慮して、十分な大きさのCIDRブロックを選択することが重要です。また、他の環境(オンプレミスネットワークなど)と接続する場合は、IPアドレス空間の重複を避ける必要があります。
サブネットの設計
VPC内にサブネットを作成する際の一般的な設計パターン:
-
可用性ゾーン(AZ)ごとにサブネットを作成
- 各AZに少なくとも1つのパブリックサブネットと1つのプライベートサブネット
- これにより、単一AZの障害でもアプリケーションが継続して動作可能
-
目的別のサブネット
- ウェブ層、アプリケーション層、データベース層など、アプリケーションの各層を別々のサブネットに配置
- セキュリティ要件の異なるコンポーネントを分離
サブネット設計の例(10.0.0.0/16のVPCの場合):
- パブリックサブネット(AZ-a): 10.0.0.0/24
- プライベートサブネット(AZ-a): 10.0.1.0/24
- パブリックサブネット(AZ-b): 10.0.2.0/24
- プライベートサブネット(AZ-b): 10.0.3.0/24
高度なVPC機能
1. VPCエンドポイント
VPCエンドポイントを使用すると、インターネットゲートウェイ、NATデバイス、VPN接続、AWS Direct Connectなしで、VPCとサポートされているAWSサービスをプライベートに接続できます。
エンドポイントのタイプ:
- ゲートウェイエンドポイント: S3やDynamoDBに使用
- インターフェースエンドポイント: その他のAWSサービス(SNS、SQS、API Gatewayなど)に使用
2. VPCピアリング
VPCピアリング接続は、2つのVPC間のネットワーク接続であり、プライベートIPアドレスを使用してVPC間でトラフィックをルーティングできます。これにより、異なるVPC内のインスタンスが同じネットワーク内にあるかのように通信できます。
3. トランジットゲートウェイ
AWS Transit Gatewayは、VPC、オンプレミスネットワーク、AWSアカウント間の接続を簡素化するサービスです。スター型の接続トポロジーを提供し、多数のVPCとオンプレミスネットワークの接続を容易にします。
4. VPNとDirect Connect
AWS Site-to-Site VPNを使用すると、VPCとオンプレミスネットワーク間に暗号化された接続を確立できます。
AWS Direct Connectは、オンプレミスネットワークからAWSへの専用ネットワーク接続を提供します。インターネット経由ではなく、プライベートネットワーク接続を使用するため、安定性とパフォーマンスが向上します。
VPCのセキュリティベストプラクティス
1. 多層防御の実装
- セキュリティグループのきめ細かなルール設定: 必要最小限のポートのみを開放
- ネットワークACLによる追加の保護層: 悪意のあるトラフィックをサブネットレベルでブロック
- プライベートサブネットへの重要リソースの配置: データベースなどの重要コンポーネントはインターネットから直接アクセスできないよう配置
2. 最小権限の原則
- リソースには必要最小限のネットワークアクセス権限のみを付与
- デフォルトのセキュリティグループのルールを見直し、過剰な許可を削除
3. トラフィックのモニタリングと可視化
- VPCフローログの有効化: ネットワークインターフェースとの間で行き来するトラフィックをキャプチャ
- CloudWatchとの統合: 異常なトラフィックパターンを検出するためのアラームを設定
- AWSセキュリティサービスの活用: Amazon GuardDutyなどを使用した脅威検出
4. 暗号化の徹底
- 転送中のデータの暗号化: TLSなどのプロトコルを使用
- 保存データの暗号化: EBSボリューム、S3バケットなどのデータを暗号化
VPCの運用と監視
1. リソース使用状況の監視
- IPアドレス使用率: 使用可能なIPアドレスの枯渇を防ぐ
- ネットワークトラフィック: ボトルネックや異常なパターンを検出
2. ネットワークトラブルシューティング
- 接続性の問題: ルートテーブル、セキュリティグループ、NACLの設定を確認
- パフォーマンスの問題: リソース制限、ボトルネックを特定
3. ディザスタリカバリ計画
- 複数のアベイラビリティゾーンにリソースを分散
- リージョン間のバックアップと復旧プロセスを確立
VPC設計のユースケース
1. Webアプリケーションの多層アーキテクチャ
一般的なWebアプリケーション構成は以下のようになります:
- パブリックサブネット: ロードバランサー、バスティオンホスト
- プライベートサブネット(アプリケーション層): Webサーバー、アプリケーションサーバー
- プライベートサブネット(データ層): データベース、キャッシュサーバー
2. ハイブリッドクラウド環境
オンプレミスデータセンターとAWSを接続する環境:
- VPN/Direct Connectによる接続
- 重複しないIPアドレス空間の選択
- ルーティングの最適化
3. マイクロサービスアーキテクチャ
コンテナ化されたマイクロサービスの実行環境:
- サービスごとのセキュリティグループ
- サービスディスカバリメカニズムの実装
- コンテナ間ネットワーキングの最適化
まとめ
Amazon VPCはAWSクラウド内でセキュアで柔軟なネットワーク環境を構築するための基盤となるサービスです。適切なVPC設計により、セキュリティの確保、高可用性の実現、コストの最適化が可能になります。
本ガイドで紹介した概念やベストプラクティスを活用して、あなたのビジネス要件に合ったVPC環境を構築してください。VPCは他のほとんどのAWSサービスと連携するため、クラウドインフラストラクチャの基盤として重要な役割を果たします。
最新のVPC機能や詳細なドキュメントについては、常にAWS公式ドキュメントを参照することをお勧めします。