本文へスキップ
BecomeCoder

AWSコース · 第6章 ネットワーク · レッスン31

サブネット・ルートテーブル・ゲートウェイ

導入

VPCという敷地ができても、そのままでは何も動きません。敷地の中を区画に分け、どこがインターネットに面していて、どこが面していないかを決める必要があります。

説明

VPCの内部は、サブネットという単位でさらに区切って使います。

  • パブリックサブネット … インターネットゲートウェイ経由でインターネットと直接通信できるサブネット。Webサーバーなど、外部からアクセスされる必要があるリソースを置く。
  • プライベートサブネット … インターネットから直接アクセスできないサブネット。データベースなど、外部に直接さらしたくないリソースを置く。

通信の出入り口となるのが次の2つのゲートウェイです。

  • インターネットゲートウェイ(IGW) … VPCとインターネットの間の双方向の出入り口。パブリックサブネットのリソースが外部と通信するために使う。
  • NATゲートウェイ … プライベートサブネットのリソースが、外部からは直接アクセスされずに、自分からインターネット側へ出ていく(例:ソフトウェアの更新を取りに行く)ための一方向の出口。

そして、どの通信をどこへ送るかを決めるのがルートテーブルです。サブネットごとに関連付けられ、「この宛先の通信はこのゲートウェイへ」という経路(ルート)の一覧を持ちます。

flowchart TB
    Internet(("インターネット"))
    subgraph VPC["VPC"]
        IGW["インターネット\nゲートウェイ"]
        subgraph Public["パブリックサブネット"]
            Web["Webサーバー(EC2)"]
        end
        subgraph Private["プライベートサブネット"]
            DB["データベース(RDS)"]
            Nat["NATゲートウェイ"]
        end
    end
    Internet <--> IGW
    IGW <--> Web
    Private -->|外へ出るときだけ| Nat
    Nat --> IGW

Webサーバーはパブリックサブネットに置いて外部からのアクセスを受け付け、データベースはプライベートサブネットに置いて外部から直接アクセスできないようにする——この組み合わせが、Webアプリケーションの定番の構成です。

具体例

先ほどの 10.0.0.0/16 の敷地に、ネットショップを配置してみましょう。

  • Webサーバー(EC2)→ パブリックサブネット … お客さんがブラウザでアクセスする必要があるので、インターネットゲートウェイ経由で外と通信できる区画に置く。
  • データベース(RDS)→ プライベートサブネット … 顧客情報やクレジット情報を持つので、インターネットから直接は絶対に触れない区画に隔離する。Webサーバーからだけアクセスできる。

ここで困りごとが1つ。プライベートのDBサーバーも、OSのセキュリティ更新は取りに行きたい。でも外からは触られたくない。この「自分から出るのはOK、外から入られるのはNG」を実現するのがNATゲートウェイです。DBは更新を取りに行くときだけNAT経由で外へ出ていき、外部からの侵入口にはなりません。

「外に開くWebは表通り(パブリック)、守りたいDBは奥の部屋(プライベート)、奥からの買い出しは勝手口(NAT)」——この間取りが定番構成です。

読んでみよう

「IGWは双方向の玄関、NATゲートウェイはプライベート側から外へ出るための一方通行の勝手口」という違いは頻出ポイントです。

次のレッスンへ →