VPCとは何か?

Amazon Virtual Private Cloud (Amazon VPC) は、AWSアカウント専用の仮想ネットワークであり、AWS上に作成できるプライベートな仮想ネットワーク空間です。これは、AWSクラウド内で論理的に分離したセクションをプロビジョニングし、自分で定義する仮想ネットワーク内でAWSリソース(Amazon EC2やAmazon RDSインスタンスなど)を起動できるようにするサービスです。
VPCは、お客様自身のデータセンターで運用されていた従来のネットワークに似ていますが、AWSのスケーラブルなインフラストラクチャを使用できるというメリットがあります。簡単に例えると、AWSという大きな土地の中に、自分だけの畑(VPC)を耕すようなものであり、「AWSにおける自分専用の環境」だと理解できます。
VPCを設定することで、IPアドレス範囲の選択、サブネットの作成、ルートテーブルとネットワークゲートウェイの設定など、仮想ネットワーキング環境を完全に制御できます。
VPCのメリット

VPCを利用することは、システムのセキュリティと管理において非常に重要です。
• セキュリティとネットワーク分離 VPCを使用することで、AWSリソースをインターネットから隔離したプライベートネットワーク内に配置することができます。これは、安全で隔離されたプライベートクラウドをパブリッククラウド内でホストすることを意味します。また、セキュリティグループやネットワークACLを利用することで、一定のセキュリティ水準を担保できます。
• リソース管理と環境の切り分け VPCを利用することで、用途ごとに環境を切り分けることができます(例:開発環境、テスト環境、本番環境)。例として、開発環境と本番環境を別々のVPCで管理すれば、開発環境で誤ってデータを削除してしまっても、本番環境のデータには影響を及ぼさなくなるため、不安を抱えずに開発を進められます。
• 拡張性とコスト効率 従来のオンプレミス環境と比較して、VPCを含むクラウド環境は、機械の購入費用やネットワーク構築の手間が低く、導入コストが低く、拡張性が高いというメリットがあります。
| メリット | 内容 |
|---|---|
| (1)セキュリティとネットワーク分離 | VPCを利用することでAWSリソースをインターネットから隔離したプライベートネットワークに配置可能。セキュリティグループやネットワークACLによりアクセス制御を行い、安全で隔離された環境を実現。 |
| (2)リソース管理と環境の切り分け | 用途別に複数のVPCを作成し、開発環境・テスト環境・本番環境などを分離管理できる。例えば本番環境を別VPCにすることで、誤操作が本番の影響を及ぼさず安全に開発運用可能。 |
| (3)拡張性とコスト効率 | オンプレミスと比較して初期投資やネットワーク構築コストが低く、必要に応じてリソースを柔軟に拡張・縮小可能。クラウドならではのスケーラビリティを活かせ、運用コストの最適化が期待できる。 |
VPCの構成要素

はじめに、AWS VPC 基本アーキテクチャ構成図を示します。
この図は、VPC内の主要なコンポーネントとそれらの関係を視覚的に表現したものです。パブリックサブネットやプライベートサブネット、インターネットゲートウェイ、ルートテーブルなどの要素が含まれており、これらがどのように連携してAWSリソースの通信やセキュリティを支えているかを理解するための全体像をつかむ手助けとなります。この後で、各構成要素の役割と特徴について詳しく解説していきます。
サブネット(パブリック・プライベートの違い)

サブネットはVPC内のIPアドレスの特定の範囲を指し、大きなネットワーク(VPC)をさらに小さく区切った「小さなネットワーク」のことです。サブネットは、アベイラビリティゾーン (AZ) を指定するリソースであり、特定のAZに配置されます。
サブネットには大きく分けて「パブリックサブネット」と「プライベートサブネット」の2種類があります。
パブリックサブネットは、インターネットゲートウェイを通じてインターネットと直接通信が可能なサブネットで、主にWebサーバーなど外部と通信を行うリソースの配置に使われます。一方、プライベートサブネットはインターネットから直接アクセスできないサブネットで、データベースやバックエンドのアプリケーションサーバーなど、より保護された環境で動作するリソースのために利用されます。プライベートサブネットから外部にアクセスする際は、NATゲートウェイなどを介して通信を行います。
| 種類 | 特徴 | 配置されるリソースの例 |
| プライベートサブネット | インターネットから直接アクセスさせたくないリソースを配置する。VPC外との直接通信はできない。 | DBなど重要なデータを置く場所。APサーバー。 |
| パブリックサブネット | インターネットと直接の経路があるリソースを配置する。外部からの直接アクセスを許容する場所。 | Webサーバー。 |
サブネットを適切に使い分けることで、セキュリティとネットワークの分離を実現しながら、システムの可用性と運用効率を高めることができます。
ルートテーブル(ネットワーク通信の経路制御)
ルートテーブルは、ネットワークトラフィックの経路を決定するためのルール集であり、「通信の流れを定義した通信ガイドブック」として機能します。VPC内の各サブネットは必ず1つのルートテーブルに関連付けられており、そのルートテーブルに基づいてトラフィックの行き先が決まります。
ルートテーブルの種類
ルートテーブルには主に2種類あり、VPC作成時に自動で割り当てられる「メインルートテーブル」と、手動で作成して特定のサブネットに関連付ける「カスタムルートテーブル」があります。メインルートテーブルは、明示的なルートテーブルの関連付けがないサブネットに自動的に適用されます。
• メインルートテーブル:VPC作成時に自動で作成されるルートテーブルです。サブネットにカスタムルートテーブルが明示的に関連付けられていない場合、メインルートテーブルが自動的に適用されます。
• カスタムルートテーブル:手動で作成するルートテーブルです。サブネットごとにルーティング定義を変えたい場合に作成し、特定のサブネットに関連付けます。
ルートテーブルによるサブネットの判別
パブリックサブネットかプライベートサブネットかの判別は、このルートテーブルの設定を見ることが重要です。具体的には、ルートテーブルにインターネットゲートウェイ(IGW)へのルート(例えば送信先が 0.0.0.0/0 でターゲットがIGW)が設定されているサブネットはパブリックサブネットとされます。逆に、IGWへのルートがなく、NATゲートウェイやVPC内の他リソースへのルートのみが設定されている場合はプライベートサブネットです。この設定により、どのサブネットが外部インターネットと通信可能かが判断できます。
つまり、パブリックサブネットとプライベートサブネットの「見極め」はルートテーブルの内容を確認することで行うのが基本です。
| サブネット種類 | ルートテーブルの特徴 | 説明 |
|---|---|---|
| パブリックサブネット | インターネットゲートウェイ(IGW)へのルートが存在 | 送信先が0.0.0.0/0(全てのトラフィック)でターゲットがIGWに設定されている。インターネットと直接通信可能。 |
| プライベートサブネット | インターネットゲートウェイへのルートなし、NATゲートウェイ経由など | IGWへのルートはなく、NATゲートウェイやVPC内部のリソースへのルートのみが設定されている。インターネットからの直接アクセス不可。 |

サブネットに関連づけられたルートテーブルを見て、0.0.0.0/0(全てのトラフィック)でターゲットがIGWに設定されているならパブリックサブネット、そうでないなら、プライベートサブネットと判断できます。
インターネットゲートウェイ(IGW)

インターネットゲートウェイ (IGW) は、VPC内とインターネットとの間で双方向の通信を可能にするトンネルのような役割を果たします。IGWをVPCにアタッチした後、パブリックサブネットのルートテーブルに、インターネットへのルート(送信先 0.0.0.0/0)としてIGWを明示的に追加する必要があります。
NATゲートウェイ

NATゲートウェイ (NAT GW) は、プライベートサブネット内のリソースがインターネットへアウトバウンド接続(外部への通信)を行うことを可能にしますが、インターネットからのインバウンド接続(外部からの直接アクセス)は許可しません。
NATゲートウェイの主な役割は、プライベートIPアドレスを持つリソースがインターネットに接続するために、プライベートIPアドレスからグローバルIPアドレスへの変換処理を行うことです。NATゲートウェイはパブリックサブネットに配置されます。
セキュリティグループとネットワークACL(アクセス制御)

Amazon VPCでは、ネットワークの安全性を高めるために「セキュリティグループ」と「ネットワークACL」という二つのアクセス制御機能が使われます。
セキュリティグループ
セキュリティグループはインスタンス単位に適用される仮想ファイアウォールで、許可されたトラフィックのみを通すステートフルな仕組みです。セキュリティグループについては、以下の記事でまとめています。
ネットワークACL
一方、ネットワークACLはサブネット単位で適用されるステートレスなファイアウォールで、許可と拒否の細かいルールを設定でき、VPC全体のトラフィックを制御します。この二つを組み合わせることで、多層的なセキュリティを実現できます。
セキュリティグループとネットワークACL比較
| 機能 | ネットワークACL (NACL) | セキュリティグループ (SG) |
| 適用範囲 | サブネットごと | インスタンスごと (EC2, RDS, ELBなど) |
| フィルタ方式 | ステートレス。インバウンドとアウトバウンドの両方を明示的に設定する必要がある。 | ステートフル。インバウンドを許可すると、その応答としてのアウトバウンドトラフィックが自動的に許可される。 |
| ルール形式 | ホワイトリストとブラックリストの両方(許可/拒否)を定義可能。 | ホワイトリスト形式(許可のみを定義)。 |
| 推奨事項 | 設定が煩雑になりがち。サブネットレベルの防御層。 | 設定がシンプルで、ミスを防ぎやすい。多くの場合、NACLよりもSGの使用が推奨される。インスタンス単位での細かいアクセス制御が可能。 |
VPCピアリングやVPNなどの拡張機能
これまで紹介してきたVPC内の主要なコンポーネントを実際に導入する際に、検討すべき拡張機能です。
VPCピアリング

2つの異なるVPC間でプライベートなトラフィックのルーティングを可能にするネットワーキング接続です。ピア接続されたVPCのリソースは、パブリックインターネットを経由せず、同じネットワーク内に存在しているかのように相互に通信できます。異なるAWSアカウント間、または異なるAWSリージョン間のVPCにも作成可能です。
VPN接続

インターネットという公共のネットワーク上に、データを暗号化したプライベートな通信チャネルを作成して接続する技術です。物理的な専用線を敷設する代わりに、インターネット上に仮想的な「専用線」を作成し、高額なコストをかけずに同等のセキュリティとプライバシーを実現します。オンプレミスネットワークからクラウド上のVPCへの安全なアクセスが必要な場合などに使用されます。
AWS Transit Gateway

複数のVPC間やオンプレミスネットワークを相互接続するためのネットワークの中継ハブです。多数のVPC間で通信を行う場合、VPCピアリングのように個別に接続を設定する代わりに、Transit Gatewayを利用することで接続を一元管理し、管理の手間を大幅に削減できます。
VPCエンドポイント

VPCがインターネットを介さずに、AWSのパブリックサービス(S3やDynamoDBなど)へプライベートにアクセスすることを可能にする機能です。S3用ゲートウェイエンドポイントなどを利用することで、インターネットを経由せずセキュアにサービスと通信できます。
インターネット経由のトラフィックが不要になるため、データ転送コストやNATゲートウェイ利用料金を削減できます。
VPC構成のベストプラクティス
可用性確保のために複数AZにまたがるサブネット構成
商用Webアプリケーションでは必須とも言える構成として、VPC内の複数のAZに並列にサブネットおよびインスタンスを設置するマルチAZ構成を採用します。これにより、片方のAZで障害が起きても、高可用性、耐障害性、拡張性を確保できます。ELB(Elastic Load Balancing)やAuto Scalingと組み合わせることで、負荷分散を実現できます。

セキュリティ強化のためのアクセス制御の設定

以下にアクセス制御で考慮すべき項目をまとめます。
1. ネットワーク側のアクセス制御:ネットワークACL(サブネット単位)とセキュリティグループ(インスタンス単位)を利用し、アクセス制御を実施します。セキュリティ設定がシンプルでミスを防ぎやすいセキュリティグループを優先的に使用することが推奨されます。
2. ホスト側のアクセス制御:VPC内外のリソース(S3バケットなど)へのアクセスには、IAMによるアクセス権限を適切に付与します。特にVPC外のサービスと通信する際にはIAMが重要な役割を果たします。
3. 踏み台サーバーの利用とアクセス制限:プライベートサブネット内のサーバーへのSSH接続は、パブリックサブネット上のサーバーを踏み台として利用し、外部からの直接アクセスを避けるべきです。Webサーバーなど外部に公開されているリソースから内部リソースへの不要なSSH接続をセキュリティグループで拒否することで、セキュリティレベルを高めることができます。
VPCフローログの有効化によるトラブルシューティング支援

VPCフローログは、VPCのネットワークインターフェイスとの間で行き来するIPトラフィックに関する情報をキャプチャ(記録)する機能です。
• 記録情報には、送信元/宛先のIPアドレス、ポート番号、プロトコル、トラフィックが許可されたか拒否されたかが含まれます。
• 記録したデータは、分析やアーカイブのためにAmazon CloudWatch LogsやAmazon S3バケットに送信されます。
• セキュリティ対策としてログを保存し、後から攻撃や不具合の原因を追跡できるようにすることが重要です。
• フローログはネットワークのパフォーマンスに影響を与えずに運用されます。
まとめ
Amazon VPCは、AWSクラウド上にセキュリティと柔軟な制御性を備えた自分専用の仮想プライベートネットワークを構築するための基盤サービスです。
VPCの核となる要素として、インターネットへの経路を持つパブリックサブネットと、隔離されたプライベートサブネットが存在し、これらをルートテーブルで制御します。また、インスタンス単位のセキュリティグループや、サブネット単位のネットワークACLを用いて、緻密なアクセス制御を行うことが、セキュリティの要となります。
構築においては、マルチAZ構成による高可用性の確保 や、VPCフローログによるトラフィックの監視、およびセキュリティグループによる適切なアクセス制限がベストプラクティスとして推奨されます。



コメント