中級では VPC を「サブネットに小分けし、ルートテーブルとゲートウェイと門番で制御する」と捉えました。上級では、そのルートテーブルが何をキーに経路を選ぶか・出口が3種類あること・2種類の門番の性質差・区画どうしを閉域でつなぐ方法・重複しないCIDR設計まで、区画を「組み立てる」目線で掘り下げます。
概要 — まず全体をつかむ
アニメーション『VPCとサブネット(公開/非公開)』を開く
詳細 — 1段階ずつ追う
ルートテーブルの最長一致
ルートテーブル(※1)は「宛先レンジ → ターゲット」の対応表です。要点は、複数のエントリに宛先が一致したときどれを選ぶかという規則にあります。
- 原則は 最長一致(ロンゲストマッチ)——プレフィックスが長い(=範囲が狭い)経路ほど優先される
- 例として
0.0.0.0/0 → NATゲートウェイ(全部の外向きはNAT経由)と10.0.5.0/24 → ピアリング接続(この範囲だけ相手VPCへ)を同居させると、10.0.5.x宛だけがピアリングへ、それ以外はNATへ流れる - ターゲットには local(VPC内は無条件で到達)・インターネットゲートウェイ・NATゲートウェイ・ピアリング・エンドポイントなどが入る
「全体のデフォルトを引きつつ、特定レンジだけ上書きする」——最長一致だからこそ、この重ね書きが素直に表現できます。ネットワークの層 で見たルーティングの考え方が、そのままクラウドの区画内に持ち込まれているわけです。
3種類の出口
外との出口は用途で3つに分かれます。ここを取り違えると「隠すはずのDBが出られてしまう/出たいのに出られない」が起きます。
- インターネットゲートウェイ(IGW) — パブリックサブネット用の双方向の出口。パブリックIPを持つインスタンスが外と直接やり取りできる
- NATゲートウェイ — プライベートサブネット用。内から外へ出るときだけ通し、外からの新規接続は入れない。DBを公開せずに更新通信だけ許すのに使う
- egress-onlyインターネットゲートウェイ — IPv6専用の外向き片方向の出口。IPv6はアドレスが枯渇しないためNAT(アドレス変換)の必要がなく、代わりに「外からの新規接続は塞ぐが、内から外へは出せる」専用装置が用意されている
アニメーション『NAT(プライベートIPを公開IPに変換)』を開く
なぜIPv6だけ別物か。NATはそもそも足りないIPv4を使い回すための変換で、その副作用として外からの入りを塞いでいました。IPv6ではアドレスが潤沢なので変換が要らず、「外からの入りを塞ぐ」という目的だけを取り出したのが egress-only です。仕組みの由来を追うと、名前の違いが腑に落ちます。詳しくは NATとポート を参照。
2種類の門番 — ステートフルとステートレス
門番も性質が根本から違う2種類があり、多層で重ねて使います。
- セキュリティグループ(SG) — インスタンス単位の門番。ステートフル(※2)で、いったん許可した接続の戻りの通信は自動で通る。書けるのは許可(allow)だけ
- ネットワークACL(NACL) — サブネット単位の門番。ステートレス(※3)で、往路と復路を別々に許可する必要がある。拒否(deny)も書けるので「この一部レンジだけ遮断」が可能
使い分けの定石は「通常の許可制御はSGで細かく・広域の遮断はNACLで粗く」。SGはステートフルなので戻りを気にせず書け、運用が素直です。NACLは往復を別々に書く手間があるぶん、特定レンジの明示的ブロックのようなSGでは書けない拒否を担います。この2枚を重ねるのが多層防御の基本形です。
区画どうしを閉域でつなぐ
VPCは孤立した区画ですが、他の区画やサービスとインターネットを経由せずつなぐ手段があります。
- VPCピアリング — 2つのVPCを1対1で直結する。互いのプライベートIPで通信でき、トラフィックは外部を通らない。注意点としてCIDRが重複していると張れない(宛先が一意に決まらないため)
- VPCエンドポイント/PrivateLink — マネージドサービス(ストレージやDBなど)へ、VPCの中から閉域で到達する入口。インターネットゲートウェイもNATも通らず、サービスへの通信が外に出ない
- ピアリングは推移しない——AとB、BとCがつながっていても、AからCへは直接届かない(必要なら個別に張るかハブ構成にする)
「つながればいい」ではなく「経路を外に晒さずにつなぐ」のが閉域接続の狙いです。クラウド 上の本番構成では、DBやストレージへの通信をこうして閉域化するのが定石になっています。
CIDR設計と可用性
区画を組み立てる土台がアドレス設計です。中級で触れたCIDRを、設計の観点で深掘りします。
アニメーション『IPアドレスの構造(ネットワーク部とホスト部)』を開く
- 重複回避 — VPCのCIDRは、後でピアリングや社内ネットワークとつなぐ相手と重ならない範囲を最初に選ぶ。一度動かすと変更は困難なので、将来の接続先まで見越して割り当てる
- サブネット分割 — VPCの
/16を、用途とAZごとに/24などへ切り分ける。パブリック/プライベートを分け、さらにAZごとに別サブネットを用意する - 予約アドレス — サブネットの先頭・末尾の数個はクラウド側が予約するため、使える数は「2のべき−予約分」になる。ぎりぎりで切ると足りなくなる
そして可用性はマルチAZ配置で確保します。1つのアベイラビリティゾーン(※4)に固めると、そのゾーン障害でサービスが丸ごと止まります。サブネットをAZごとに分け、同じ役割のサーバを複数AZに散らして置くことで、片方が倒れてももう片方で受けられる——区画設計と可用性は地続きです。
やさしく言うと(中級)
CIDR はアドレス範囲の指定方法です。/16 は広い範囲、/24 は狭い範囲——数字が大きいほど区画は小さくなります。「どこまでが同じネットワークか」の考え方は、下の図が助けになります。
アニメーション『IPアドレスの構造(ネットワーク部とホスト部)』を開く
門番は2種類あります。
- セキュリティグループ — サーバ単位の門番。許可したい通信を書く(戻りは自動で通る)
- NACL — サブネット単位の門番。許可も拒否も書け、行き帰りを別々に見る
そして外への出口は使い分けます。パブリックは インターネットゲートウェイで双方向に外とやり取り。プライベートは NATゲートウェイ経由で、内から外へ出るときだけ通します(外からの新規接続は入れない)。「Webはパブリック、DBはプライベート」——これが安全設計の定石です。
⚠️ 深いところの落とし穴
- 最長一致の見落とし — 意図せず狭いレンジの経路が全体設定を上書きし、一部の通信だけ想定外の出口へ流れる
- CIDR重複でピアリング不能 — 設計時に範囲がぶつかると、後からVPC同士をつなげない(アドレスの引き直しは大工事)
- NACLのステートレス忘れ — 往路だけ許可して復路を塞ぎ、通信が片道で止まる(SGの感覚で書くと起きる)
- 単一AZ集中 — すべてを1ゾーンに置き、ゾーン障害で全滅(マルチAZで緩和)
- エンドポイント未使用 — サービスへの通信をNAT経由でインターネットに出してしまい、閉域化の利点と帯域を捨てる
やさしく言うと(中級)
- CIDRの重複 — 後で別ネットワークとつなぐとき、範囲がぶつかって接続できない
- 経路の付け間違い — プライベートに外向き経路を付けてしまい、隠すはずのDBが外に出られてしまう
- 門番のゆるさ — セキュリティグループを全開放し、隔離の意味が消える
- NATの入れ違い — 外からの新規接続まで通そうとして、公開すべきでないものを晒す
理解度チェック
そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。
問1. VPCのルートテーブルで宛先が複数の経路に一致するとき どれが選ばれる?
問2. IPv6専用で、外からの新規接続は塞ぎつつ内から外へは出せる出口装置を何と呼ぶ?
問3. セキュリティグループとネットワークACLの違いとして正しいのは?
問4. すべての宛先に一致し、他に長い一致がなければ選ばれる「デフォルトルート」のCIDR表記を答えてください。
問5. NATゲートウェイの通信の向きとして正しいのはどれ?
問6. 2つのVPCをVPCピアリングで直結しようとしたが張れなかった。原因として最もありがちなのはどれ?
問7. VPCのAとB、BとCがそれぞれピアリングで接続されている。AからCへはどうなる?
問8. 1つのアベイラビリティゾーン(AZ)にサーバを固めて置くことの問題と、その対策として正しいのはどれ?