
背景
業務で AWS の VPC に触れるようになった。サブネットを切り、EC2 を置き、ルートテーブルやセキュリティグループを設定する。こうした一連の作業を、最初は手順書やサンプルのコピペでこなしていた。動くには動く。けれど、自分が何をやっているのかを本質的には理解できていなかった。
そんなタイミングで『ネットワークはなぜつながるのか』を読んだ。狙いは特別なものではなく、「土台のネットワークの仕組みをちゃんと分かっておきたい」くらいの気持ちだった。
詰まっていた点・課題
VPC を触っていて、特にモヤモヤしていたのが次の2つだった。
- パブリックサブネット / プライベートサブネットが “種類” だと思っていた 最初は、サブネットにパブリックとプライベートという2タイプが存在していて、それを選んで作るものだと思い込んでいた。なぜこっちがパブリックで、こっちがプライベートなのか、本質が分かっていなかった。
- CIDR の設定を暗記とコピペで済ませていた
/24や/16といった表記の意味を理解しないまま、サンプルの値をそのまま貼り付けていた。なぜその値なのか、自分で決めるとしたら何を基準にすればいいのかが分からなかった。
本で得た知識
本で腹に落ちたのは、ネットワークの大原則だった。
- IP アドレスとサブネットの仕組み(どこまでがネットワーク部で、どこからがホスト部か)
- パケットの行き先はルーティングで決まるということ
特に「パケットが外に出るかどうかは、ルーター(経路)を持っているかで決まる」という当たり前の原理が、後で VPC の理解に直結した。
理解のブレイクスルー:自宅のネットワークに対応づける
読んだ知識を VPC に当てはめるとき、自宅のネットワーク構造に対応づけると一気に頭に入った。
ポイントは、家庭用ルーターを「1台のルーター」と捉えないことだった。家庭用ルーターは実は「経路の判断・外への出口・NAT」を1台でこなす多機能機で、AWS ではこの役割が別々のサービスに分かれている。役割ごとに分解して対応づけると、きれいに腹落ちした。
| 自宅 | VPC | 役割 |
|---|---|---|
| ルーターの経路判断 | ルートテーブル(VPCの暗黙ルーター) | パケットをどこへ送るかを決める頭脳 |
| ルーターの「外への出口」 | IGW(インターネットゲートウェイ) | インターネットとの出入口 |
| ルーターの NAT 機能 | NAT Gateway | プライベートな機器が外向き通信するときの代理人 |
| 自分の PC | プライベートサブネットの EC2 | プライベートIPを持ち、外から直接は叩かれない機器 |
自宅の PC はプライベートIPしか持たないが、ルーターの NAT を通じて外向きの通信はできる。一方で、外から直接叩かれることはない。VPC でこれと同じ振る舞いをさせるのが、プライベートサブネットの EC2 + NAT Gateway の組み合わせだ。「外からは守られているが、自分からは外に出ていける」という感覚が、自宅の PC とぴったり一致した。
核の気づき:サブネットに “種類” はない
アナロジーで考えたことで、ずっとモヤモヤしていた点がほどけた。
サブネットにパブリック/プライベートという種類はない。外(IGW)への経路を持つかどうかで、パブリックにもプライベートにもなるだけ。
ルートテーブルに IGW へのルートがあればパブリックとして振る舞い、なければプライベートとして振る舞う。プライベートでも外向きの通信が必要なら、IGW の代わりに NAT Gateway へのルートを持たせればいい。どう振る舞うかは、すべて「どの経路を持たせるか」で決まる。これは本で学んだ「パケットの行き先はルーティングで決まる」という原理そのものだった。抽象化された AWS のサービスの裏に、ちゃんとネットワークの原理が透けて見えた瞬間だった。
変わったこと:CIDR に本質的に向き合えるようになった
土台が分かると、コピペで済ませていた CIDR の設定にも意味を持って向き合えるようになった。
いちばん変わったのは CIDR の見方だ。以前は /24 や /16 を、サンプルからそのまま写す呪文のように扱っていた。いまは「/24 ならこのサブネットで使える IP はおよそ250個」というふうに、末尾の数字を IP の個数として読めるようになった。レンジを決めるときも、コピペした値をそのまま使うのではなく、このサブネットにどれくらい機器を置くのかを考えてから選べる。設定の一つひとつに理由を持てるようになった、という感覚が大きい。
学び・教訓
クラウドのサービスは便利に抽象化されているぶん、意味を分からなくても “動かせて” しまう。でも、その土台にあるネットワークの原理を知っていると、暗記とコピペが「理解」に変わる。
抽象化されたものに向き合うときこそ、一段下のレイヤーの基礎が効く。この本を読んでいちばんの収穫は、そういう実感を得られたことだった。
用語注
この記事に出てくる用語を、ざっくり補足しておく。
- VPC(Virtual Private Cloud) … AWS 上に作る、自分専用の仮想ネットワーク空間。この中にサーバーなどを配置していく。
- サブネット … VPC の中をさらに区切った小さなネットワークの単位。「VPC という敷地を、用途ごとに区画分けしたもの」とイメージするとよい。
- パブリックサブネット / プライベートサブネット … インターネットと直接やりとりできる区画/できない区画。本文のとおり、これは “種類” ではなく、ルートテーブルの設定で決まる振る舞いの呼び名。
- IP アドレス … ネットワーク上の機器に割り当てられる住所。前半がどのネットワークかを示す「ネットワーク部」、後半が機器個別を示す「ホスト部」に分かれる。
- CIDR(サイダー) … IP アドレスの範囲を
192.168.0.0/24のように表す書き方。末尾の/24などの数字(プレフィックス長)が「先頭から何ビットがネットワーク部か」を表し、これによって使える IP アドレスの個数が決まる(数字が小さいほど広い)。 - ルーティング … パケット(通信データ)を宛先までどの経路で送るかを決める仕組み。
- ルートテーブル … 「この宛先へはここに送る」という経路のルールをまとめた表。サブネットがどう通信するかは、これに何を書くかで決まる。
- IGW(Internet Gateway / インターネットゲートウェイ) … VPC とインターネットをつなぐ出入口。
- NAT Gateway … プライベートな機器が、外から直接アクセスされることなく外向きの通信だけを行えるようにする仕組み。家庭用ルーターの NAT 機能にあたる。
- EC2 … AWS 上で動かす仮想サーバー。サブネットの中に配置する。
- セキュリティグループ … EC2 などに対する通信を許可・拒否するファイアウォール(仮想的な防火壁)。