← PC・IT用語集へ戻る

VPC

Virtual Private Cloud
network security beginner
クラウドサービス上に、自社や個人専用に切り出された、安全で隔離された仮想ネットワーク空間。
VPC (Virtual Private Cloud)

概要(サマリー)

VPC(バーチャルプライベートクラウド)とは、AWSなどのクラウドサービスの中に構築する「論理的に隔離された、自分用のプライベートなネットワーク空間」である。
通常、インターネット上のクラウドサーバーは、他の多くの人々と共有の物理サーバー上で動いている。しかし、そのままではセキュリティ上の不安がある。
たとえるなら、巨大なマンションの中に、壁と鍵で区切られた自分用の部屋を作るようなイメージである。この「隔離された部屋(VPC)」の内部には、あなたに許可されたサーバーデータベースだけを配置し、IPアドレスの割り振りを自由に決めたり、外の世界(インターネット)と通信する際のセキュリティルールを自分で細かく設定したりすることができる。

詳細解説

VPCの主な仕組みと構成要素

VPCを理解するためには、以下のいくつかの基本的な構成要素(ネットワーク用語)を知っておく必要がある。

  1. IPアドレス範囲(CIDR): VPCを作成する際、まずその中で使えるIPアドレスの範囲(例: 10.0.0.0/16 など)を設定する。この範囲内でサーバー等の機器にIPアドレスが割り当てられる。
  2. サブネット(Subnet): VPCの内部を、さらに細かく区切ったグループのこと。
    * パブリックサブネット: インターネットと通信できる経路を持たせることが多いエリア。Webサーバーなど、外部に公開したいシステムを配置する。
    * プライベートサブネット: インターネットから直接アクセスさせない前提で設計するエリア。顧客データが入ったデータベースなど、公開したくないシステムを配置する。
  3. ルートテーブル(Route Table): VPC内の通信がどこに向かうべきかを案内する地図(経路ルール)。
  4. インターネットゲートウェイ(IGW): VPCと外のインターネット世界をつなぐための専用の「出入り口」。

パブリックサブネットとプライベートサブネットの違い

パブリックサブネットは、インターネットゲートウェイへの経路を持ち、必要に応じて外部からアクセスできるように設計するサブネットである。
ただし、サブネットに置いただけで自動的に誰でもアクセスできるわけではなく、パブリックIP、ルートテーブル、セキュリティグループなどの設定も関係する。
プライベートサブネットは、インターネットから直接入れないように設計し、データベースや内部処理用のサーバーなどを置く場所として使われる。

セキュリティグループとネットワークACL

VPCでは、通信を制御する仕組みとして、セキュリティグループやネットワークACLが使われる。
セキュリティグループは主にサーバー単位で「どの通信を許可するか」を決める防火扉のようなもので、ネットワークACLはサブネット単位で通信を制御する門番のようなものである。
初心者のうちは、まずセキュリティグループで必要最小限のポートだけを開ける、という考え方を覚えるとよい。

VPCを導入するメリット

  • 強固なセキュリティ: 外部から隔離されているため、攻撃者からの直接攻撃を防ぎやすい。特にデータベースなどの機密情報をプライベートサブネットに隔離できるのが最大の強みである。
  • 柔軟なネットワーク設計: 社内システムとクラウドをVPN(仮想専用回線)で繋ぐことで、クラウドを自社の社内LANの一部のように安全に運用できる。

AIコーディングとの関係

AIとVPC設計・ネットワーク構築

AIを使ってアプリケーションを本番サーバー(AWSやGCPなど)へデプロイする際、VPCの設計や設定方法についてAIからアドバイスを受けることができる。
特にVPCの設計はネットワークの基礎知識が必要となるため、AIに「セキュアなWebアプリを動かすためのAWS VPCの設計図と、必要な設定手順を出力して」と依頼することで、初心者でも構成のたたき台を作りやすくなる。ただし、実際に本番環境へ反映する前には、公式ドキュメントや経験者のレビューで設定内容を確認する必要がある。

指示を出す際のポイント

インフラ設計をAIに依頼する際は、以下のように具体的に条件を指定するとよい。
* 「AWSで、Webサーバーをパブリック、データベースをプライベートに配置するVPCの構成について、図付きで詳しく解説して」
* 「Terraform(インフラ自動化ツール)を使って、AWS上に基本的なVPCとサブネットを作成するコードを出力して」

よくある勘違い

VPNと同じもの?

アルファベットが似ているが、全く異なる概念である。
* VPC(Virtual Private Cloud): クラウド上に作る「隔離されたネットワーク空間(部屋)」そのもののこと。
* VPN(Virtual Private Network): 離れた拠点(例:自宅と会社、自社PCとVPC)の間を、暗号化した安全なトンネルで繋ぐ「通信経路(道)」のこと。
一般的には、自宅のパソコンからクラウド上の「VPC(部屋)」に安全にアクセスするために、「VPN(道)」を繋いで通信する、というように組み合わせて使われる。

個人開発の小さなアプリでもVPCを設定しなければならない?

現在のクラウドサービス(AWSなど)では、アカウントを作成した時点で「デフォルトVPC」という基本的なVPCが自動的に作成される。
そのため、初心者が特に意識しなくても、サーバーを立ち上げれば自動的にVPCの中に配置される仕組みになっている。ただし、本番用のセキュアなアプリを構築する際は、デフォルトVPCではなく、自分で新規に作成したカスタムVPCを使ってサブネットを切り分けるのがベストプラクティスとされている。

VPCを使えばセキュリティは100%安全?

VPCは外部からの「不正なネットワーク侵入」を防ぐのには非常に有効だが、それだけでは万全ではない。
たとえば、公開しているWebサイト(パブリックサブネット)のプログラム自体に脆弱性(バグ)があり、そこからデータベースが攻撃されたり、管理用のAPIキーが漏洩したりした場合は、VPCの内側からデータが盗まれてしまう。ネットワークの保護(VPC)と、アプリケーション自体のセキュリティ(プログラムの防壁)は両方行う必要がある。

まとめ

  • VPCは、クラウド上に自分専用に確保された、安全で隔離された仮想ネットワーク空間である。
  • 内部をサブネット(パブリック / プライベート)に分けることで、Webサーバーとデータベースを適切に配置・保護できる。
  • インターネットとの出入り口(インターネットゲートウェイ)などを柔軟に制御し、強固なセキュリティを構築できる。
  • AIにインフラの構成コード(Terraformなど)を書かせることで、安全なVPC構成をミスなく迅速に構築できる。

情報ソース

より詳しくAIに聞いてみよう

  • AWSのデフォルトVPCと、自分で作成するカスタムVPCの違いと、なぜカスタムVPCを作るべきなのか教えてください。
  • プライベートサブネットにあるデータベースサーバーが、インターネットから直接アクセスされずに、安全にシステムのアップデート(外部と通信)を行うための「NATゲートウェイ」の仕組みを説明してください。
  • Terraformを使って、基本的なVPC、サブネット、インターネットゲートウェイを作成する構成ファイル(.tf)を出力してください。
  • VPC内で設定する「セキュリティグループ」と「ネットワークACL」の違いと、それぞれの使い分けについて教えてください。
  • AIに「セキュアなネットワーク設計」を依頼するときの、詳細な前提条件を含めたプロンプトのテンプレートを教えてください。