VPC — クラウドの中に持つ 自分専用の区画

概要 — まず全体をつかむ

初級では VPC を「自分専用の区画」と捉えました。中級では、その区画をどう小分けし、どう通信を制御するかを見ます。

詳細 — 1段階ずつ追う

これは何をする係?

VPC は サブネットで小分けにします。区画をさらに仕切った小区画で、外との関係で2種類に分かれます。

  • パブリックサブネット — 外への出口へ向かう経路を持つ。外に出られる(Webサーバなど公開してよいものを置く)
  • プライベートサブネット — その経路を持たない。直接は外に出られない(DBサーバなど隠すものを置く)
アニメーション『VPCとサブネット(公開/非公開)』を開く
VPC — クラウドの中の自分専用の区画公開してよいものは上(パブリック)、隠すものは下(プライベート)に分けるインターネットインターネットゲートウェイVPC 10.0.0.0/16パブリックサブネット 10.0.1.0/24外に出られる(公開してよいものを置く)門番WebサーバNATゲートウェイ内→外は通す戻りの新規接続は入れないプライベートサブネット 10.0.2.0/24直接は外に出られない(隠すものを置く)門番DBサーバ双方向更新などで外へ門番=セキュリティグループ(許可ルール)。Webは上・DBは下、が定石

登場人物メモ:

  • ※1 サブネット — VPCをさらに小分けした区画
  • ※2 ルートテーブル — どの宛先の通信を どこへ流すかを決める案内表
  • ※3 インターネットゲートウェイ/NATゲートウェイ — 外への出口。前者は双方向、後者は内から外への一方向
やさしく言うと(初級

VPC は、クラウドの中に持つ自分専用の区画——他の利用者と論理的に隔離された仮想ネットワークです(※1 論理的に隔離)。

たとえるなら、大きな共有地の中に塀で囲った自分の土地を持つイメージ。中に何をどう置くかは自分で決められ、外との出入り口も自分で管理します。

登場人物メモ:

  • ※1 論理的に隔離 — 物理的に別の機械ではなく、設定で仕切られて互いに見えない状態
  • ※2 サーバ — Webやデータベースなど、区画の中に置く働き手

仕事の流れ

  1. VPC全体のアドレス範囲を CIDR で決める(例 10.0.0.0/16)
  2. その中をサブネット(※1)に分割する(例 10.0.1.0/24 と 10.0.2.0/24)
  3. ルートテーブル(※2)で、各サブネットの通信の行き先を決める
  4. 外との出口として インターネットゲートウェイ/NATゲートウェイ(※3)を置く
  5. セキュリティグループ/NACL で、通してよい通信だけ許可する
やさしく言うと(初級
  1. クラウドの中に自分の区画(VPC)を用意する
  2. 用途ごとに区画を小分けにする(公開用/非公開用)
  3. どこを外に見せ、どこを隠すかを決める
  4. 出入り口に門番を置き、通してよい通信だけ許可する

設計の勘所

CIDR はアドレス範囲の指定方法です。/16 は広い範囲、/24 は狭い範囲——数字が大きいほど区画は小さくなります。「どこまでが同じネットワークか」の考え方は、下の図が助けになります。

アニメーション『IPアドレスの構造(ネットワーク部とホスト部)』を開く
IPアドレスの構造 — 192.168.1.10 /24前半がネットワーク部(どこの町内か)/後半がホスト部(町内の何番地か)ネットワーク部(192.168.1)ホスト部(.10)192168110/24 = ここまで同じ町内サブネットマスク 255.255.255.0(255=ネットワーク部/0=ホスト部)2552552550ネットワーク部が同じ=同じ町内。町内なら直接、別の町へはルーター(出口)から届ける

門番は2種類あります。

  • セキュリティグループ — サーバ単位の門番。許可したい通信を書く(戻りは自動で通る)
  • NACL — サブネット単位の門番。許可も拒否も書け、行き帰りを別々に見る

そして外への出口は使い分けます。パブリックは インターネットゲートウェイで双方向に外とやり取り。プライベートは NATゲートウェイ経由で、内から外へ出るときだけ通します(外からの新規接続は入れない)。「Webはパブリック、DBはプライベート」——これが安全設計の定石です。

この部分をもっと深く(上級

区画を組み立てる土台がアドレス設計です。中級で触れたCIDRを、設計の観点で深掘りします。

アニメーション『IPアドレスの構造(ネットワーク部とホスト部)』を開く
IPアドレスの構造 — 192.168.1.10 /24前半がネットワーク部(どこの町内か)/後半がホスト部(町内の何番地か)ネットワーク部(192.168.1)ホスト部(.10)192168110/24 = ここまで同じ町内サブネットマスク 255.255.255.0(255=ネットワーク部/0=ホスト部)2552552550ネットワーク部が同じ=同じ町内。町内なら直接、別の町へはルーター(出口)から届ける
  • 重複回避 — VPCのCIDRは、後でピアリングや社内ネットワークとつなぐ相手と重ならない範囲を最初に選ぶ。一度動かすと変更は困難なので、将来の接続先まで見越して割り当てる
  • サブネット分割 — VPCの /16 を、用途とAZごとに /24 などへ切り分ける。パブリック/プライベートを分け、さらにAZごとに別サブネットを用意する
  • 予約アドレス — サブネットの先頭・末尾の数個はクラウド側が予約するため、使える数は「2のべき−予約分」になる。ぎりぎりで切ると足りなくなる

そして可用性マルチAZ配置で確保します。1つのアベイラビリティゾーン(※4)に固めると、そのゾーン障害でサービスが丸ごと止まります。サブネットをAZごとに分け、同じ役割のサーバを複数AZに散らして置くことで、片方が倒れてももう片方で受けられる——区画設計と可用性は地続きです。

やさしく言うと(初級

すべてを1つの場所にまとめて外に晒すと、DBのような隠すべきものまで狙われます。

そこで、外から見えてよい Webサーバ は公開できる場所へ、外に出したくない DBサーバ(※2)は隔離した場所へ——と分けて置きます。公開してよいものと 隠すものを分ける、これが安全設計の第一歩です。

⚠️ うまくいかないとき

  • CIDRの重複 — 後で別ネットワークとつなぐとき、範囲がぶつかって接続できない
  • 経路の付け間違い — プライベートに外向き経路を付けてしまい、隠すはずのDBが外に出られてしまう
  • 門番のゆるさ — セキュリティグループを全開放し、隔離の意味が消える
  • NATの入れ違い — 外からの新規接続まで通そうとして、公開すべきでないものを晒す
この部分をもっと深く(上級
  • 最長一致の見落とし — 意図せず狭いレンジの経路が全体設定を上書きし、一部の通信だけ想定外の出口へ流れる
  • CIDR重複でピアリング不能 — 設計時に範囲がぶつかると、後からVPC同士をつなげない(アドレスの引き直しは大工事)
  • NACLのステートレス忘れ — 往路だけ許可して復路を塞ぎ、通信が片道で止まる(SGの感覚で書くと起きる)
  • 単一AZ集中 — すべてを1ゾーンに置き、ゾーン障害で全滅(マルチAZで緩和)
  • エンドポイント未使用 — サービスへの通信をNAT経由でインターネットに出してしまい、閉域化の利点と帯域を捨てる
やさしく言うと(初級
  • DBをうっかり公開 — 隠すべきものを外に出せる場所へ置いてしまう
  • 門番がゆるい — すべての通信を許可し、塀の意味がなくなる
  • 区画を分けない — 1つにまとめると、1か所破られたとき被害が全体に及ぶ

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. パブリックサブネットとプライベートサブネットの違いは?

2. プライベートサブネットのサーバが 更新のため外へ通信したいとき 使うのは?

3. VPCの中を、用途ごとにさらに小分けした区画を何と呼ぶ?

4. 10.0.0.0/16 のように、ネットワークのアドレス範囲を指定する記法を英字4文字で何と呼ぶ?

5. CIDRで /16 と /24 を比べたとき、正しいのはどれ?

6. セキュリティグループとNACLの「効く単位」の組み合わせで正しいのはどれ?

7. ルートテーブルの役割として正しいのはどれ?

8. パブリックサブネットが外と双方向にやり取りするために使う出口はどれ?

VPC — クラウドの中に持つ 自分専用の区画 | Kotowary