AWSを学び始めたけれど「EC2とVPCの関係がよくわからない」「ネットワーク構築は難しそう」と感じていませんか?この記事では、AWSの仮想サーバーEC2と、プライベートなネットワーク空間VPCの基本から関係性までを、豊富な図解で初心者にもわかりやすく解説します。結論として、EC2を安全かつ柔軟に利用するためには、VPCによるネットワーク設計が不可欠です。サブネットやセキュリティグループといったVPCの主要な仕組みから、具体的な構築手順までを網羅しており、読み終えればAWSのネットワーク基礎を完全に理解し、自信を持って構築を始められるようになります。
EC2とVPCとは AWSの基本サービスを理解する

AWS(Amazon Web Services)を利用してシステムやウェブサイトを構築する際、必ずと言っていいほど登場するのが「EC2」と「VPC」です。これらはAWSの数あるサービスの中でも、インフラストラクチャの根幹をなす最も基本的なサービスと言えます。例えるなら、EC2が「サーバー本体」、VPCがそのサーバーを設置し、安全に運用するための「ネットワーク環境」です。この2つのサービスを正しく理解することが、AWSを使いこなすための第一歩となります。この章では、それぞれのサービスの役割と基本的な概念を、初心者の方にもわかりやすく解説していきます。
EC2とは 仮想サーバーをレンタルできるサービス
EC2(Amazon Elastic Compute Cloud)とは、AWSが提供する仮想サーバーサービスです。物理的なサーバーマシンを購入・設置・管理することなく、クラウド上に数分でサーバーを構築し、レンタルすることができます。必要な時に必要な分だけコンピューティングリソース(CPU、メモリ、ストレージなど)を利用できるため、柔軟性とコスト効率に優れています。
EC2で作成された個々の仮想サーバーは「インスタンス」と呼ばれます。このインスタンスは、用途に応じて様々なスペックやOSを選択することが可能です。例えば、小規模なWebサイトを運営するための低スペックなインスタンスから、大規模なデータ分析や機械学習を行うための高性能なインスタンスまで、幅広い選択肢が用意されています。
EC2の主な特徴は以下の通りです。
| 特徴 | 概要 |
|---|---|
| 伸縮性(Elasticity) | サービスの需要に応じて、インスタンスのスペック(スケールアップ/ダウン)や台数(スケールアウト/イン)を簡単かつ迅速に変更できます。トラフィックの急増にも柔軟に対応可能です。 |
| 多様なインスタンスタイプ | 汎用、コンピューティング最適化、メモリ最適化、ストレージ最適化など、ワークロードの特性に合わせて最適化された多種多様なインスタンスタイプから選択できます。 |
| 従量課金制 | インスタンスを起動している時間や利用したリソース量に応じて料金が発生します。初期投資を抑え、スモールスタートが可能です。 |
| OSの選択自由度 | Amazon Linux、Ubuntu、Red Hat Enterprise Linux、Windows Serverなど、様々なオペレーティングシステム(OS)を選択してインスタンスを起動できます。 |
このように、EC2は従来のオンプレミス環境の物理サーバーに代わる、柔軟でスケーラブルな仮想サーバーとして、あらゆるクラウドコンピューティングの基盤となっています。
VPCとは クラウド上に構築するプライベートなネットワーク空間
VPC(Amazon Virtual Private Cloud)とは、AWSクラウド内にお客様専用のプライベートなネットワーク空間を構築できるサービスです。VPCを利用することで、AWSアカウント内に他のユーザーから論理的に完全に分離された、安全な仮想ネットワーク環境を作成できます。これは、自社のデータセンター内に独自のネットワークを構築するのと同じような感覚です。
パブリッククラウドであるAWSを使いながらも、なぜプライベートなネットワークが必要なのでしょうか。その最大の理由は「セキュリティ」です。VPCを使うことで、IPアドレスの範囲、サブネットの作成、ルートテーブルの設定、ネットワークゲートウェイの構成などを自由に制御できます。これにより、どのサーバー(EC2インスタンス)がインターネットと通信できるか、どのサーバー同士が通信できるかといったルールを細かく定義し、不正なアクセスからシステムを保護することが可能になります。
VPCの主な役割は以下の通りです。
| 役割 | 概要 |
|---|---|
| 論理的な分離 | AWSアカウントごとに独立したネットワーク空間を提供し、他のAWSユーザーの環境から完全に分離します。これにより、高いセキュリティと独立性を確保します。 |
| IPアドレス範囲の制御 | VPCで使用するプライベートIPアドレスの範囲(CIDRブロック)を自由に定義できます。これにより、既存のオンプレミスネットワークとの接続も容易になります。 |
| ネットワークの分割 | VPC内を「サブネット」と呼ばれる小さなネットワークに分割できます。用途に応じてパブリックな領域とプライベートな領域を分けるなど、階層的なネットワーク設計が可能です。 |
| 通信経路の制御 | 「ルートテーブル」を用いて、サブネット内外の通信経路を細かく制御できます。インターネットへの出口や、他のVPC、オンプレミス環境への接続ルートを定義します。 |
EC2インスタンスは、必ずこのVPCというネットワーク空間の中に作成されます。つまり、VPCはEC2インスタンスが安全に稼働するための「家」や「敷地」のような役割を担っているのです。
EC2とVPCの関係性 なぜセットで使われるのか
AWSの代表的なサービスであるEC2とVPCは、ほとんどの場合、セットで利用されます。EC2が「仮想サーバー」であるのに対し、VPCは「ネットワーク」です。なぜ、サーバーとネットワークが常に一緒に語られるのでしょうか。それは、サーバーが機能するためには、必ずネットワークという土台が必要不可欠だからです。この章では、EC2とVPCの切っても切れない関係性について、その理由を深掘りしていきます。
EC2はVPCなしでは起動できない? AWSの基本ルール
結論から言うと、現在のAWS環境において、EC2インスタンスはVPCなしで起動することはできません。すべてのEC2インスタンスは、必ずいずれかのVPC内に作成されるというルールになっています。
かつてAWSには「EC2-Classic」という、VPCが存在しないネットワーク環境がありました。これは、すべてのユーザーが共有するフラットな単一のネットワークで、インスタンスを起動するものでした。しかし、セキュリティやネットワーク設計の柔軟性に課題があったため、現在では新規アカウントでの利用はできなくなり、VPC内でEC2インスタンスを起動する「EC2-VPC」が標準となっています。この歴史的経緯からも、AWSがVPCによるネットワーク分離と管理をいかに重要視しているかがわかります。つまり、「EC2を使う」ということは、必然的に「VPCというネットワーク環境を構築し、その中でEC2を動かす」ということと同義なのです。
VPCがEC2に提供する3つの重要な役割
VPCは単にEC2を格納する「箱」ではありません。EC2のセキュリティ、拡張性、接続性を支えるための重要な役割を担っています。VPCがあるからこそ、私たちはEC2を安全かつ柔軟に利用できるのです。具体的にVPCがEC2に提供する3つの重要な役割を見ていきましょう。
役割1:安全なネットワーク境界の提供(セキュリティ)
VPCの最大の役割は、AWSクラウド上に論理的に分離されたプライベートなネットワーク空間を提供することです。これにより、作成したEC2インスタンスを外部の脅威から保護する、堅牢なセキュリティ境界を構築できます。例えば、インターネットから直接アクセスさせたくないデータベースサーバー用のEC2インスタンスを、外部から隔離された「プライベートサブネット」に配置することができます。このように、VPCという大きな枠組みがあることで、後述するセキュリティグループやネットワークACLといった、より詳細なセキュリティ設定が活きてくるのです。
役割2:柔軟なIPアドレス管理(ネットワーク設計)
VPCでは、使用するプライベートIPアドレスの範囲(CIDRブロック)を自分で定義できます。これにより、自社のオンプレミス環境のネットワークとIPアドレスが重複しないように設計したり、将来のシステム拡張を見越して大規模なネットワークを確保したりと、柔軟なネットワーク設計が可能になります。さらに、VPC内を「サブネット」という小さなネットワーク単位に分割することで、「Webサーバー群」「APサーバー群」「DBサーバー群」といったように、役割ごとにEC2インスタンスを整理・管理しやすくなります。このIPアドレスの管理能力が、システムの規模や要件に応じたインフラ構築の自由度を高めています。
役割3:緻密な通信経路の制御(コネクティビティ)
VPCは、その中にあるEC2インスタンスが「どこに」「どのように」通信するかを制御する司令塔の役割も果たします。具体的には、「ルートテーブル」という設定を用いて、通信の経路を定義します。
- インターネットへの接続(インターネットゲートウェイ経由)
- プライベートな環境からのみインターネットへ接続(NATゲートウェイ経由)
- オンプレミス環境との専用線接続(Direct Connect)やVPN接続
- 他のVPCとの接続(VPCピアリング)
これらの多様な接続形態をVPCが管理することで、EC2インスタンスは必要な場所とだけ安全に通信できるようになります。EC2がただ存在するだけでなく、サーバーとして意味のある通信を行うためには、VPCによる経路制御が不可欠です。
【例えで理解】家と土地に例えるEC2とVPCの関係
専門用語が多くて難しいと感じる方のために、EC2とVPC、そしてその関連コンポーネントを「家と土地」に例えてみましょう。この関係性をイメージすることで、それぞれの役割がより直感的に理解できるはずです。
| AWSコンポーネント | 家と土地の例え | 主な役割 |
|---|---|---|
| EC2インスタンス | 家 | アプリケーションが動く生活空間そのもの。 |
| VPC | 土地(敷地) | 家を建てるためのプライベートな所有地。外部と敷地を明確に分ける。 |
| サブネット | 土地内の区画 | 敷地内の「庭」や「母屋」、「駐車場」などのエリア分け。役割ごとに区切る。 |
| インターネットゲートウェイ | 敷地と公道をつなぐ門 | 外部(インターネット)との出入り口。 |
| ルートテーブル | 敷地内の案内標識 | 家から門へ、区画から区画へどう移動するかのルールを定める。 |
| セキュリティグループ | 家の玄関の鍵やドアホン | 家(EC2)への訪問者をチェックし、許可された人だけを入れる。 |
| ネットワークACL | 土地を囲う塀やフェンス | 敷地(サブネット)全体に出入りする人や車をチェックする。 |
このように、立派な家(EC2)を建てても、それだけでは雨風にさらされ、誰でも侵入できてしまいます。安全で便利な土地(VPC)を確保し、その土地に門(インターネットゲートウェイ)や塀(ネットワークACL)を設け、家の玄関に鍵(セキュリティグループ)をかけることで、初めて安心して暮らせるようになるのです。EC2とVPCの関係もこれと全く同じです。
VPCのネットワークを構成する主要コンポーネント
Amazon VPCは、単なる仮想的な箱ではありません。VPCの内部は、それぞれが重要な役割を持つ複数の「コンポーネント」を組み合わせることで、柔軟かつセキュアなネットワーク環境を構築できるよう設計されています。これらのコンポーネントを理解することが、AWSのネットワークを自在に操るための第一歩です。
ここでは、VPCネットワークを形作る上で欠かせない、以下の4つの主要コンポーネントについて、その役割と仕組みを詳しく解説します。
- サブネット
- ルートテーブル
- インターネットゲートウェイ
- NATゲートウェイ
これらの部品がどのように連携し、EC2インスタンスの通信を支えているのかを一つずつ見ていきましょう。
サブネット VPC内を分割する小さなネットワーク
サブネットとは、VPCという大きなネットワーク空間を、さらに小さな単位に分割したネットワークのことです。VPCを作成する際に指定したIPアドレスの範囲(CIDRブロック)を、より細かく区切ってサブネットに割り当てます。ちょうど、一つの大きな土地(VPC)を、用途に応じて「住宅エリア」や「商業エリア」といった区画(サブネット)に分けるイメージです。
サブネットを作成する主な目的は、リソースの整理とセキュリティの強化です。例えば、外部に公開するWebサーバーを置くサブネットと、重要な顧客データを保管するデータベースサーバーを置くサブネットを分けることで、それぞれに異なるアクセス制御ルールを適用し、セキュリティレベルを高めることができます。
また、サブネットは必ず特定のアベイラビリティーゾーン(AZ)内に作成されます。複数のAZにまたがってサブネットを作成することはできません。これにより、特定のデータセンターで障害が発生しても、他のAZにあるサブネット上のシステムは影響を受けずに稼働し続けるといった、可用性の高いシステム設計が可能になります。
パブリックサブネットとプライベートサブネットの違い
サブネットは、インターネットとの通信経路の有無によって「パブリックサブネット」と「プライベートサブネット」の2種類に大別されます。この2つを適切に使い分けることが、VPC設計の基本であり、非常に重要です。
パブリックサブネットは、その名の通りインターネットと直接通信できるサブネットです。一方、プライベートサブネットは、そのままではインターネットと直接通信することができず、より保護されたネットワーク領域となります。それぞれの特徴と主な用途は以下の通りです。
| 項目 | パブリックサブネット | プライベートサブネット |
|---|---|---|
| インターネット接続 | 直接通信が可能(インバウンド/アウトバウンド) | 直接通信は不可 |
| 接続の仕組み | ルートテーブルがインターネットゲートウェイを指している | ルートテーブルにインターネットゲートウェイへの経路がない |
| 主な用途 | Webサーバー、ELB(ロードバランサー)、NATゲートウェイなど、外部からのアクセスが必要なリソースの配置 | データベースサーバー、アプリケーションサーバーのバックエンド部分など、外部から直接アクセスさせたくないリソースの配置 |
| セキュリティ | インターネットに直接公開されるため、セキュリティグループやネットワークACLによる厳格なアクセス制御が必須 | 外部から直接アクセスされないため、比較的高いセキュリティを確保しやすい |
このように、外部に公開する必要があるリソースはパブリックサブネットに、保護したいリソースはプライベートサブネットに配置するのが基本的な考え方です。
ルートテーブル 通信経路を制御するルールブック
ルートテーブルは、サブネット内のEC2インスタンスなどから発生したネットワークトラフィックが、どこへ向かうべきかを決定するための「ルールブック」です。道路網における「交通標識」や「経路案内板」をイメージすると分かりやすいでしょう。
各サブネットは、必ず一つのルートテーブルに関連付けられます。そのサブネット内のインスタンスから送信されたデータパケットは、このルートテーブルに書かれたルールに従って宛先へと転送されます。
ルートテーブルのルールは、「宛先(Destination)」と「ターゲット(Target)」の組み合わせで定義されます。
- 宛先 (Destination): 通信の送り先となるIPアドレスの範囲をCIDR形式で指定します。(例: 0.0.0.0/0 はインターネット全体を意味します)
- ターゲット (Target): 宛先へのトラフィックを転送する先を指定します。(例: インターネットゲートウェイ、NATゲートウェイ、VPC内のローカル通信など)
例えば、パブリックサブネットに関連付けられたルートテーブルには、通常「宛先: 0.0.0.0/0、ターゲット: インターネットゲートウェイ」というルールが設定されます。これにより、サブネット内のインスタンスからインターネット向けの通信が、すべてインターネットゲートウェイへと送られるようになります。
インターネットゲートウェイ VPCとインターネットを繋ぐ入口と出口
インターネットゲートウェイ(IGW)は、VPCとインターネットとの間で通信を行うための「入口」であり「出口」の役割を担うコンポーネントです。VPCを一つの家だとすれば、インターネットゲートウェイは外部の世界(インターネット)と繋がるための唯一の「玄関ドア」に相当します。
このインターネットゲートウェイをVPCにアタッチ(接続)し、前述のルートテーブルで正しく設定することで、初めてVPC内のリソース(パブリックサブネット内のEC2インスタンスなど)がインターネットと通信できるようになります。具体的には、以下の2つの設定が必要です。
- VPCにインターネットゲートウェイをアタッチする。
- パブリックサブネットのルートテーブルで、インターネット向けの通信(宛先: 0.0.0.0/0)のターゲットとして、アタッチしたインターネットゲートウェイを指定する。
また、EC2インスタンスがインターネットゲートウェイ経由で通信するためには、送信元を特定するためのグローバルに一意なIPアドレス、すなわち「パブリックIPアドレス」または「Elastic IPアドレス」が割り当てられている必要があります。インターネットゲートウェイは、これらのパブリックIPアドレスとインスタンスのプライベートIPアドレスを1対1で変換(NAT)する機能も担っています。
NATゲートウェイ プライベートサブネットから安全にインターネットへ接続する仕組み
NAT(ナット)ゲートウェイは、プライベートサブネット内にあるEC2インスタンスが、安全にインターネットへ接続(アウトバウンド通信)するために利用されるマネージドサービスです。NATゲートウェイの最大の特徴は、「中から外」への通信は許可し、「外から中」への通信は許可しない点にあります。
例えば、プライベートサブネットに配置されたデータベースサーバーが、セキュリティパッチのダウンロードや外部の時刻サーバー(NTPサーバー)との同期のためにインターネットへアクセスしたい場合があります。しかし、データベースサーバーを直接インターネットに公開するのはセキュリティ上非常に危険です。
このような場合にNATゲートウェイが活躍します。NATゲートウェイをパブリックサブネットに配置し、プライベートサブネットのルートテーブルでインターネット向けの通信(宛先: 0.0.0.0/0)のターゲットとしてこのNATゲートウェイを指定します。すると、プライベートサブネット内のインスタンスからの通信は、すべてNATゲートウェイを経由してインターネットに出ていきます。このとき、送信元IPアドレスはNATゲートウェイのIPアドレスに変換されます。そして、外部からの応答もNATゲートウェイが受け取り、元のインスタンスへと適切に転送します。
この仕組みにより、外部のインターネットからはNATゲートウェイの背後にあるインスタンスの存在を直接知ることができず、不正なアクセスを防ぎながら、必要なアウトバウンド通信のみを実現できるのです。
EC2とVPCのセキュリティを担う2つの壁
AWSクラウド環境でアプリケーションを安全に運用するためには、堅牢なセキュリティ対策が不可欠です。特に、外部からの不正アクセスや意図しない情報漏洩を防ぐ上で、ファイアウォールの役割は極めて重要です。EC2とVPCの環境では、このファイアウォールの機能を提供する主要なサービスとして「セキュリティグループ」と「ネットワークACL」の2つが用意されています。これらは「2つの壁」として機能し、それぞれ異なる階層で通信を制御することで、多層的な防御を実現します。両者の違いを正しく理解し、適切に使い分けることが、セキュアなネットワーク構築の鍵となります。
セキュリティグループ EC2インスタンスを守るファイアウォール
セキュリティグループは、EC2インスタンスに直接関連付けられる仮想ファイアウォールです。インスタンス単位で、送受信されるトラフィック(インバウンドとアウトバウンド)を制御する役割を担います。家で例えるなら、個々の「部屋のドアの鍵」のような存在です。
セキュリティグループの最大の特徴は「ステートフル」である点です。ステートフルとは、一度許可したインバウンド通信(外から中への通信)に対する戻りのアウトバウンド通信(中から外への通信)を、ルールで明示的に許可しなくても自動的に許可する仕組みを指します。例えば、ユーザーがWebサーバー(EC2インスタンス)にアクセスするリクエストをインバウンドルールで許可した場合、その応答であるWebページのデータは、アウトバウンドルールがなくてもユーザーに返されます。この特性により、戻りの通信を意識する必要がなく、ルール管理がシンプルになります。
ルール設定においては、許可ルールのみを指定できます。つまり、「どの送信元から、どのプロトコルとポート番号の通信を許可するか」を定義します。明示的に許可されていない通信は、すべて自動的に拒否される「デフォルトDeny」の考え方に基づいています。これにより、必要な通信だけを許可する最小権限の原則を容易に実現できます。
ネットワークACL サブネット全体を守るファイアウォール
ネットワークアクセスコントロールリスト(ネットワークACLまたはNACL)は、VPC内のサブネットに関連付けられる仮想ファイアウォールです。サブネットに出入りするすべてのトラフィックを制御する役割を持ちます。セキュリティグループが「部屋のドアの鍵」なら、ネットワークACLはマンション全体の「エントランスの警備」に例えられます。サブネット内のすべてのEC2インスタンスに影響を及ぼす、より大きな範囲の防御壁です。
ネットワークACLの最大の特徴は「ステートレス」である点です。ステートレスとは、インバウンド通信とアウトバウンド通信をそれぞれ独立して評価することを意味します。つまり、インバウンドで許可した通信であっても、その戻りの通信がアウトバウンドルールで許可されていなければ、通信はブロックされます。例えば、外部からのHTTPリクエスト(ポート80)をインバウンドで許可した場合、サーバーからの応答が戻るためには、エフェメラルポート(1024-65535)へのアウトバウンド通信を明示的に許可するルールを追加する必要があります。
ルール設定では、「許可ルール」と「拒否ルール」の両方を設定できます。各ルールには1から32766までの「ルール番号」が割り当てられ、番号の小さい順に評価されます。通信が最初に一致したルールが適用され、それ以降のルールは評価されません。どのルールにも一致しなかった通信は、最後に存在する暗黙の拒否ルール(ルール番号「*」)によってすべて拒否されます。この仕組みにより、特定のIPアドレスからのアクセスを明示的に拒否する、といった柔軟な制御が可能です。
セキュリティグループとネットワークACLの使い分け
セキュリティグループとネットワークACLは、どちらもファイアウォールとして機能しますが、その特性と役割は大きく異なります。両者の違いを理解し、それぞれの長所を活かして組み合わせることが、効果的なセキュリティ対策に繋がります。
以下の表は、両者の主な違いをまとめたものです。
| 項目 | セキュリティグループ | ネットワークACL |
|---|---|---|
| 適用対象 | EC2インスタンス(ENI単位) | サブネット |
| 状態管理 | ステートフル(戻りの通信は自動的に許可) | ステートレス(戻りの通信も明示的な許可が必要) |
| 設定可能なルール | 許可ルールのみ | 許可ルールと拒否ルール |
| ルールの評価 | すべてのルールを評価 | ルール番号順に評価し、最初に一致したルールを適用 |
| デフォルトの挙動 | すべてのインバウンド通信を拒否、すべてのアウトバウンド通信を許可 | すべてのインバウンド・アウトバウンド通信を許可(カスタムNACLはすべて拒否) |
これらの違いを踏まえた一般的な使い分けのベストプラクティスは以下の通りです。
- 基本はセキュリティグループで制御: アプリケーションの要件に応じて、インスタンスごとに必要な通信(例えばWebサーバーならHTTP/HTTPS)のみを許可する、きめ細やかなアクセス制御はセキュリティグループで行います。ステートフルな特性により管理が容易なため、こちらを主軸に考えるのが一般的です。
- ネットワークACLは補助的な防御壁として: ネットワークACLは、サブネットレベルでの広範な防御に利用します。例えば、既知の悪意のあるIPアドレスや特定の国からのアクセスをサブネット全体でブロックしたい場合、ネットワークACLの「拒否ルール」が非常に有効です。また、組織のセキュリティポリシーとして、特定のポート(SSHなど)へのアクセスをサブネット全体で禁止する、といった統制にも役立ちます。
多くのケースでは、ネットワークACLはデフォルト設定(すべての通信を許可)のままにしておき、主なセキュリティ制御はセキュリティグループに委ねる構成で十分なセキュリティを確保できます。しかし、より高いセキュリティレベルが求められる環境では、ネットワークACLを積極的に活用し、セキュリティグループと組み合わせた多層防御を構築することが推奨されます。
【実践】図解で学ぶEC2とVPCを使ったネットワーク構築手順

ここまでの章で、EC2とVPCの基本的な概念や構成要素について学んできました。この章では、いよいよ実践編として、実際にAWSマネジメントコンソールを操作しながら、EC2インスタンスを配置するための基本的なネットワーク環境を構築していきます。各ステップを図で示しながら丁寧に解説しますので、初心者の方もぜひ一緒に手を動かしてみてください。今回は、インターネットからアクセス可能なWebサーバーを想定し、パブリックサブネットにEC2インスタンスを1台起動する構成を目指します。
ステップ1 VPCを作成する
はじめに、EC2インスタンスやその他のリソースを配置するための土台となる、プライベートなネットワーク空間「VPC」を作成します。AWSのサービスは常にアップデートされていますが、基本的な流れは同じです。
まず、AWSマネジメントコンソールにログインし、サービス検索窓に「VPC」と入力してVPCのダッシュボードを開きます。「VPCを作成」ボタンをクリックすると、VPCの作成画面が表示されます。
設定画面では、以下の項目を入力します。特に重要なのは「名前タグ」と「IPv4 CIDRブロック」です。
- リソースを作成: 「VPCなど」を選択します。これによりVPCと関連リソース(サブネット、ルートテーブルなど)をまとめて作成することもできますが、今回は学習のため「VPCのみ」を選択して一つずつ作成します。
- 名前タグ: 作成するVPCを識別するための名前です。例えば「My-VPC」のように、後から見て分かりやすい名前を付けましょう。リソースが増えてくると、この名前タグが管理のしやすさを大きく左右します。
- IPv4 CIDR ブロック: VPCに割り当てるプライベートIPアドレスの範囲をCIDR表記で指定します。ここでは一般的な例として「10.0.0.0/16」と入力します。これにより、10.0.0.0から10.0.255.255までの65,536個のIPアドレスがこのVPC内で利用可能になります。
- IPv6 CIDR ブロック: 今回は使用しないため、「IPv6 CIDR ブロックなし」のままで進めます。
- テナンシー: 「デフォルト」を選択します。これにより、EC2インスタンスは共有ハードウェア上で実行されます。特別な要件がない限り、デフォルトで問題ありません。
すべての項目を入力したら、「VPCを作成」ボタンをクリックします。これで、クラウド上にあなた専用のネットワーク空間が確保されました。
ステップ2 サブネットを作成する
次に、作成したVPCをさらに小さなネットワーク(サブネット)に分割します。サブネットに分割することで、リソースを目的ごと(例えば、公開用と非公開用)にグループ化し、それぞれに異なるアクセスポリシーを適用できます。
VPCダッシュボードの左側メニューから「サブネット」を選択し、「サブネットを作成」ボタンをクリックします。
今回は、インターネットに公開するEC2インスタンスを配置するための「パブリックサブネット」を1つ作成します。
- VPC ID: 先ほど作成した「My-VPC」を選択します。
- サブネット名: 「Public-Subnet-1a」のように、役割と配置するアベイラビリティーゾーンが分かる名前を付けると管理しやすくなります。
- アベイラビリティーゾーン: サブネットを配置する物理的なデータセンターを選択します。耐障害性を高める場合は複数のアベイラビリティーゾーンにサブネットを分散させますが、今回は任意の一つ(例: ap-northeast-1a)を選択します。
- IPv4 CIDR ブロック: VPCのCIDRブロック(10.0.0.0/16)の中から、このサブネットに割り当てるIPアドレス範囲を指定します。例えば「10.0.1.0/24」と入力します。これにより、10.0.1.0から10.0.1.255までの256個のIPアドレスが利用可能になります。
入力後、「サブネットを作成」をクリックします。この時点では、まだこのサブネットはプライベートな状態です。次のステップでインターネットへの経路を設定することで、「パブリックサブネット」としての役割を持つことになります。
ステップ3 インターネットゲートウェイを作成しVPCに接続する
VPC内のリソースがインターネットと通信するためには、「インターネットゲートウェイ(IGW)」という出入り口が必要です。IGWは、VPCとインターネット間の通信を可能にするためのコンポーネントです。
VPCダッシュボードの左側メニューから「インターネットゲートウェイ」を選択し、「インターネットゲートウェイの作成」ボタンをクリックします。
設定は非常にシンプルです。
- 名前タグ: 「My-IGW」のように分かりやすい名前を付けます。
名前を入力して「インターネットゲートウェイの作成」をクリックします。作成直後のIGWは、どのVPCにも接続されていない「detached」という状態です。これを使用可能にするには、VPCに接続(アタッチ)する必要があります。
作成したIGWを選択した状態で、画面右上の「アクション」メニューから「VPCにアタッチ」を選択します。アタッチ先のVPCとして、ステップ1で作成した「My-VPC」を選び、「インターネットゲートウェイのアタッチ」をクリックします。これでVPCにインターネットへの扉が取り付けられました。
ステップ4 ルートテーブルを設定する
VPCに扉(IGW)を取り付けただけでは、通信はまだインターネットへ向かいません。サブネット内のトラフィックがどこへ向かうべきかを示す「ルートテーブル(道案内役)」を設定する必要があります。
VPCダッシュボードの左側メニューから「ルートテーブル」を選択します。VPC作成時に自動で「メインルートテーブル」が1つ作成されていますが、今回はパブリックサブネット専用のルートテーブルを新規に作成します。
「ルートテーブルを作成」ボタンをクリックし、以下の項目を設定します。
- 名前タグ: 「Public-Route-Table」など、役割が分かる名前を付けます。
- VPC: 作成済みの「My-VPC」を選択します。
作成後、今作った「Public-Route-Table」を選択し、画面下部の「ルート」タブを開きます。「ルートを編集」をクリックし、新しいルートを追加します。
| 送信先 | ターゲット | 説明 |
|---|---|---|
| 10.0.0.0/16 | local | (デフォルトで存在するルート)VPC内部向けの通信 |
| 0.0.0.0/0 | インターネットゲートウェイ → (作成したMy-IGW) | (追加するルート)VPC内部以外(インターネット)向けの通信をIGWに転送 |
「送信先」に「0.0.0.0/0」(すべてのトラフィックを意味します)と入力し、「ターゲット」で先ほど作成した「My-IGW」を選択します。「変更を保存」をクリックすると、ルートが追加されます。
最後に、このルートテーブルをパブリックサブネットに関連付けます。「サブネットの関連付け」タブを開き、「サブネットの関連付けを編集」をクリック。ステップ2で作成した「Public-Subnet-1a」にチェックを入れ、「関連付けを保存」します。これで、このサブネットは名実ともに「パブリックサブネット」となりました。
ステップ5 EC2インスタンスをVPC内に起動する
いよいよ、構築したネットワーク上にEC2インスタンス(仮想サーバー)を起動します。AWSマネジメントコンソールで「EC2」サービスに移動し、「インスタンスを起動」をクリックします。
インスタンスの起動ウィザードに従い、各項目を設定していきます。
- 名前とタグ: インスタンスの識別名を付けます(例: My-Web-Server)。
- アプリケーションおよびOSイメージ (Amazonマシンイメージ – AMI): サーバーのOSテンプレートを選択します。ここでは、無料利用枠の対象である「Amazon Linux 2」や「Amazon Linux 2023」を選択します。
- インスタンスタイプ: サーバーのスペック(CPU、メモリなど)を選択します。こちらも無料利用枠の「t2.micro」を選択します。
- キーペア (ログイン): サーバーに安全に接続(SSH接続)するための鍵です。「新しいキーペアの作成」から作成し、ダウンロードしたpemファイルを大切に保管してください。すでにキーペアをお持ちの場合は、それを選択します。
- ネットワーク設定: ここが最も重要な設定です。「編集」ボタンをクリックして詳細を設定します。
- VPC: これまで作業してきた「My-VPC」が選択されていることを確認します。
- サブネット: 作成した「Public-Subnet-1a」を選択します。
- パブリックIPの自動割り当て: 「有効化」します。これを有効にすることで、インスタンスにパブリックIPアドレスが割り当てられ、インターネットから直接アクセスできるようになります。
- ファイアウォール (セキュリティグループ): 「新しいセキュリティグループを作成する」を選択します。セキュリティグループは、インスタンス単位の仮想ファイアウォールです。Webサーバーとして利用することを想定し、以下のルールを設定します。
セキュリティグループのインバウンドルール設定例 タイプ プロトコル ポート範囲 ソース 説明 SSH TCP 22 マイIP 自分のPCからサーバーを管理するためのSSH接続を許可 HTTP TCP 80 任意の場所 (0.0.0.0/0) 不特定多数のユーザーからのWebアクセスを許可
- ストレージを設定: デフォルト設定のままで問題ありません。
すべての設定が完了したら、右側の概要パネルで内容を確認し、「インスタンスを起動」ボタンをクリックします。数分待つと、インスタンスのステータスが「実行中」になり、パブリックIPアドレスが割り当てられます。このIPアドレスを使えば、Webブラウザからアクセスしたり、ターミナルからSSH接続したりすることが可能になります。
以上で、VPC内にEC2インスタンスを起動し、インターネットに公開するための一連のネットワーク構築手順は完了です。
まとめ
本記事では、AWSの基本サービスであるEC2とVPCの概要から、ネットワーク構築の実践手順までを網羅的に解説しました。EC2インスタンスは、VPCという安全な仮想ネットワーク上に構築することで、初めてセキュアかつ柔軟な通信制御が可能になります。これが、両者が常にセットで語られる理由です。
サブネット、ルートテーブル、セキュリティグループといった各コンポーネントの役割を正しく理解し、適切に設定することが、安全なインフラ構築の鍵となります。この記事を参考に、ぜひご自身のAWS環境でネットワーク構築に挑戦してみてください。

