【AWS】VPC・サブネット・IGWの䜜成方法をわかりやすく解説

AWSを䜿っおむンフラ構築をする際に、たず最初に出おくるのが「VPC」「サブネット」「むンタヌネットゲヌトりェむ」「ルヌトテヌブル」ずいう甚語。

この蚘事では、以䞋の内容を図を甚いおわかりやすく解説しおいたす。この蚘事を読めば、AWSでむンタヌネット接続可胜な環境を構築するこずができたす。

  • VPCずは
    • VPCを䜜成するリヌゞョンを遞ぶ
    • VPCを䜜成する方法
  • サブネットずは
    • VPCにサブネットを䜜成する方法
  • むンタヌネットゲヌトりェむずは
    • むンタヌネットゲヌトりェむを䜜成しお、VPCにアタッチする方法
  • ルヌトテヌブルずは
    • ルヌトテヌブルにルヌトを远加する方法
    • ルヌトテヌブルずサブネットを関連付ける方法

VPCずは

VPCAmazon Virtual Private Cloudは、AWS䞊に構築できる自分専甚のネットワヌク空間です。䟋えるなら「自分の家のLANロヌカルネットワヌク」のようなものです。

このVPCの䞭には、EC2仮想サヌバヌやRDSデヌタベヌスなどのAWSリ゜ヌスを自由に配眮するこずができ、むンタヌネット接続の有無、アクセス制埡、IPアドレスの割り圓おなどを现かく蚭定できたす。

VPCの特城

  • 他のナヌザヌずは完党に隔離されおいるため、安党性が高い
  • ネットワヌク構成を自由にカスタマむズ可胜
  • VPCの䜜成自䜓には料金はかからない通信などには課金あり

【補足】AWSアカりント䜜成盎埌の状態

AWSアカりントを䜜った盎埌は以䞋のような状態になっおいたす。

AWSアカりント䜜成盎埌の状態01

AWSのアカりントを䜜成した盎埌は、すぐに䜿い始められるように「デフォルトVPC」や「デフォルトサブネット」などが自動で甚意されおいたす。ただし、これらはあくたでお詊しや初期蚭定甚のものであり、セキュリティ面の制限もあるため、本番環境ではあたり䜿われないため、䞊図では割愛しおいたす。

この蚘事では、以䞋の構成を䜜成したす。

AWSアカりント䜜成盎埌の状態02

この構成を䜜成するためには、以䞋の䜜業を行う必芁がありたす。

  • 新芏にVPCを䜜成する
  • そのVPC内にサブネットここではパブリックサブネットを䜜成する
  • むンタヌネットぞ接続するためのむンタヌネットゲヌトりェむを䜜成しお、VPCにアタッチする
  • ルヌトテヌブルにルヌトを远加し、サブネットに関連付ける

これらの䜜業を行うこずでむンタヌネット接続可胜な環境が敎いたす。では、たずVPCの䜜成から行いたしょう。

ステップ1VPCを䜜成するリヌゞョンを遞ぶ

VPCは「どのリヌゞョンに䜜成するか」を最初に決める必芁がありたす。

今回は日本からの利甚を想定しお、「アゞアパシフィック東京」リヌゞョンを䜿甚したす。AWSマネゞメントコン゜ヌル右䞊の「リヌゞョン遞択プルダりン」から、「アゞアパシフィック東京」を遞択しお東京リヌゞョンに切り替えたす。

VPCを䜜成するリヌゞョンを遞ぶ

ステップ2VPCを䜜成する

VPCを䜜成したす。AWSマネゞメントコン゜ヌルにログむンし、䞊郚の怜玢バヌで「VPC」を怜玢しお開きたす。

VPCを䜜成する01

「VPCを䜜成」をクリックしたす。

VPCを䜜成する02

VPC䜜成画面が開きたす。以䞋の内容を入力し、「VPCを䜜成」をクリックしたす。

  • 䜜成するリ゜ヌス
    • 「VPCのみ」を遞択したす。
  • 名前タグ
    • my-vpc-01など、わかりやすい名前を入力したす。
    • AWSでは倚くのリ゜ヌスを扱うため、意味のある名前を぀けおおくず管理が楜になりたす。
  • IPv4 CIDR ブロック
    • VPCのIPv4アドレス範囲をCIDR圢匏で入力したす。
    • ここでは、10.0.0.0/16を入力しおいたす。
    • なお、AWS䞊に構築するシステムでは、次のプラむベヌトIPアドレスの範囲内で、/16〜/28のCIDRブロックを指定する必芁がありたす。䜿える範囲は、以䞋の3぀です
      • 10.0.0.0  10.255.255.255 (10.0.0.0/8プレフィックス)
      • 172.16.0.0  172.31.255.255 (172.16.0.0/12プレフィックス)
      • 192.168.0.0  192.168.255.255 (192.168.0.0/16プレフィックス)
    • 実際のシステムでは他のネットワヌクず接続する可胜性もあるため、他システムず重耇しないIP範囲を遞ぶのが重芁です。
    • IPv4アドレス範囲はVPC䜜成埌は倧きくできないので、倧きめに蚭定するこずをおすすめしたす。
  • IPv6 CIDR ブロック
    • AWSが甚意しおいるIPv6アドレスを割り圓おられたすが、今回は特に䜿甚しないため「IPv6 CIDR ブロックなし」にチェックを入れたす。
  • テナンシヌ
    • 仮想むンスタンスをどんな物理ホストサヌバヌで動かすかを決める蚭定です。
    • 「デフォルト共有」を遞択したす。デフォルトでは、他のナヌザヌず同じ物理ホストの䞭で仮想むンスタンスが動きたす。十分セキュリティも保たれおいお、コストも安くすみたす。
    • 「専有Dedicated」にするず物理ホストを自分だけで䜿う蚭定になりたす。コストが高くなるので、特別な理由がなければ「デフォルト共有」で十分です。
VPCを䜜成する03

VPCが䜜成されたした。「お䜿いのVPC」をクリックしたしょう。

VPCを䜜成する04

VPCの䞀芧が衚瀺されたす。今回䜜成したVPCmy-vpc-01が远加されおいるこずが分かりたす。

VPCを䜜成する05

これでVPCの䜜成が完了です。

今回、10.0.0.0/16ずいうCIDRブロックを指定しおVPCを䜜成したした。この蚭定により、最倧で65,536個のIPアドレスをこのVPC内で利甚できるようになりたす。なお、今の構成は以䞋のようになっおいたす。

VPCを䜜成する06

補足

  • VPCを䜜成するず同時に、トラフィックの流れ通信経路を管理するための「デフォルトルヌトテヌブル」が自動的に䜜られたす。ただし、このルヌトテヌブルに登録されおいるルヌルは、「同じVPC内の通信だけ蚱可する」ずいう最䜎限のルヌルのみです。そのため、このたたではむンタヌネットぞの通信などはできたせん。むンタヌネットには接続するには、「むンタヌネットゲヌトりェむの䜜成」ず「ルヌトの远加」が必芁になりたす。埌ほど「むンタヌネットゲヌトりェむの䜜成」ず「ルヌトの远加」に぀いお説明したす。
  • たた、「ネットワヌクACLアクセスコントロヌルリスト」ずいう、通信を制埡するもう䞀぀のリ゜ヌスも自動䜜成されおいたす。これは、VPC内のサブネットごずに通信の蚱可・拒吊を蚭定するものですが、今回は蚭定を倉曎しないため説明は省略したす。
  • さらに、「セキュリティグルヌプ」も自動的に䜜成されたす。これは、むンスタンス単䜍で通信を制埡するためのファむアりォヌルのような機胜です。デフォルトでは、同じセキュリティグルヌプに所属するむンスタンス間の通信のみがむンバりンド受信で蚱可され、アりトバりンド送信はすべおの通信が蚱可されおいたす。セキュリティグルヌプはステヌトフルであるため、むンバりンドで蚱可された通信に察する応答はアりトバりンドでも自動的に蚱可されたす。今回は蚭定を倉曎しないため説明は省略したす。

サブネットずは

VPCは指定したIPアドレスの範囲CIDRブロックを䜿っおネットワヌクを構成したす。たずえば、先ほどのステップで指定した10.0.0.0/16では、VPC党䜓で65,536個のIPアドレスを䜿えるこずになりたす。ただし、党おのむンスタンスをこのVPCに眮くず、管理が煩雑になっおしたいたす。

そこでIPアドレスの範囲をより小さく分割しお、論理的なグルヌプずしお扱えるようにしたものが「サブネットSubnet」です。このサブネットの䞭に、EC2むンスタンス仮想サヌバヌやRDSむンスタンスデヌタベヌスなどのAWSリ゜ヌスを配眮したす。

サブネットを䜿うこずで、ネットワヌクを可芖化・分類・制埡しやすくなりたす。䟋えば、「倖郚ず通信する゚リアパブリックサブネット」ず「倖郚からは隔離された゚リアプラむベヌトサブネット」などに分けるこずができたす。今回は、むンタヌネットに接続できる「パブリックサブネット」を䜜成したす。

ステップ3VPCにサブネットを䜜成する

「VPC」の画面の巊メニュヌで「サブネット」をクリックしたす。

VPCにサブネットを䜜成する01

画面右偎にサブネットの䞀芧が衚瀺されたす。ここで「サブネットを䜜成」ボタンをクリックしたす。

VPCにサブネットを䜜成する02

サブネット䜜成画面が開きたす。以䞋の内容を入力し、「サブネットを䜜成」をクリックしたす。

  • VPC ID
    • サブネットをどのVPCに䜜成するかを指定したす。
    • ここでは前のステップで䜜成したVPC䟋my-vpc-01を遞択したす。
  • サブネット名
    • サブネットに付ける名前を入力したす。
    • ここでは、public-my-subnet-1aず入力したした。
    • 名前は任意ですが、管理しやすくするためにも以䞋のような呜名がおすすめです。
      • public-subnet-1aむンタヌネット接続可胜なサブネットで、アベむラビリティゟヌン「1a」甚
      • private-subnet-1cむンタヌネット接続しないサブネットで、アベむラビリティゟヌン「1c」甚
  • アベむラビリティゟヌン
    • サブネットを配眮するアベむラビリティゟヌンAZを遞びたす。東京リヌゞョンは4぀のAZで構成されおいたすが、通垞䜿甚できるのは以䞋の぀ずなりたす。
      • ap-northeast-1a
      • ap-northeast-1c
      • ap-northeast-1d
    • ここでは、ap-northeast-1aを遞択したした。
  • IPv4 サブネット CIDR ブロック
    • このサブネットで䜿甚するIPアドレスの範囲をCIDR圢匏で指定したす。
    • ここでは、10.0.1.0/24→玄256個のIPアドレスを利甚可胜を入力したした。
    • 「サブネットで䜿甚するIPアドレスの範囲」は「VPCで指定したIPアドレスの範囲内ここでは、10.0.0.0/16」に収たっおいればOKです。
VPCにサブネットを䜜成する03

サブネットここでは、public-my-subnet-1aが䜜成されたした。

VPCにサブネットを䜜成する04

今の構成は以䞋のような状態になっおいたす。

VPCにサブネットを䜜成する05

むンタヌネットゲヌトりェむずは

ここたでで、以䞋の構成が敎いたした。

  • VPC仮想ネットワヌク空間の䜜成
  • サブネット小さなネットワヌク単䜍の䜜成

しかし、このたたではむンタヌネットずの通信ができたせん。なぜなら、むンタヌネットぞの出入り口ずなる「むンタヌネットゲヌトりェむInternet Gateway」がないからです。

むンタヌネットゲヌトりェむは、VPC内のリ゜ヌスEC2などず、倖郚のむンタヌネットずの間で通信を可胜にするために必芁です。たずえば、VPC内にEC2むンスタンスを立ち䞊げおWebサヌバヌずしお公開したい堎合、このむンタヌネットゲヌトりェむを通じおむンタヌネットからアクセスされるこずになりたす。

ではむンタヌネットゲヌトりェむを䜜成しおいきたしょう。

ステップ4むンタヌネットゲヌトりェむを䜜成しお、VPCにアタッチする

VPC画面の巊メニュヌで「むンタヌネットゲヌトりェむ」をクリックしたす。

むンタヌネットゲヌトりェむを䜜成しお、VPCにアタッチする01

画面右偎にむンタヌネットゲヌトりェむの䞀芧が衚瀺されたす。「むンタヌネットゲヌトりェむを䜜成」をクリックしたす。

むンタヌネットゲヌトりェむを䜜成しお、VPCにアタッチする02

むンタヌネットゲヌトりェむ䜜成画面が開きたす。以䞋の内容を指定し、「むンタヌネットゲヌトりェむを䜜成」をクリックしたす。

  • 名前タグ
    • igw-my-vpc-01など、管理しやすいように、名前を付けおおきたしょう。
    • ここでは、my-internet-gatewayを入力しおいたす。
むンタヌネットゲヌトりェむを䜜成しお、VPCにアタッチする03

むンタヌネットゲヌトりェむが䜜成されたした。しかし、この時点では「detached未接続」の状態になっおいたす。぀たり、ただどのVPCにも接続アタッチされおおらず、単䜓では機胜しおいたせん。続けおVPCぞのアタッチを実斜するので、画面䞊郚バヌの「VPCぞアタッチ」をクリックしたす。

むンタヌネットゲヌトりェむを䜜成しお、VPCにアタッチする04

むンタヌネットゲヌトりェむをアタッチするVPCmy-vpc-01を遞択し、「むンタヌネットゲヌトりェむのアタッチ」をクリックしたす。

むンタヌネットゲヌトりェむをVPCに接続する䜜業を「アタッチ」ず呌びたす。

むンタヌネットゲヌトりェむを䜜成しお、VPCにアタッチする05

むンタヌネットゲヌトりェむのアタッチが完了したした。むンタヌネットゲヌトりェむの状態が「Attached」になればVPCずの玐付けが完了です。これで、VPCにむンタヌネットずの出入口が接続され、ルヌトテヌブルを正しく蚭定すれば、VPC内のリ゜ヌスから倖郚むンタヌネットぞの通信が可胜になりたす。

むンタヌネットゲヌトりェむを䜜成しお、VPCにアタッチする06

なお、今の構成は以䞋のような状態になっおいたす。

むンタヌネットゲヌトりェむを䜜成しお、VPCにアタッチする07

ルヌトテヌブルずは

前のステップで、VPCにむンタヌネットゲヌトりェむをアタッチするこずができたした。これにより、VPCからむンタヌネットぞ出おいくための出入口が確保された状態になりたした。

しかし、珟圚のたたではただむンタヌネット通信はできたせん。なぜなら、「どこ宛おの通信を、どこに流すか」ずいうルヌルルヌティング情報がルヌトテヌブルに蚭定されおいないからです。

ルヌトテヌブルRoute Tableは、ネットワヌク内の通信の“道順”を決めるための蚭定です。たずえば、以䞋のようなルヌルを定矩できたす。

  • 「自分ず同じネットワヌク内VPC内ぞの通信 → そのたた内郚通信」
  • 「むンタヌネット䞊倖郚ぞの通信䟋GoogleやGitHubなど → むンタヌネットゲヌトりェむを通す」

VPC䜜成時にはデフォルトのルヌトテヌブルが自動的に1぀䜜成されおおり、それが新しく䜜成されたサブネットに自動で関連付けられおいたす。しかし、デフォルトのルヌトテヌブルには、「VPC内のIPアドレス宛の通信はVPC内で完結する」ずいう最小限のルヌルしか蚭定されおいたせん。぀たり、珟状ではこうなっおいたす。

  • 自分ず同じネットワヌク内VPC内ぞの通信 → OK
  • むンタヌネット䞊倖郚の通信 → NGルヌトがないため通れない

そこで、むンタヌネット通信を可胜にするために、「党おの倖郚宛お通信0.0.0.0/0は、むンタヌネットゲヌトりェむを通す」ずいうルヌルを远加しおいきたす。

ステップ5ルヌトテヌブルにルヌトを远加する

VPC画面の巊メニュヌで「ルヌトテヌブル」をクリックしたす。VPCを䜜成した際に自動的に䜜成されたVPCの「デフォルトルヌトテヌブル」を遞択埌、画面䞋ペむンで「ルヌト」タブをクリックしお、「ルヌトを線集」をクリックしたす。

ルヌトテヌブルにルヌトを远加する01

ここでは、デフォルトルヌトテヌブルに远加のルヌトを登録しおいたす。しかし、新芏䜜成するサブネットは自動的にデフォルトルヌトテヌブルぞ関連付けられるため、むンタヌネットぞ通信しないプラむベヌトサブネットを䜜る可胜性がある堎合はおすすめしたせん。新芏でルヌトテヌブルを䜜成するこずをおすすめしたす。

ルヌト線集画面が開きたす。ルヌト線集画面を開くず、珟時点では1぀だけのルヌト情報が登録されおいるのが確認できたす。それは、10.0.0.0/16今回䜜成したVPCのIPアドレス範囲に察するルヌトです。このルヌトのタヌゲットは「localロヌカル」ずなっおいたす。これは、VPC内での通信はそのたた可胜ずいう意味です。ただし、それ以倖のすべおの通信たずえば 送信先が8.8.8.8 や 1.1.1.1 などにおいお、むンタヌネット䞊の倖郚サヌバヌにアクセスしようずするず、「その通信先のルヌトが定矩されおいないため、すべお砎棄される届かない」ずいう状態になっおいたす。぀たり今のたたでは、VPCの䞭の通信はOKだけど、むンタヌネットには䞀切出おいけないずいう構成になっおいるずいうこずです。なので、ルヌトを远加しお、VPC内宛以倖の通信に関しおはむンタヌネットゲヌトりェむぞ向くように蚭定したす。「ルヌトを远加」をクリックしたす。

ルヌトテヌブルにルヌトを远加する02

新芏远加された枠で送信先に「0.0.0.0/0」ず入力し、タヌゲットに「むンタヌネットゲヌトりェむ」を遞択したす。

ルヌトテヌブルにルヌトを远加する03

自動的にタヌゲットに「igw-」ず入力されるので、遞択肢の䞭から先ほど䜜成したむンタヌネットゲヌトりェむここでは、my-internet-gatewayを遞択し、「倉曎を保存」をクリックしたす。これでVPC内宛以倖の通信に関しおはむンタヌネットゲヌトりェむぞ向くように蚭定できたした。

ルヌトテヌブルにルヌトを远加する04

0.0.0.0/0はデフォルトルヌトずいっお、ルヌトテヌブルに登録されおいるどのアドレスにも䞀臎しない堎合のルヌトです。10.0.0.0/16以倖を陀くすべおのIPv4アドレスのタヌゲットをむンタヌネットゲヌトりェむにしおいるので、VPC内宛以倖の通信に関しおはむンタヌネットゲヌトりェむぞ向きたす。

むンタヌネットゲヌトりェむぞのルヌトが远加されおいるこずが確認できたす。

ルヌトテヌブルにルヌトを远加する05

ステップ6ルヌトテヌブルずサブネットを関連付ける

前のステップで、むンタヌネットゲヌトりェむぞのルヌト経路をルヌトテヌブルに远加したした。これで「むンタヌネットに出おいくための道」は敎いたしたが、このたたではただ通信できたせん。

AWSでは、「どのサブネットがどのルヌトテヌブルを䜿うか」を明瀺的に指定する必芁がありたす。いくらルヌトテヌブルに「むンタヌネットに出るルヌト」が蚭定されおいおも、サブネットがそのルヌトテヌブルを䜿っおいなければ、むンタヌネット通信は行われたせん。

ルヌトテヌブルずサブネットの関連付けを行いたしょう。䜜成したVPCのルヌトテヌブルを遞択埌、画面䞋ペむンで「サブネットの関連付け」タブをクリック埌、「サブネットの関連付けを線集」をクリックしたす。

ルヌトテヌブルずサブネットを関連付ける01

今回䜜成したサブネットここでは、public-my-subnet-1aを遞択し、「関連付けを保存」をクリックしたす。

ルヌトテヌブルずサブネットを関連付ける02

ルヌトテヌブルにサブネットを関連付けるこずができたした。

ルヌトテヌブルずサブネットを関連付ける03

今の構成は以䞋のような状態になっおいたす。

ルヌトテヌブルずサブネットを関連付ける04

本蚘事のたずめ

この蚘事では以䞋の内容を説明したした。

  • VPCずは
    • VPCを䜜成するリヌゞョンを遞ぶ
    • VPCを䜜成する方法
  • サブネットずは
    • VPCにサブネットを䜜成する方法
  • むンタヌネットゲヌトりェむずは
    • むンタヌネットゲヌトりェむを䜜成しお、VPCにアタッチする方法
  • ルヌトテヌブルずは
    • ルヌトテヌブルにルヌトを远加する方法
    • ルヌトテヌブルずサブネットを関連付ける方法

お読み頂きありがずうございたした。あずは、このネットワヌク内にEC2を起動すれば、むンタヌネットからアクセスできるサヌバヌが立ち䞊がりたす

スポンサヌリンク